crontab ファイルを作成するもっとも簡単な方法は、crontab -e コマンドを使用することです。このコマンドは、使用するシステム環境で使用できる環境変数 EDITOR で指定されたテキストエディタを起動します。この環境変数が設定されていない場合は、crontab はデフォルトのエディタ ed を使用します。あらかじめ、使い慣れたエディタを選択しておく必要があります。
次の例は、エディタが定義されたかどうかを確認する方法と、vi をデフォルトのエディタとして設定する方法を示しています。
$ which $EDITOR $ $ EDITOR=vi $ export EDITOR |
crontab ファイルを作成すると、自動的に /var/spool/cron/crontabs ディレクトリ内に格納され、作成者のユーザー名で命名されます。スーパーユーザー特権があれば、他のユーザーや root の crontab ファイルを作成または編集できます。
(省略可能) root または他のユーザーが所有する crontab ファイルを作成または編集する場合は、スーパーユーザーになります。
次のように入力して、新しい crontab ファイルを作成するか、既存の crontab ファイルを編集します。
$ crontab -e [username] |
username は、crontab ファイルを作成または編集するユーザーのアカウント名を指定します。他のユーザーの crontab ファイルを作成または編集するには、スーパーユーザーの権限が必要です。
誤ってオプションを指定しないで crontab コマンドを入力した場合は、使用しているエディタの中断文字を入力してください。この文字を入力すると、変更結果を保存せずに crontab コマンドを終了できます。この場合に変更結果を保存してファイルを終了すると、既存の crontab ファイルが空のファイルで上書きされます。
コマンド行をファイルに追加します。
crontab ファイルエントリの構文に記載されている構文に従ってください。crontab ファイルは /var/spool/cron/crontabs に格納されます。
crontab ファイルの変更箇所を確認します。
# crontab -l [username] |
次の例は、他のユーザーのための crontab ファイルをどのように作成するかを示します。
# crontab -e jones |
次の新しい crontab ファイルに追加されたコマンドは、毎週日曜日の午前 1 時にユーザーのホームディレクトリからすべてのログファイルを自動的に削除します。このコマンドエントリは出力先を変更しないので、出力先変更文字がコマンド行の *.log の後に追加されて、そのコマンドが正しく実行されるようにしています。
# This command helps clean up user accounts. 1 0 * * 0 rm /home/jones/*.log> /dev/null 2>&1 |
特定のユーザーの crontab ファイルがあるかどうかを確認するには、/var/spool/cron/crontabs ディレクトリで ls -l コマンドを使用します。たとえば、次の表示はユーザー smith と jones の crontab ファイルがあることを示しています。
$ ls -l /var/spool/cron/crontabs -rw-r--r-- 1 root sys 190 Feb 26 16:23 adm -rw------- 1 root staff 225 Mar 1 9:19 jones -rw-r--r-- 1 root root 1063 Feb 26 16:23 lp -rw-r--r-- 1 root sys 441 Feb 26 16:25 root -rw------- 1 root staff 60 Mar 1 9:15 smith -rw-r--r-- 1 root sys 308 Feb 26 16:23 sys |
ユーザーの crontab ファイルの内容を確認するには、crontab -l コマンドを使用します。crontab ファイルを表示する方法を参照してください。