ダイナミックDNSの情報変更コマンドの起動をcronからsystemd-timerへ変更してみました.
serviceファイル
/etc/systemd/system/mydns.serviceというファイルを以下の内容で作成します.
[Unit]
Description=MyDNS IP Update
#After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c 'curl -u master_id:password https://ipv4.mydns.jp/login.html'
timerファイル
/etc/systemd/system/mydns.timerというファイルを以下の内容で作成します.
[Unit]
Description=Run mydns.service at every hour
OnBootSec=3min
OnUnitActiveSec=60min
Unit=mydns.service
[Install]
WantedBy=timers.target
timerの有効化
以下のコマンドを実行し,timerを有効化します.
systemctl daemon-reload
systemctl enable mydns.timer
systemctl start mydns.timer
systemctl -t timer
確認
以下のコマンドで次回実行時刻が設定されていればOKです.
systemctl list-timers
確認が取れたら,cronの設定を変更(削除)してください.
serviceファイルのExecStartで指定するファイルによっては,SELinuxの設定( semanage fcontext -a -t crond_exec_t PathToShell)が必要です.
上記の形式では不要でしたが,実行権をつけたshシェルスクリプトのパスを記載したものでは設定が必要でした.
(/usr/bin/sh -c ではどうなるか試していません)
※2021/12/26 アクセス先URL変更