crontabの使用方法

動作確認OSは、Solaris 9である。

  • デーモンであるcronジョブは、crontabファイルの記述に基づき、定期的にコマンドを実行する。
  • ユーザが自分用のcrontabファイルを編集するには、crontabコマンドを使用しなければならない。
  • crontabコマンドは、基本的に対象ユーザにloginしてから、実行すること。
  • スーパーユーザで編集を実行すると、その動作は保証されない。



crontabファイル

  • じかに編集すると、crontabファイルの変更が cronデーモンに通知されないので、編集には、crontabコマンドを使用すること。
  • /var/spool/cron/crontabsディレクトリ上に、システムcrontabと、ユーザcrontabがある。
  • ファイルの名前は、所有者のアカウント名と同じ。



crontabのオプションの指定方法

crontab -l
 ユーザのcrontabファイルの内容が表示される。

crontab -e
 シェル環境変数のEDITORに設定されたエディタで、crontabファイルが開く。
 EDITORが未設定の場合は、edエディタが使われる。

crontab
 標準入力から読み取り。Ctrl+Dで実行を終了する。
 ユーザのcrontabファイルは上書きされる。

crontab -r
 ユーザのcrontabファイルが削除される。
 編集によってcrontabファイルの行を全て削除しようとすると、エラーとなる。
 crontabの中身をすべて削除したいときは、このオプションを使用すること。



crontabエントリのフィールド

使わないフィールドには、プレースホルダーとして、* を指定すること。

 分          0-59
 時          0-23
 日          1-31
 月          1-12
 曜日        0-6
 コマンド    コマンド文字列



一定期間アクセスがないファイルを、定期的に削除する方法

対象ディレクトリがリンクでない場合

例) 毎日3時0分に、3日間アクセスがないファイルを削除

 0 3 * * *   rm `find [上位パス]/temp -atime +3`



対象ディレクトリがリンクの場合
tempが他のディレクトリへのリンクの場合は「temp/*」と指定すること。「temp」と指定すると、tempディレクトリそのものを削除してしまう。

例) 毎日4時0分に、3日間アクセスがないファイルを削除

 0 4 * * *   rm `find [上位パス]/temp/* -atime +3`