「設定 - DDNS」の版間の差分

93行目: 93行目:
<br><br>
<br><br>


== 紐付け更新スクリプトをcronに登録する ==
== Cronでの自動更新 ==
まず、Raspberry Piにて、必要なディレクトリを作成する。(ここでは、/var/log/ieseverと/usr/local/ddnsを作成する)<br>
Cronを設定して、定期的にIPアドレスの確認・更新を行う。<br>
sudo mkdir /var/log/ieserver
sudo mkdir /usr/local/ddns
<br>
<br>
そこから、紐付け更新スクリプト(ddns-update.pl)を作成して、グローバルIPアドレスが変化しているか確認した後、変化していれば自動で紐付けする。<br>
まず、Cronの設定ファイルを開く。
  sudo nano /usr/local/ddns/ddns-update.pl
  sudo crontab -e
<br>
<br>
ddns-update.plには以下を記述する。<br>
  # 1分ごとにIPアドレスを確認・更新する
但し、変数である$ACCOUNTや$DOMAIN、$PASSWORDには、それぞれ、ieServer.Netで登録したユーザ名やドメイン名、パスワードを入力する。(◯◯◯を書き換えること)<br>
<syntaxhighlight lang="perl">
ddns-update.plの内容
  #!/usr/bin/perl
   
   
  $CURRENT_IP_FILE = "/var/log/ieserver/current_ip";
  0-59 * * * * wget -O DDNSNow_update.log "https://f5.si/update.php?domain=<サブドメイン名>&password=<パスワード もしくは APIトークン>"
$LOG_FILE        = "/var/log/ieserver/ip_update.log";
$REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml";
$DDNS_UPDATE    = "http://ieserver.net/cgi-bin/dip.cgi";
   
   
  $ACCOUNT        = "◯◯◯";
  # IPv6接続の環境において、AAAAレコードも更新する場合は、以下に示す設定も追加
  $DOMAIN          = "◯◯◯";
  0-59 * * * * wget -O DDNSNow_update.log "https://v6.f5.si/update.php?domain=<サブドメイン名>&password=<パスワード もしくは APIトークン>"
$PASSWORD        = "◯◯◯";
if(!open(FILE,"$CURRENT_IP_FILE"))
{
    $CURRENT_IP = '0.0.0.0';
}
else
{
    $CURRENT_IP = <FILE>;
    close FILE;
}
$NEW_IP = '0.0.0.0';
$NEW_IP = `wget -q -O - $REMOTE_ADDR_CHK`;
if($NEW_IP ne "0.0.0.0" and $CURRENT_IP ne $NEW_IP)
{
    $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`;
    if($STATUS =~ m/$NEW_IP/)
    {   
      open(FILE ,">$CURRENT_IP_FILE");
      print FILE $NEW_IP;
      close FILE;
      $TIME = localtime;
      open(FILE ,">>$LOG_FILE");
      print FILE "$TIME $ACCOUNT.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n";
      close FILE;
    }
    else
    {
      $TIME = localtime;
      open(FILE, ">>$LOG_FILE");
      print FILE "$TIME $ACCOUNT.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n";
      close FILE;
    }
}
exit;
</syntaxhighlight>
<br>
作成したddns-update.plファイルのパーミッションを変更する。<br>
sudo chmod 755 /usr/local/ddns/ddns-update.pl
<br>
次に、ddns-update.plをcronで自動実行させる。<br>
ここでは、10分毎に実行させる設定にする。<br>
sudo nano crontab -e
<br>
crontabが起動したら、以下を追記する。<br>
*/10 * * * * /usr/local/ddns/ddns-update.pl
<br>
これで、DDNSの設定は完了である。<br>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]