経緯
let'sEncrypt をcron で定期更新をしたかった。 cron 入ってるだろうとたかを括っていたが、初期状態では入ってなくて、自分で入れなきゃいけないことに気付いた。 絶望。 でも頑張る。
環境
- AmazonLinux2023
- Windows10+GitBashからSSH
やること
- cron 導入
- rsyslog 導入
cron のログを書き込むためにrsyslog が必要らしい。
1. インストール各種
一般ユーザーの場合は前頭に「sudo」を付けよう
# dnf install cronie-noanacron
# dnf install rsyslog
2. 確認
- cron の確認
# which crond /usr/sbin/crond
- rsyslog の確認
# which rsyslogd /usr/sbin/rsyslogd
こんなんで確認できるかなあ まあ入ってそうだなってのは分かった。
ファイルも観とこうか
- cron のファイル群
# ls -al /etc/ | grep "cron" drwxr-xr-x. 2 root root 38 Aug 12 21:04 cron.d drwxr-xr-x. 2 root root 6 Jan 31 2023 cron.daily -rw-r--r--. 1 root root 0 Jan 31 2023 cron.deny drwxr-xr-x. 2 root root 6 Jan 31 2023 cron.hourly drwxr-xr-x. 2 root root 6 Jan 31 2023 cron.monthly drwxr-xr-x. 2 root root 6 Jan 31 2023 cron.weekly -rw-r--r--. 1 root root 495 Aug 16 05:08 crontab
- rsyslog のファイル群
# ls -al /etc/ | grep "rsyslog" -rw-r--r--. 1 root root 3223 Feb 2 2023 rsyslog.conf drwxr-xr-x. 2 root root 31 Aug 16 04:48 rsyslog.d
ファイル達もありそう。
3. 各種設定
- rsyslog の設定
cron の設定が入っているか確認
# cat /etc/rsyslog.conf | grep cron *.info;mail.none;authpriv.none;cron.none /var/log/messages # Log cron stuff cron.* /var/log/cron
なんかありそう。
- cron の設定
とりあえず毎分「date」コマンドを叩くようにしてみる
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed */1 * * * * root date
書き方は下の感じ
分 時 日 月 曜日 ユーザー コマンド
書き方詳細はこの記事が分かりやすかった
あと大事なこと!
- crontab 末行に空白を入れる
これをしなくて下のようなエラーが出ました
crond[457251]: (root) BAD FILE MODE (/etc/crontab)
そんでからログを確認すると
[root@ip-10-0-0-10 rsyslog.d]# tail /var/log/cron Aug 16 05:29:01 ip-10-0-0-10 CROND[459554]: (root) CMD (date) Aug 16 05:29:01 ip-10-0-0-10 CROND[459553]: (root) CMDOUT (Wed Aug 16 05:29:01 JST 2023) Aug 16 05:29:01 ip-10-0-0-10 CROND[459553]: (root) CMDEND (date) Aug 16 05:30:01 ip-10-0-0-10 CROND[459614]: (root) CMD (date) Aug 16 05:30:01 ip-10-0-0-10 CROND[459613]: (root) CMDOUT (Wed Aug 16 05:30:01 JST 2023) Aug 16 05:30:01 ip-10-0-0-10 CROND[459613]: (root) CMDEND (date) Aug 16 05:31:01 ip-10-0-0-10 CROND[459620]: (root) CMD (date) Aug 16 05:31:01 ip-10-0-0-10 CROND[459619]: (root) CMDOUT (Wed Aug 16 05:31:01 JST 2023) Aug 16 05:31:01 ip-10-0-0-10 CROND[459619]: (root) CMDEND (date)
なんかできてそうなのでヨシ!
参考文献
- cron 導入
Amazon Linux 2023 に Let’s Encrypt をインストールする | ソフトウェア雑記
- rsysrlog 導入