Ubuntu Server 18.04 LTS でSystemd/timerを使う方法を備忘録としてまとめておきたいと思います。
定期実行するシェルスクリプトを用意
定期的に実行したいシェルスクリプトを用意します。
シェルスクリプトの一例として以下のシェルスクリプトを投稿しております。
MyDNSでのIPアドレス通知シェルスプリクト
Cloudflareを動的IPで使うときのIP通知シェルスクリプト
用意したシェルスクリプトのパーミッションを755(実行権限付与)にします。
Serviceファイルを作る
$ cd /etc/systemd/system $ sudo nano hoge.service [Unit] #このServiceの説明(タイトル) Description=Hoge [Service] Type=simple #実行するシェルスクリプトの絶対パス ExecStart=/path/to/hoge.sh
Timerファイルを作る
$ cd /etc/systemd/system $ sudo nano hoge.timer [Unit] #このTimerの説明(タイトル) Description=Hoge Timer [Timer] #実行する時間の設定(以下の設定は毎時00分、05分、10分、15分、20分、25分、30分、35分、40分、45分、50分、55分に実行する設定)詳細は後述 OnCalendar=*-*-* *:00,05,10,15,20,25,30,35,40,45,50,55:00 #実行するServiceファイルを指定 Unit=mydns.service [Install] WantedBy=timers.target
OnCalendarの設定項目
OnCalender=年-月-日 時:分:秒
で設定できます。
また、*をワイルドカードとして使えたり、,で区切ることで複数の値を指定することが可能です。
Timerを有効化
$ sudo systemctl start hoge.timer $ sudo systemctl enable hoge.timer
Timer一覧で確認する
$ sudo systemctl list-timers #すべてのタイマーのリストがでるはずです
動作確認する
$ sudo journalctl -xefu hoge #直近のログが見れるはずです
以上でSystemd/timerで定期実行する設定は完了です。
お疲れ様でした。
コメント