下手に操作をしてしまって万が一大切なファイルを削除してしまった場合、復旧する手立てが無い。
なので、以下のようなスクリプトを実行するようにして、自動にバックアップを取るようにした。
rsyncでバックアップを作成してから、rootにメールを送るようにしている。
#!/bin/bash rsync -a --delete /etc /home /root /var /backup/ echo "The backup has been succeced at `date`" | mail -s "BACKUP:`date`" root
上記をクーロンで毎日定時に実行させる。
rsyncコマンドに2つのオプション「-a」「–delete」を付けて、上記の場合は
「/etc」「/home」「/root」「/var」ディレクトリを「/backup」配下に保存している。
「-a」オプションは、「rlptgoD」のオプションを有効にするとの意味。
-r: ディレクトリを再帰的にコピーする -l: シンボリックリンクをリンクとしてコピーする -p: コピー元のファイル権限をそのままコピーする -t: タイムスタンプをそのままコピーする -g: グループをそのままコピーする -o: 所有者をそのままコピーする -D: デバイスファイルやを特殊ファイルをそのままコピーする
「–delete」オプションは、コピー元に無いファイルはコピー先から削除するオプション。
以前は、一度「rm -rf /backup/*」として以前のバックアップを削除してから、単純に「cp」コマンドで
対象ディレクトリをコピーをしていた。
rsyncは、
・差分を確認してバックアップする為高速+低負荷
・バックアップ前に、以前のバックアップを削除する必要がない
さて、これを/root/bin/mkdirなどとして作成し、実行権限を付与。
サーバの負荷の少ない時間帯に実行するようにすればOK。
例:/etc/crontab
0 3 * * * root /root/bin/mkbackup
コメント
参考になりましたwwww