バックアップからディレクトリを省略する方法

バックアップからディレクトリを省略する方法

私に合うようにバックアップスクリプトを編集したいと思います。私の問題は、バックアップするディレクトリパスを設定すると、バックアップを含むディレクトリもバックアップされることです。 :)

スクリプト: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というディレクトリがあるので、backupssayを使用してバックアップからそのディレクトリを省略したいと思います-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"

関連情報