私はsshを介してサーバーに接続し、cronに日常的なタスクを追加したいと思います(特にログアウト時にKerberosチケットを更新し、まだscreenまたはtmuxのプログラムを実行し続けたい)。だからを実行しcrontab -e
、次を追加します。
00 00 * * * kinit -R
00 12 * * * kinit -R
保存すると、編集者は私にこう尋ねました。
File Name to Write: /tmp/crontab.HMpG7V
/tmp
オペレーティングシステムによって内部ファイルが削除される可能性があるという意味ではありませんか?特にサーバーからログアウトした後?
crontabファイルはどこに保存する必要がありますか? $HOMEや他のより良いスペースにcrontabファイルを保存できますか?
答え1
crontab -e
新しいcrontabでエラーを確認し、そのエラーで実際のcrontabを上書きするのを防ぐために、実際のcrontabの代わりに/ tmpでファイルを開きます。エラーがなければ、実際のcrontabが更新されます。実際のcrontabに直接書き込む場合、crontab -e
新しいcrontabの構文エラーが原因ですべてのcronjobが実行されない危険があります。
sudoedit
、などの動作原理visudo
は同じです。vipw
心配しないでください。実際のcrontabはディスクの不揮発性位置にあります。
答え2
/tmp
一時 crontab ファイルが書き込まれる場所です。保存して終了すると、crontab
変更はシステム内のより適切な別のディレクトリにコミットされます(/var/spool/cron
私の記憶が正しい場合は通常は場所)。したがって、心配しないでください。オペレーティングシステムは/ tmpを削除できますが、crontabは決して削除されません。
答え3
Crontabファイルは、ユーザー名またはユーザーIDの下に/var/spool/cron/crontabs/にあります。ここのcrontabがログインアカウントに接続されなくなる可能性があるため、必要に応じて簡単に復元できるように、/home/userid/.crontabなどのホームディレクトリにコピーを保存することをお勧めします。 。また、必要に応じて改訂管理下に置くこともできます。
ホームディレクトリが別のシステムに再配置されている場合、システム管理者がそれを考慮しない限り、通常スプールディレクトリのcrontabは表示されません。システムの再実行が必要な場合、/var/spool が必ずバックアップまたは復元されるわけではありません。
したがって、ホームディレクトリにcrontabのコピーを保存することをお勧めします。
お気に入りのエディタ(pico、vi、emacsなど)を使用して〜/ .crontabを編集し、crontabを使用して/ var / spool / crontabsに適用します。このように:
% pico ~/.crontab; crontab ~/.crontab
エイリアスを好む場合は、エイリアスを作成して代わりに実行できます。