これが私がDebian Jessieで行ったことです:
apt-get install cron
経由でcronをインストールしますbackup_crontab
ファイルを/etc/cron.d/
に配置しますただし、タスクが実行されることはありません。
ここにいくつかの出力があります:
/# crontab -l
no crontab for root
/# cd /etc/cron.d && ls
backup_crontab
/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1
特定のcrontabをアクティブにするために、またはcronの「サービス」自体をアクティブにするために何かすることはありますか?
/etc/cron.d
のファイルには、ジョブを実行するserもリストする必要があります。
つまり.
0,15,30,45 * * * * root /backup.sh >/dev/null 2>&1
また、権限と所有者:グループが正しく設定されていることを確認する必要があります(-rw-r--r--
およびroot:root
が所有)
私が観察した別のことは、/etc/cron.d
に拡張子を付けることはできません。私の特定のケースでは、シンボリックリンクがありました。
# my-job.crontab
* * * * * root echo "my job is running!" >> /tmp/my-job.log
$: ln -sf /home/me/my-job.crontab /etc/cron.d/
# This did not work -> job would not run
$: ln -sf /home/me/my-job.crontab /etc/cron.d/my-job
# This did work -> job ran fine
ファイル名の制限はrun-partのmanページに記載されています: http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html 、-regexを渡すことができますファイル形式を上書きするオプション。
ただし、デフォルトのcron動作は拡張機能なしで維持されています。以下のコメントを参照してください。 https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
おそらく、cronファイルの最後から必要な空白行が抜けているだけだと思います。私は同じ問題を抱えていましたが、ここにリストされているすべて(ユーザー権限、ファイル名、cronバージョンなど)を確認したところ、/etc/cron.d/own_cron
の最後のエントリの後に改行がないため、ファイル全体が原因であることに気付きました無視されます。
このコンピューターの唯一のユーザーである場合は、crontab -e
だけを使用することをお勧めします。コマンドを初めて実行するときに、エディターを選択するように求められます。次に、これを追加できます。
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1
通常のユーザーアカウントに変更する場合は、Sudo crontab -e
を使用して、スケジュールするスクリプトをroot
として構成する必要があります。
crontab -l
は、crontab -e
を使用して設定すると、現在のcrontabのみを表示します。 /etc/cron.d
/にcronファイルがある場合、crontab -l
では表示されません。
また、スクリプトがchmod +x /backup.sh
で実行可能であることを確認する必要があります。
* Raspbianなどの* bianディストリビューションのCronの場合、Cronデーモンの-l
パラメータを有効にする必要があります。これは、/etc/default/cron
構成ファイルを使用してEXTRA_OPTS
を有効にすることをお勧めします。
まず、/var/log/syslog
ファイルcron.dエラー、
Sudo grep "cron.d" /var/log/syslog |grep -i error
errorsを見つけるのに役立ちます
ない場合は、すべてを確認してくださいcron.d
エントリと同じファイルに
Sudo grep "cron.d" /var/log/syslog
cron
のバージョンを確認してください。
Dillonのcrondを使用している場合、/etc/cron.d
エントリにユーザーを含める必要はないようです。
私は残りの髪をほとんど引き抜いた後、これを理解しました。
さまざまなインストールによって/etc/cron.d
にドロップされたエントリがいくつかあります。調査の結果、そのうちの1つが機能していたことがわかりました。ユーザーがいませんでした。そのため、ユーザーを他のユーザーから除外しました。そして彼らは働き始めた。