CentOSサーバーで、USBメモリにデータを定期バックアップする


第2回 USBメモリを使って手軽にバックアップ | Think IT より転載。

1.USBメモリをポートに挿します。

2.デバイス名を確認します。
# dmesg | more

3.USBメモリ用のディレクトリを作成します。
# mkdir /mnt/extdisk

4.USBメモリをマウントします。
# chmod go-rwx /mnt/extdisk

5.マウントの状態を確認します。
$ df -h

Filesystem Size Used Avail Use% Mounted on
....
/dev/sda1 2.0G 0 2.0G 0% /mnt/extdisk

6.バックアップ用のスクリプトを作成します。
スクリプトのファイル名 /home/bin/backup.sh
実行権の設定を忘れずに。
---- ここから ----
#!/bin/sh
TARGET_DIR=/home/user/data ←USBへのバックアップを考慮したデータ量で。
#バックアップ対象となるディレクトリの指定
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メモリに移動
---- ここまで ----

7.cronによる定時実行の設定を行います。「毎日3:30に実行」
# crontab -e
30 3 * * * /home/bin/backup.sh > /dev/null 2>&1

8.古いバックアップの自動削除用スクリプトを作成しcronに登録します。
---- ここから ----
#!/bin/sh
find /mnt/extdisk -maxdepth 1 -regex '.*\.tar.gz' -ctime +6 -exec rm -f {}
---- ここまで ----

以上です。