2

ここで cron を学ぼうとしています (質問が 101 の場合は申し訳ありません!)。だから、私は次のような小さなテストスクリプトを持っています:

#! /bin/sh
# /home/admin/js/test.sh
#
SHELL=/bin/bash
source ~/.bashrc

# Some things that run always
screen -d -r myscreen
touch /home/admin/js/testsuccess.txt
exit 0

次にcrontab -e、次のエントリを追加します (ec2 で debian 7 を実行しています)。

*/15 7-23 * * * root /home/admin/js/test.sh > /dev/null 2>&1

だから..これは基本的に指定された時間内に15分ごとに実行されます。cron が実行されているようです。

grep CRON /var/log/syslog

出力が表示されます:

Oct 26 19:30:01 ip-16-653-987-12 /USR/SBIN/CRON[20700]: (admin) CMD (root  /home/admin/js/test.sh > /dev/null 2>&1)

touch..しかし、ディレクトリに新しいファイルが表示されません。ここで実際に何が起こっているのかわかりません - これを解決するためのアドバイスは大歓迎です! ありがとう。

4

1 に答える 1

0

問題は cron エントリにあり、スクリプトは正常に動作しているようです。

プレーンcrontab -eを実行すると、ユーザーに対応する crontab エントリが変更されます。使用している cron ジョブの形式は、システム全体で cron を直接追加する場合に機能します。/etc/crontab

したがって、次を使用して特定のユーザーのcrontabを開きcrontab -u user -e(この場合のユーザーは でrootあるため、でこれを実行する必要がありますsudo)、ユーザー名なしでcronjobを入力できます

*/15 7-23 * * * /home/admin/js/test.sh > /dev/null 2>&1

/etc/crontabまたは、 を使用する代わりに、cron ジョブをシステム全体の cron ジョブに追加できますcrontab -e

~また、問題を引き起こす可能性のあるスクリプトで使用していることに注意してください。cron ジョブでは常に完全なパスを使用してください。

于 2013-10-27T21:22:41.720 に答える