Crontabでは、毎日のバックアップスクリプトをスケジュールしました。これで、cronがスクリプトを実行すると、次のようにステータスがログファイルに記録されます。
0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1
現在、cronがスクリプトを実行すると、ログの内容が毎回更新されます。そのため、実行時間のタイムスタンプを使用して同じファイルにコンテンツを追加し、既存のコンテンツとともに各時間のコンテンツの下に追加する必要があります。これどうやってするの。
ファイルのタイムスタンプを取得する方法
ファイルにタイムスタンプを追加するには、date
を使用できます。詳細については、man date
を参照してください。たとえば、ターミナルで使用すると、次のような出力が得られます。
$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42
出力はdd-mm-yy/hour:min:sec
の形式です
タイムスタンプをファイルに入れたい場合は、
date +%d-%m-%y/%H:%M:%S > filename
リダイレクト
date +%d-%m-%y/%H:%M:%S > filename
を使用すると、日付はファイルに保存されますが、コマンドを使用するたびに上書きされます。既存のファイルに追加するには、
date +%d-%m-%y/%H:%M:%S >> filename
既存のファイルの最後に最後の実行出力が追加されます。
あなたのケースであなたがすること
/home/backup.sh
の最後に次の行を追加できます。
date +%d-%m-%y/%H:%M:%S
そして、crontabで次を使用します。
0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1
上記の変更はあなたが望むことをすべきだと思います。
どうして
0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1
(Debian Jessieの場合)ts
パッケージの一部であるmoreutils
コマンドを使用します。例えば。:
0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1
これにより、出力のすべての行にタイムスタンプが追加され、ログに保存されます。
シェルスクリプトを実行しているので、次のような行を追加してください。
some ./script
echo `date -u `
some ./other/script
あなたのスクリプト、すなわち/home/backup.sh
それから
0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1
thu Jun 14 11:10:22 UTC 2018のようなfbackup.logの前後に行を追加します