バックアップのためのスクリプトを作成する
バックアップのためのスクリプトを作成する
周期的にバックアップを取るためにはその手順をスクリプト化しておくことが必要となります。ここでは、普段著者が使用しているバックアップスクリプトから主要部分を抜粋してご紹介します。このスクリプトは、バックアップ対象を一度/tmp配下にコピーした後tarで固めてgzip圧縮した後USBメモリにコピーするという単純なものです。
#!/bin/sh TARGET_DIR=/home/user/data #バックアップ対象となるディレクトリの指定 SAVE_NAME=backup`date +%Y%m%d_%H%M` #バックアップ名 BACKUP_DIR=/mnt/extdisk #バックアップ先の指定 SAVE_DIRNAME=$BACKUP_DIR/$SAVE_NAME TMP_DIR=/tmp TMP_SAVE_DIRNAME=$TMP_DIR/$SAVE_NAME mkdir $TMP_SAVE_DIRNAME # sources cp -r $TARGET_DIR $TMP_SAVE_DIRNAME #バックアップ対象を一時的にコピー # compress cd $TMP_DIR tar -cf $SAVE_NAME.tar $SAVE_NAME #バックアップ対象をtarで固める rm -rf $TMP_SAVE_DIRNAME gzip $SAVE_NAME.tar #tarボールをgzipで圧縮する mv $SAVE_NAME.tar.gz $SAVE_DIRNAME.tar.gz #バックアップをUSBメモリに移動
このスクリプトではバックアップを取った日時をファイル名に付与しているため、バックアップ一覧を見るといつのバックアップなのか一目瞭然(りょうぜん)です。
# ls -l /mnt/extdisk -rw-r--r-- 1 root root 19139756 Jun 1 2011 backup20110601_0330.tar.gz -rw-r--r-- 1 root root 19139756 Jun 2 2011 backup20110602_0330.tar.gz -rw-r--r-- 1 root root 19139756 Jun 3 2011 backup20110603_0330.tar.gz -rw-r--r-- 1 root root 19139756 Jun 4 2011 backup20110604_0330.tar.gz