crontab -eには次のエントリがあります。
0 16 * * * /opt/nginxstack/Dropbox-Uploader/DatabaseDumper.sh > /var/log/cron.log 2>&1
19 20 * * * /opt/nginxstack/Dropbox-Uploader/upload_dump_dropbox.sh > var/log/cron.log 2>&1
最初のシェルスクリプトは正しく実行されますが、2番目のスクリプトは実行されません。ログには何も見つかりません。誰でも助けることができますか?権限が正しく設定され、/opt/nginxstack/Dropbox-Uploader/upload_dump_dropbox.sh
端末で実行すると機能します。ルートで実行しています。
編集:以下はupload_dump_dropbox.shのコードです。
#!/bin/bash
/opt/nginxstack/Dropbox-Uploader/dropbox_uploader.sh upload /opt/nginxstack/Dropbox-Uploader/mysqldumpsvps/* /mysqlbckfromvps
答え1
コマンドラインでリダイレクトが失敗すると、関連コマンドは実行されません。
例:
$ echo 'hello' >nonexistent/path
/bin/sh: cannot create nonexistent/path: No such file or directory
(echo
決して実行できない)
2番目のクローン操作は相対パス名にリダイレクトされますvar/log/cron.log
。そのパス名がジョブの作業ディレクトリで使用できない場合、このリダイレクトは失敗し、ジョブはまったく実行されません。
cronデーモンは、実行ごとにエラーメッセージを含む電子メールをcrontabの所有者に送信する必要があります。