shell脚本实现ftp自动备份

ftp命令把远程计算机上的文件传输到本地计算机时,需要和用户交互。怎样使交互过程自动化呢?

利用here文档

#!/bin/sh
ftp -ivn  210.29.28.124 <<EOF
user yun yun2011
lcd /home/veyun
cd /home/veyun/yhb
get  v
bye
EOF


解释:

 -i :关闭多文件传输过程中的交互提示,所以不会再有让用户输入用户名和密码的提示

-n:阻止了初始连接时的自动登录

-v:将ftp命令设置为verbose模式,从而可以在会话时看到其中的命令

在本例中使用用户名yun和密码yun2011登录。


下面是自己写的一个简单的shell脚本。

实现目的:从remotedir下载文件到localdir目录中,并把remotedir所有文件名列出到dirlist文件中,

                    最后把下载的文件打包,最后删除刚下载的文件(根据dirlist中的文件名)。


shell脚本实现ftp自动备份_第1张图片


脚本解释:

2-8:定义变量

9-16:ftp下载

18-20:打包

22:取得dirlist文件中的文件名

23-26:逐一取得文件名,并删除相应文件。


ftp注解:

主动ftp:客户端主动连接服务器的21端口,经过认证,服务器端用20端口连接客户端传输数据

所以主动ftp防火墙配置:

iptables -t filter -A FORWARD --dport 21 -j ACCEPT

iptables -t filter -A FORWARD --sport 21 -j ACCEPT

iptables -t tilter -A FORWARD --sport 20 -j ACCEPT


被动ftp:客户端先连接服务器端的21端口,经过认证后,客户端再连接服务器端的20端口传输数据

所以被动ftp防火墙配置:

iptables -t filter -A FORWARD --dport 21 -j ACCEPT

iptables -t filter -A FORWARD --dport  20 -j ACCEPT

iptables -t filter -A FORWARD --sport 21 -j ACCEPT

iptables -t filter -A FORWARD --sport 20 -j ACCEPT






你可能感兴趣的:(shell,脚本,文档)