如何利用rsync同步获取adsl IP

楼上   1台 adsl  , OS:windows2003
楼下  1台  adsl   ,   OS:redhat AS5
远程服务器:1台     OS:windows2003     固定ip,假设219.142.170.1
部署步骤:
1、远程服务器上装xampp支持php,写入getip.php,
源代码如下
----------------------------------------------------------------------------------------------------------------------
<?
if( getenv ( 'HTTP_CLIENT_IP' )) { 
$onlineip  =  getenv ( 'HTTP_CLIENT_IP' );
} elseif( getenv ( 'HTTP_X_FORWARDED_FOR' )) { 
$onlineip  =  getenv ( 'HTTP_X_FORWARDED_FOR' );
} elseif( getenv ( 'REMOTE_ADDR' )) { 
$onlineip  =  getenv ( 'REMOTE_ADDR' );
} else { 
$onlineip  =  $HTTP_SERVER_VARS [ 'REMOTE_ADDR' ];
}
echo  $onlineip ;
?>
---------------------------------------------------------------------------------------------------------------------
只要adsl访问 [url]http://219.142.170.1/getip.php[/url]即可获得临时ip。
2、远程服务器上安装:cwRsync_Server,默认安装即可
安装完成,编辑rsyncd.conf,
use chroot = false  /
strict modes = false /
hosts allow = *  /允许所有可以访问,由于不知道adsl的ip
port = 1873  /     端口默认是873,我这里改为1873
log file = /cygdrive/c/cwRsyncServer/var/log/rsyncd.log /log文件------注意windows下路径的写法;  
pid file = rsyncd.pid 
[wgetiplog]  /rsync 模块,主要识别标志
path = /cygdrive/c/mysite/ip   /需要同步的路径,我这里直接写了网页的硬盘地址
read only = false      /可读写
auth users = ipuser    /客户端访问时需要写的用户名
secrets file= /cygdrive/c/cwRsyncServer/etc/rsync.pass   /密码文件
启动服务,远程服务器部署告一段落;
3、楼上adsl,由于是windows2003,所以也在上面安装了cwRsync_Server,这个文件包括客户端,安装完以后,由于是要同步访问 [url]http://219.142.170.1/getip.php[/url]得到的getip.php,所以先要通过wget获取getip.php,在计划任务里添加一条:c:\wget\wget.exe [url]http://219.142.170.1/getip.php[/url] -O c:\wget\ip\up.php /
让他每5分钟执行一次。
然后,再添加一条计划任务:C:\cwRsyncServer\bin\rsync.exe -au --port=1873 --password-file=/cygdrive/c/cwRsyncServer/rsync.pass /cygdrive/c/wget/ip/ [email protected]::wgetiplog    其中rsync.pass文件有别于server里的rsync.pass,
里面只需要密码即可,即pass,而server里需要ipuser:pass。
让他也每五分钟执行一次。
 
4、楼下adsl,由于是redhat AS4,系统自带rsync,这里只需要添加一个rsync.pass文件既可,也只写pass;
我写了个shell文件getip.sh:
#!/bin/sh
wget [url]http://219.142.170.1/getip.php[/url] -O /var/rsync/down.php
rsync  -ur --port=1873 --password-file=/etc/rsync.pass /var/rsync/ [email protected]::wgetiplog
再把getip.sh写入crontab:
*/5 * * * * sh /root/getip.sh
每5分钟执行一次;
好了,等5分钟后,你只要打开 [url]http://219.142.170.1/ip/up.php[/url]就能看见楼上的adsl的ip,打开 [url]http://219.142.170.1/ip/down.php[/url]就能看见楼下的adsl的ip了。
 

本文出自 “mojo” 博客,转载请与作者联系!

你可能感兴趣的:(职场,rsync,休闲,adsl)