- 论坛徽章:
- 0
|
远程脚本,用crond定期执行(一天一次),然后导入到一个webroot中.
- #!/bin/sh
- find /usr/local/ftproot|while read i; do basename $i ;done>/webroot/remote_dir_list
复制代码
本地的同步脚本,利用wget实现,crond定期执行,2小时一次.
- #!/bin/sh
- killall -9 wget
- sleep 6
- killall wget
- sleep 6
- wget -q -nH --passive-ftp -r -N -l inf -P/usr/local/ftproot ftp://xxxxx:xxxx@xxx.xx.xx.xxx:xxxx
- #
- chown -R 501.500 /usr/local/ftproot
- chmod -R 755 /usr/local/ftproot
复制代码
本地的删除同远程服务器对比后多余的文件(每天一次)
- #!/bin/sh
- #difine local ftpdir
- ftpdir=/usr/local/ftproot
- #
- wget http://xxx.xxx.xxx.xxx/remote_dir_list -O /tmp/remote_dir_list
- #get remote ftp list
- #
- find ${ftpdir}|while read i; do basename $i ;done>/tmp/local_dir_list
- sort /tmp/local_dir_list >/tmp/local_dir_list.sort
- sort /tmp/remote_dir_list >/tmp/remote_dir_list.sort
- if [ -s /tmp/local_dir_list.sort -a -s /tmp/remote_dir_list.sort ]; then
- comm -3 /tmp/local_dir_list.sort /tmp/remote_dir_list.sort >/tmp/diff.list
- fi
- for file in `cat /tmp/diff.list|sed s/^[[:space:]]//g`
- do
- find ${ftpdir} -name $file|xargs /bin/rm -rf
- done
- rm -rf /tmp/local_dir_list*
- rm -rf /tmp/remote_dir_list*
- rm -rf /tmp/diff.list*
复制代码
因为是一个下载站群..流量巨大,我也试过rsync,但是那个效率始终不能让我满意,太慢了.所以我就放弃了文件容错...因为用wget同步一般也不会出错的.
所以只要对比文件列表让后删除就ok了..
没有用到什么高深的shell技巧..只是一个简单应用..大家斧正.. |
|