以下のように2箇所で設定する事が可能です。
1のようにcrontabで設定するのと、
2のようにユーザ毎のフォルダに設定するのと
どちらが良いのでしょうか?
(また使い分けはどのようにしたら良いのでしょうか?)
よろしくお願い致します。
--Linux--
1 /etc/crontab
2 var/spool/cron
--Mac OS X--
1 /etc/crontab
2 var/cron/tabs
まず、各ユーザの crontab をいじる場合は、URL にあるように ファイルを直接修正するのではなく crontab -e コマンドを使うことが推奨されます。
/etc/crontab と crontab -e の使い分けは、システム全体として自動実行を行わせたいジョブか、一ユーザとしての root として実行させたいジョブかという観点で分ければよいでしょう。
機能上はどちらに書いても違いはありません。
アルファネット 総合ネットワークサポート
URLはダミーです。
/etc/crontabと/var/spool/cron/の違いは前者がシステムジョブ(デイリーログローテーションやデイリーバックアップなど)で使用するもので、全てroot権限で実行されます。
また、この内容はリアルタイムで反映されませんので、このファイルを変更した後はcronにHUPシグナルを手動で送信する必要があります。
後者はユーザジョブと言われるもので、許可された各ユーザごとのcronが入ります。実行ユーザは各ユーザとなり、ここには主に頻繁に変更したり、臨時で実行するジョブ(臨時バックアップ、その他臨時ジョブ)、それとユーザジョブ(ホームディレクトリ内のクリーンアップジョブなど)を入れたりします。
なお、後者の場合は”crontab -e”コマンドで編集した場合、自動的に変更が反映されるのが特徴です。
rootだけで考えれば、前者も後者も同じようなものですが、他の一般ユーザから見た場合、後者のcronしか使用できませんので、rootの場合は、前述のような使い分けをしたりします。
crontabのほうはHUPシグナルが必要なんですね…
知りませんでした。。
すごく分かりやすい解説ありがとうございました!!
なるほどです。ありがとうございました!