重複の可能性:
date
cronタブジョブを実行するには?
Amazon EC2 に cron を使用してバックアップスクリプトを実行するサーバーがあります。しかし、動作しません。 cronが正常に動作しているかどうかをテストするために、次のことを行いました。
サーバーにログインしてルートに切り替えます。次に「crontab -e」を実行します。次の行があります。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
29 00 * * thu tar -zcvf /home/<user removed>/Dropbox/Backup/DirBackup_$(date +%Y%m%d).tar.gz /var/www/html/
30 00 * * thu mysqldump -u <removed> -h <removed> -p<removed> --opt <removed> > /home/<user removed>/Dropbox/Backup/database-backup-$(date +%Y%m%d).sql
*/1 * * * * touch /tmp/foo
したがって、touchコマンドは1分ごとに実行する必要があり、他のコマンドは木曜日の00:29および00:30に実行する必要があります。ログの内容は次のとおりです。
Sep 20 00:27:01 ip-10-204-142-149 CROND[16888]: (root) CMD (touch /tmp/foo)
Sep 20 00:28:01 ip-10-204-142-149 CROND[16890]: (root) CMD (touch /tmp/foo)
Sep 20 00:29:01 ip-10-204-142-149 CROND[16898]: (root) CMD (tar -zcvf /home/<user removed>/Dropbox/Backup/DirBackup_$(date +)
Sep 20 00:29:01 ip-10-204-142-149 CROND[16900]: (root) CMD (touch /tmp/foo)
Sep 20 00:30:01 ip-10-204-142-149 CROND[16913]: (root) CMD (mysqldump -u <removed> -h <removed> -p<removed> --opt <removed> > /home/<user removed>/Dropbox/Backup/database-backup-$(date +)
/tmp/fooフォルダのタイムスタンプを確認すると、1分ごとに変更されます。 Dropboxを確認してみるとファイルがありません。 (Dropboxアップロードの問題ではないことを確認するために、 "ls /home//Dropbox/Backup/"を使用してこの問題を確認しました。) cronのコマンドをコマンドラインにコピー/貼り付けてこれをテストしましたが…うまくいきました!
cronがコマンドを記録するが、実際には機能しない理由を知っている人はいますか?
答え1
明らかにこれはcron構文の問題です。この問題を解決するために、コマンドをスクリプトに入れて、次のようにしました。
58 23 * * 6 root exec /home/<username>/Dropbox/backups
このスクリプトは毎週土曜日に実行され、正しく動作するかどうかをテストしました。