いくつかのファイルをバックアップするためにrsyncを実行するスクリプトがあります。 rsyncが完了すると、スクリプトは結果を含む電子メールを私に送信します。
rsync 時間が 30 分から 1 時間未満の場合は問題なくメールが送信されますが、rsync が時間がかかるとメールは送信されません。
Rsyncは3〜4時間以上かかりません(最悪の場合:新しいバックアップのクリーンアップ)。このスクリプトは毎日午前2時に実行するようにプログラムされています。したがって、プロセスが重複する問題になることはできません。
特定の時間が経過すると、スクリプトが終了するのと同じように、コマンドの完了に時間がかかりすぎてコマンドを実行し続けない場合があります。
重複した質問で申し訳ありません。オンラインで関連情報が見つかりませんでした。
とても感謝しています!
編集:Linux Mint 20を実行しているシステム
編集2:この問題はUbuntu Serverでも発生します。スクリプトファイルはsudoersにあるため、パスワードなしでsudoとして実行できます。
編集3:スクリプトコード:
#!/bin/bash
script_path="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
now=$(date +$1)
path="/media/backups/"$now
log_file="/media/backups/logs/"$(date +"%Y%m%d_%H%M%S")
log_folder=$script_path"/logs"
if [ ! -d $log_folder ]; then
mkdir -p $log_folder
fi
{
echo ""
echo ""
date +"%d %m %Y - %H %M %S"
echo ""
echo ""
if [[ ! -d $path ]]; then
sudo mkdir $path
fi
sudo rsync -avprh --delete /media/disk/ $path
sudo rsync -avprh --delete /media/disk2 $path"/disk2/"
sudo /usr/bin/touch $path
} > $log_file 2>&1
if grep -i -q "error" $log_file; then
/usr/bin/php /var/www/email.php "[email protected]" "Backup ERROR" "<pre>$(<$log_file)</pre>"
else
/usr/bin/php /var/www/email.php "[email protected]" "Backup OK" "<pre>$(<$log_file)</pre>"
fi