|
|
| 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]] |