Skip to content

Instantly share code, notes, and snippets.

@t-okkn
Last active September 23, 2023 14:48
Show Gist options
  • Save t-okkn/8b1bb3523b90d72e6bf9120d735b837c to your computer and use it in GitHub Desktop.
Save t-okkn/8b1bb3523b90d72e6bf9120d735b837c to your computer and use it in GitHub Desktop.
DDNSサービスである「mydns.jp」へ自動的に通知するためのSystemd設定ファイル群

mydns.jpへIPアドレスを自動通知

OSの環境はUbuntu, Arch Linuxにて確認しております。
標準で入っていると思いますが、perlを使用しております。
なお、 systemd-networkdsystemd-networkd-wait-online をenableにしておく必要があります。

$ curl -sSL https://gist.githubusercontent.com/t-okkn/8b1bb3523b90d72e6bf9120d735b837c/raw/f8ad871888b6cdc9a9428e5459f346b61ae2116e/mydns-update.service | sudo tee /etc/systemd/system/mydns-update.service
$ curl -sSL https://gist.githubusercontent.com/t-okkn/8b1bb3523b90d72e6bf9120d735b837c/raw/f8ad871888b6cdc9a9428e5459f346b61ae2116e/mydns-update.timer | sudo tee /etc/systemd/system/mydns-update.timer
$ curl -sSL https://gist.githubusercontent.com/t-okkn/8b1bb3523b90d72e6bf9120d735b837c/raw/f8ad871888b6cdc9a9428e5459f346b61ae2116e/mydnsAccount.conf | sudo tee /usr/local/etc/mydnsAccount.conf

$ sudo vi /usr/local/etc/mydnsAccount.conf
$ sudo systemctl enable --now mydns-update.service
$ sudo systemctl enable --now mydns-update.timer
[Unit]
Description=Notify Global IP-Address to mydns.jp
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
EnvironmentFile=/usr/local/etc/mydnsAccount.conf
ExecStart=/usr/bin/bash -c '/usr/bin/curl -sS https://${User}:${Password}@ipv4.mydns.jp/login.html | awk '\''BEGIN {FS="<"; RS=">"}; {print $1}'\'' | sed '\''/^$/d'\'' | /usr/bin/perl -pe '\''s/:\n/: /'\'''
[Install]
WantedBy=network-online.target
[Unit]
Description=Runs mydns-update.service regularly
[Timer]
OnBootSec=5min
OnUnitActiveSec=1h
Unit=mydns-update.service
[Install]
WantedBy=timers.target
User=mydns12345
Password=AbCdEf12345
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment