仕事でサーバーにcronを設定した。
自分に必要だった情報を最小限に書く。
やりたいこと: Perlで作ったスクリプト/foo/bar/baz.pl
を毎朝5時に実行する
**前提条件:**OSはLinux、シェルはbash
やったことは以下の通り(試行錯誤は除く)。
EDITORの確認と設定
サーバー(Linux)にログインする。
EDITOR環境変数を確認する。
$ echo $EDITOR
空だった。
ここでcrontab編集をしようとするとviが起動してしまう。
ぼくはEmacsしか使い方が分からない。
Emacsを起動してみる。
$ emacs
そんなコマンドありません的なエラーメッセージ
ダメだった。
Emacsをインストールしてもいいが、ここはnanoを使うことにする。
nanoはたいていLinuxにインストールされてて、使い方が分からなくても何とかなるエディターなの。
$ EDITOR=nano
$ export EDITOR
$ echo $EDITOR
nano
無事nanoが設定できた。
タイムゾーンの確認
現在時刻を知るコマンドdate
を使ってみる。
$ date
Fri Aug 14 08:43:43 UTC 2020
UTC(世界協定時、ロンドン時刻と同じ)であることが分かる。
時差を調べるサイトで日本の朝5時がUTCで何時か調べる。
20:00と分かった。
crontabの一覧表示
ようやくcrontabの設定。
-l
オプションで現在設定されているcronの一覧表示(List)。
$ crontab -l
何も出なかったので誰も何も設定していないと分かった。
crontabの編集
編集は-e
オプション(Edit)。
自分自身(ログインしたユーザー)で実行する場合は-u
オプションは設定しなくて良い。
$ crontab -e
さっき$EDITORに設定したnanoが起動するなの。
crontabの設定
毎朝5時に/foo/bar/baz.plを実行するにはこうする。
0 20 * * * /foo/bar/baz.pl
nanoの使い方になるが、Ctrl+Oでファイルを書き出し(write Out)、Ctrl+Xでnanoを終了(eXit)する。
nanoの使い方は画面の下端に表示されるから覚えなくても平気なの。
以上。
参考資料
cronの設定方法
https://qiita.com/hikouki/items/e744b3a4d356d2af12cf
crontab ファイルの作成と編集
https://docs.oracle.com/cd/E19253-01/819-0379/sysrescron-24589/index.html
(この項終わり)