質問: **やりたいこと** ・Let’s Encrypt で SSL証明書を自動更新したい --- **知りたいこと** ・cronとsystemdのcertbot.timerの違い ・それぞれの長所短所 ・cronで設定しようとしたら、「systemdのcertbot.timer」でも出来るようなことがネットに書いてありました ・systemdはCentOS7から導入されたと認識しているので、新しい仕組みならこちらの方が何となく良いのかな、と思っているのですが ・従来、cronでしかできなかったことでも、systemd.timerを使えば出来るようになったということでしょうか? 公式ページでは、cronのみ言及されていますが、systemd.timerは非推奨? --- **環境** ・CentOS7 ・Nginx ・Let’s Encrypt ・certbot
回答: cerbot.timer は systemd のタイマー (Unitの一種) です。 Cron (cronie) の場合はCrontab に書かれたスケジュールにしたがってジョブを起動しますが、systemd の場合は タイマーの設定に従って起動します。 systemd のタイマーには、Cronと同等にカレンダーに合わせて起動させたり、一定間隔で起動、一定間隔でありながらランダムに遅延させたり、ブート後の指定した時間が経過した後に実行などができます。 systemd に統合されているので、起動するジョブを .service として、また、タイマーは .timer というUnit として管理(有効/無効、開始/停止)します。 cgroups の管理下に入れたり、journal でのログ管理などの合わせられるので Cronに比べてより現代的で強力なツールと言えると思います。 その反面、Crontabで1行で設定出来る Cron の手軽さに比べて、設定が面倒な印象があります。systemd特有の強力な機能が不要な場合はCronでも十分です。