私に合うようにバックアップスクリプトを編集したいと思います。私の問題は、バックアップするディレクトリパスを設定すると、バックアップを含むディレクトリもバックアップされることです。 :)
スクリプト:https://github.com/todiadiyatmo/bash-backup-rotation-script/blob/master/backup_rotation.sh
現在私に割り当てられているスペースのほとんどは、次の場所にあります。/home
root@encorepvp:/home/jo# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 20G 2.3G 16G 13% /
devtmpfs 32G 4.0K 32G 1% /dev
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 6.3G 1.5M 6.3G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 32G 4.0K 32G 1% /run/shm
none 100M 0 100M 0% /run/user
/dev/md3 1.8T 29G 1.7T 2% /home
/home
というディレクトリがあるので、backups
バックアップからそのディレクトリを省略したいと思います。-x /home/backups
どうすればいいですか?
答え1
/home
というディレクトリがあるので、backups
sayを使用してバックアップからそのディレクトリを省略したいと思います-x /home/backups
。これをどのように実装しますか?
これを実装するには、以下を見てください。スクリプトそして、ディレクトリバックアップを実行するための関連行を見つけます。
# Compress tables and files
cd $TARGET_DIR
tar -czf $BACKUP_DIR/backup.incoming/$backup_filename -C $BACKUP_DIR/backup.incoming/ mysql_dump.sql $TARGET_DIR
あなたはそれが使用されていることがわかりますtar
。だからあなたは見つけるでしょうタールマンページそして決定する入らないようにするオプションはと--exclude
ではありませんx
。その後、変更をファイルに適用してテストできます。
スクリプトの文脈から固定ディレクトリを除外する代わりに、バックアップディレクトリを宣言する変数を使用するのが妥当です$BACKUP_DIR
。
tar -czf $BACKUP_DIR/backup.incoming/$backup_filename -C $BACKUP_DIR/backup.incoming/ --exclude $BACKUP_DIR mysql_dump.sql $TARGET_DIR
スクリプトを編集するときは、スペースやその他の奇妙な内容を含むディレクトリ名を処理できるように、ほとんどのスクリプトを(単純に)変更する方が良いでしょう。ほとんどの変数を参照してこれを実行できます。たとえば、このtar
セクションは次のようになります。
# Compress tables and files
cd "$TARGET_DIR"
tar -czf "$BACKUP_DIR/backup.incoming/$backup_filename" -C "$BACKUP_DIR/backup.incoming/" --exclude "$BACKUP_DIR" mysql_dump.sql "$TARGET_DIR"