WHM と Cpanel を使用して CentOS 6 を使用しています。バックアップを毎日実行するように設定していますが、未加工のファイルとディレクトリをすべて取得しています。このすべてを AWS S3 に送信し、そのすべてを実行するスクリプトを作成したいと考えていますが、すべての生ファイルではなく 1 つの圧縮ファイルを送信する必要があります。すべてのディレクトリを個別の .tar.gz ファイルに圧縮してから、名前に日付を含む 1 つのファイルに圧縮するスクリプトを作成したいと考えています。これが私が使用しているスクリプトで、問題なく動作しているように見えますが、理解できない問題がいくつかあります。
for dir in /backup/cpbackup/daily/*/
do
base=$(basename "$dir")
if [ "$dir" == "azureat" ]; then
tar --exclude='homedir/public_ftp' --exclude='homedir/svn_sync' --exclude='homedir/backup-*.tar.gz' -cvzf "${base}.tar.gz" "$dir" >> backup.log
else
tar --exclude='homedir/public_ftp' --exclude='homedir/backup-*.tar.gz' -cvzf "${base}.tar.gz" "$dir" >> backup.log
fi
rm -rf "$dir"
done
now=$(date +"%m_%d_%Y")
tar -cvzf WHM_Daily_Backup_$now.tar.gz *.tar.gz >> backup.log
mv WHM_Daily_Backup_$now.tar.gz /backup/aws_s3 >> backup.log
問題は、スクリプトを実行すると、何も含まれていない *.tar.gz という余分な .tar.gz ファイルが作成され、最後のファイルに日付が出力されないことです。WHM_Daily_Back_.tar.gz のようになります。私はこのタイプのスクリプトに慣れていないので、行き詰まっています。ありがとう!