それでは、tarコマンドで差分バックアップを取得してみましょう。ただし、tarコマンドには、差分バックアップを取得できる便利なオプションはありません。そこで、フルバックアップした日よりも新しい日付のファイルをバックアップすることで、差分バックアップの代替とします。
差分バックアップを取得する前に、まずはフルバックアップです。フルバックアップの取得方法は、前回説明したコマンドと同じです。
1 2 3 |
$ cd / $ backupday=$(date +%Y%m%d) $ sudo tar zcvf /mnt/fullbackup-${backupday}.tar.gz etc root home var/log 1> /mnt/fullbackup-${backupday}.log 2> /mnt/error-${backupday}.log |
なお、ここではフルバックアップと差分バックアップのファイルを区別できるように、アーカイブファイル名を「fullbackup-年月日.tar.gz」、フルバックアップしたファイルやディレクトリーの一覧を保存したファイルの名前を「fullbackup-年月日.log」としました。ファイルの日付でバックアップするか否かを判断するので、フルバックアップを実施した日にバックアップしたファイルが更新されたり、バックアップ対象に新しいファイルやディレクトリーが作られたりしないようにしてください。
フルバックアップを取得した後、次のコマンドで差分バックアップを取得します。この差分バックアップは、フルバックアップを取得した次の日以降に実施します。
1 2 3 4 |
$ cd / $ backday=$(date +%Y%m%d) $ sudo tar -z -c -v -N 2018-10-19 -f /mnt/partialbackup-${backupday}.tar.gz etc root home var/log 1> /mnt/partialbackup-${backupday}.log 2> /mnt/error-${backupday}.log $ sudo find etc root home var/log > /mnt/list-${backupday}.log |
差分バックアップのアーカイブファイルとして「/mnt/partialbackup-年月日.tar.gz」が作成されます。tarコマンドの「-N」オプションにフルバックアップした日付(ここでは「2018年10月19日」)を「年–月–日」で指定します。これで、それよりも後に作成・更新されたファイルやディレクトリーがアーカイブファイル内に保存されます。なお、オプションに引数を指定する場合は、各オプションに「-」を付けて分けてください。最後にある「find」コマンドでは、バックアップ対象としたディレクトリーの状態を保存しています。このファイルは削除されたファイルやディレクトリーを見つけるために使用します。