Skip to main content.
0113826 Y:0293 T:0043 [ Since 2006-10-01]
TOP 前のページ « | 1 | 2 | 3 |...| 15 | 16 | 17 | » 次のページ

2008, 12, 30, (火)

今使ってるスクリプトでDDNSの自動更新がうまくいかないこともあり、たびたびアクセスできなくなることがあったので、自動更新のスクリプトを見直すことにした。この自宅サーバはddo.jpのDDNSを使ってるので、いろいろ調べて見たら、こちらのサイトで紹介されてるスクリプトが良さそうなので使わせてもらうことにした。

自動更新の動きとしては
  (1)ddo.jpサイトで用意しているリモートIP確認サイトで現在のIPを確認。
  (2)前回更新時のIPと変更時間をテンポラリーファイルから読み込む。
  (3)前回更新時とIP同じで、かつ前回更新時から2週間以上経ってなかったら終了。
  (4)そうでなかったら、DDNSを更新。変更内容をテンポラリーファイルとログに書き込む。
という感じで自動更新されるとのことなので、<2週間以上経ってなかったら終了>の所を1週間に変更して使うことにした。

あとこのスクリプトは、lynxが使えることが前提となってるようなので、まずlynxをインストールすることにする。
[root@server ~]# yum -y install lynx


今までと同じディレクトリに作成
[root@server ~]# cd /usr ← /usr ディレクトリへ移動
[root@server usr]# mkdir -p ddns ← ddns ディレクトリの作成
[root@server usr]# cd ddns ← ddns ディレクトリへ移動


■ 自動更新スクリプトの作成
[root@server ddns]# vi ddo.jpIP_upgrade.pl

#!/usr/bin/perl
#
# Check ip address, and update DDNS for "ddo.jp"
#
#

# parameters
# "ddo.jp" ID & PASSWD
local $ID     = 'ドメイン'; # Login ID(It serves as a domain name)
local $PASSWD = 'パスワード'; # Login password

# file names
local $CRT_IPF = '/tmp/CRT_IP2.dat';
local $LOG     = '/var/log/ddns.log';

# Check current ip address on the appointed URL web page.
local $CHK_URL="http://info.ddo.jp/remote_addr.php";

#
local $INTERVAL = 604800;       # 1 weeks

#
$ENV{'PATH'}="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin";

#---------------------------------------------------
# main
my ($NEW_IP,$CRT_IP,$CRT_TIME,$i);

# get current ip address which set as the domain.
$CRT_IP   = "";
$CRT_TIME = "0";
open(INPUT, $CRT_IPF);
foreach(<INPUT>){
  chop;
  /^IP:/   && do{ $CRT_IP   = $' };
  /^TIME:/ && do{ $CRT_TIME = $' };
}
close(INPUT);

# check a assigned ip address
open(INPUT, "lynx -dump \"$CHK_URL\" | ");
foreach(<INPUT>){
  /([0-9\.].*)/ && do{ $NEW_IP = $1};
}
close(INPUT);

# Lapsed time from the last update
$i = time() - $CRT_TIME;

# change DDNS, supposing the IP address is changed.
if ( ( ($NEW_IP ne "" )&&($CRT_IP ne $NEW_IP) ) || ( $i > $INTERVAL) ) {
    # change DDNS
    open(INPUT2,
   "lynx -dump \"http://ddo.jp/dnsupdate.php?dn=$ID&ip=$NEW_IP&pw=$PASSWD\" |");

    # check whether change of DDNS has been successful
    foreach(<INPUT2>){
       /SUCCESS: / && do{ $TEMP = 1;};
    }
    if( $TEMP == 1){
       # save a new IP address.
       $i = time();
       open (OUTPUT ,">$CRT_IPF");
       print OUTPUT "IP:$NEW_IP\nTIME:$i\n";
       close OUTPUT;

       # write a message on the log file
       $time = conv_date(time());
       open(LOG, ">> $LOG");
       print(LOG $time . ":change \"" .
                 $ID . ".ddo.jp\" <= " . $NEW_IP . "\n");
       close(LOG);
    }
}

sub conv_date{
  my ($times,$mode) = @_;
  my ($sec,$min,$hour,$mday,$month,$year,$wday);

  ($sec,$min,$hour,$mday,$month,$year,$wday,undef,undef) = localtime($times);
  $month++;
  $year += 1900;
  $times = sprintf("%d/%02d/%02d %02d:%02d", $year, $month, $mday,
                   $hour, $min);
  return($times);
}


■ スクリプトに実行権限を与える
[root@server ddns]# chmod +x ddo.jpIP_upgrade.pl


■ このスクリプトをcronで1分おきに実行するように/etc/crontabに追加。
[root@server ddns]# cd
[root@server ~]# vi /etc/crontab

*/1 * * * * root /usr/ddns/ddo.jpIP_upgrade.pl


■ 停電などで再起動させたとき自動で実行するように設定
[root@server ~]# vi /etc/rc.local ← システム起動時実行コマンド定義ファイル編集
以下を最終行へ追加
chmod +x /usr/ddns/ddo.jpIP_upgrade.pl
/usr/ddns/ddo.jpIP_upgrade.pl

2008, 11, 13, (木)

ClamAVがversion: 0.94.1にアップデートされたので、ソースから手動でインストール。

2008, 09, 17, (水)

ClamAVがversion: 0.94にアップデートされたので、ソースから手動でインストール。

2008, 05, 18, (日)

メインサーバーにもFedora 9 をインストール。予備サーバーのときもそうだったが、今回もまったく同じトラブルがあった。途中でリモート接続が出来ないことに気づき、「ifconfig」で確認してみると、ネットワークの設定で指定したIPアドレスと違うIPアドレスになっている。IPアドレスを変更したら正常にリモート接続できたが、fedora1から毎回バージョンアップしてきてるのに、こんなトラブルははじめてだ。

■ネットワーク情報の確認
[root@server ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:E0:4C:E0:27:79
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2001:c90:1c84:11e3:2e0:4cff:fee0:2779/64 Scope:Global
          inet6 addr: fe80::2e0:4cff:fee0:2779/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1144630 errors:0 dropped:0 overruns:0 frame:0
          TX packets:671284 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1133307948 (1.0 GiB)  TX bytes:238603740 (227.5 MiB)
          Interrupt:23 Base address:0x8000
ネットワーク設定では「192.168.1.10」にしてたが、確認すると「192.168.1.5」になってた。


vi /etc/sysconfig/network-scripts/ifcfg-eth0で見るとちゃんと「192.168.1.10」になってる。ifconfigで確認したIPアドレスに変更することでリモート接続できるようになった。

■IPアドレスの変更
[root@server ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

# VIA Technologies, Inc. VT6102 [Rhine-II]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:e0:4c:e0:27:79
IPADDR=192.168.1.10
↓
IPADDR=192.168.1.5
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
DNS1=192.168.1.1
SEARCH="yokensaka.com"
NM_CONTROLLED=


Fedoraリリースノート「ネットワークマネージャー」を見るとどうもネットワークマネージャーは停止して古いネットワークサービスに切り替えたほうが良さそう。

※リモート操作でネットワークマネージャーを停止すると、その時点で繋がらなくなるので、リモート操作ではなくサーバー機で作業するようにする。
■ネットワークマネージャーの停止と自動起動の無効
[root@server ~]# /etc/rc.d/init.d/NetworkManager stop
[root@server ~]# chkconfig NetworkManager off

■ネットワークサービスの開始と自動起動設定
[root@server ~]# /etc/rc.d/init.d/network start
[root@server ~]# chkconfig network on

2008, 05, 17, (土)

5月14日、 Fedora 9 がリリースされた。
自宅サーバーの予備機に Fedora 9 をインストールして、カテゴリーにある各種サーバー設定、セキュリティー設定等を行い、データのバックアップも無事終わった。今のところ問題なく動いている。すぐにでもメインサーバーとして切り替えられる状態だが、暫く様子見て安定してるようならメインサーバーも Fedora 9 にしよう。

Fedora 9 の新機能については、リリースノートを・・・。>>

TOP 前のページ « | 1 | 2 | 3 |...| 15 | 16 | 17 | » 次のページ