次のスケジュールされたタスクがあります。
#!/bin/bash
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
mkdir -p $YEAR/$MONTH/$DAY
mysqldump -uroot -p1234 locatari > $YEAR/$MONTH/$DAY/backup.sql
3分ごとに実行したいです。crontab
次のコマンドをそれぞれ試しましたが、そのうち何も機能しないようです。
3 * * * * /usr/bin /home/rome/cronjob/back.sh > /home/rome/cronjob
3 * * * * /home/rome/cronjob/back.sh/
3 * * * * exec `/bin/bash /home/rome/cronjob/back.sh`
3 * * * * /bin/bash /home/rome/cronjob/back.sh > /dev/null 2>&1
私は次のような場合にのみ実行します。
bash back.sh
bashコマンドを使用すると、すべてが期待どおりに機能します。クローンスケジューラにはどんな問題がありますか?問題は、crontabコマンドを使用すると出力が表示されず、bashコマンドでのみ機能することです。
ベストアンサー1
crontab
コマンドラインに入力した内容と一致する作業項目はありません。
/usr/bin /home/rome/cronjob/back.sh
プログラムを実行しようとしている/usr/bin
ディレクトリです。/home/rome/cronjob/back.sh/
スクリプトをディレクトリとして扱うexec `/bin/bash /home/rome/cronjob/back.sh`
試してみてください出力実行するプログラム名として/bin/bash /home/rome/cronjob/back.sh > /dev/null 2>&1
これは効果があるかもしれません。ただ、スクリプトのすべての出力を削除してエラーが表示されないことです。
あなたのコメントフィードバックによると、次のようなものが欲しいと思います(/home/rome
どうせホームディレクトリなので省略します)。
*/3 * * * * cd cronjob && bash back.sh >back.log 2>&1