转载请说明出处:
http://hi.baidu.com/xiutuo/blog/ ... 63433a0dd7da39.html*********************
功能:
下载服务器ftp目录中的所有文件,
下载完后立即删除服务器ftp目录中的所有文件
*********************
---------------------
环境:
俩台机器都是centos4.5_x86
****************
1.ftp服务器主机信息
ftp服务器主机名server
vftp服务端:vsftp-2.0.1-5.EL4.5
vftp服务器ftp目录默认是系统用户所在目录
这里的用户为ftptest,家目录为/home/ftptest
IP:192.168.159
ftp目录:/home/ftptest
ftp用户:ftptest
ftptest用户密码:123456
****************
2.ftp客户端主机信息
ftp服务器主机名client
ftp客户端:lftp-3.0.6-3
IP:192.168.1.153
存放目录:/home/xiutuo/ftp
即从服务器下载的文件存放到/home/xiutuo/ftp
****************
3.脚本名:lftp_bak.sh
存放在client中的/etc/目录下
该脚本属xiutuo及其属组xiutuo
# cd /etc/
# chown xiutuo:xiutuo lftp_bak.sh
你可以根据自己需要设置计划任务
让该脚本自动在某时执行
****************
---------------------
为了测试方便,
请在vftp服务端IP:192.168.159机器上安装vsftp的rpm包
在ftp客户端IP:192.168.1.153机器上安装lftp的rpm包
++++++++++++++++++++++++++++++++++++++++
在client主机上
# vi /etc/lftp_bak.sh
增加如下内容
#!/bin/bash
#指定ftp服务器的ip
serverip=192.168.1.159
#指定ftp服务器的ftp用户
serveruser=ftptest
#指定ftp服务器的ftp用户密码
serverpass=123456
#指定client主机本地下载文件存放的目录
localdir=/home/xiutuo/ftp
#指定server主机的ftp目录
#remotedir=./
#指定server主机的主机名
host=`hostname`
#切换到本地下载文件存放的目录
cd $localdir
#输入开始备份的信息
echo "Starting FTP Backup on " $host
#连接ftp服务器
/usr/bin/ftp -in <
open $serverip
user $serveruser $serverpass
#切换到server主机的ftp目录
#cd $remotedir
bin
#列出ftp服务器ftp目录中文件列表并存放到client中的$localdir中
ls . mulu.txt
verbose
#下载ftp服务器ftp目录中的所有文件
mget *.* .
#打印ftp状态
stat
#退出ftp服务器
bye
EOF
echo "get the directory list ok,and get all the files once ok"
echo "begin to delte the file in the mulu.txt"
#取出client主机$localdir中的mulu.txt中的文件名
#并逐一删除在mulu.txt的文件
list=`cat mulu.txt | awk '{print $9}'`
for filename in $list
do
/usr/bin/ftp -in <open $serverip
user $serveruser $serverpass
bin
verbose
delete $filename
stat
bye
END
done
echo "delete files in mulu.txt successful"
阅读(2240) | 评论(1) | 转发(0) |