1.服务器端安装vsftp yum install vsftp
2.客户端装ftp yum install ftp
Centos6.5,vsftp记得开防火墙的21端口,打开vsftp的服务。
安装成功后,可以在客户端使用 ftp 192.168.1.1 这种命令来连接服务器。
会让你输入Name和Password。
客户端/root/目录下新建.netrc文件,用于ftp自动登录,就不用再输入账号密码了。
1.default login password
在Internet中,存在大量的匿名ftp帐户,用户在不同的主机间频繁登录anonymous帐户,输入自己的电子邮件地址作为口令,这种输入极其繁琐,完全有必要利用.netrc文件,在进入ftp时自动完成该过程。
2.binary
许多用户在下载大量文件之后才意识到下载的文件是二进制文件,而自己却是使用ascii方式传输,使下载文件无法使用,做了许多无用功。在.netrc文件中提前将传输方式设置为binary,完全可避免出现上述情况。
3.runique
使用Internet的用户都知道,在浩如烟海的文件中,有大量同名文件,如readme、index等,如果将同名文件下载到同一目录,则新传的文件会覆盖原同名文件。为了使具有潜在重要性的文件不至于被意外覆盖,也需要在.netrc文件中,设置runique参数防止上述错误。
4.prompt off
使用ftp时,经常会用到mget或其它需要确认的ftp命令,将此确认过程取消,可大大方便使用者。
5.hash on
ftp中的hash命令,使得在进行文件传输时,每传输1千字节,在屏幕上显示一个"#"号,用户通过观看屏幕上的"#"号,可以很直观地看到传输速度的快慢,以及文件的传输完成情况,以决定进一步的操作。
6.idle 7200
目前国内的Internet专线速率普遍偏低,用户数却在急剧膨胀,所以用ftp传输销大一些的文件时,经常会因为线路拥塞而断线,致使ftp进程中断,为了减少因断线而反复登录的次数,需将idle命令的参数设置为最大(一般为7200秒)。
7.macdef
macdef定义一个宏,macro_name为宏定义的名称。在macdef行下,可输入任何有效的ftp命令,并以空行结束宏定义,执行时只需在宏名前加"$"号即可。如果宏名定义为init,则该宏命令在启动ftp后自动加以执行,无需用户输入$ macro_name。
default login XXXX password XXXX
macdef init
binary .
runique .
hash on .
prompt off
idle 7200
(空行) //注释:这里一定要有空行,不然报错,很重要
如果想下载或上传文件,文件可以改成这样
default login XXXX password XXXX
macdef init
binary .
runique .
hash on .
prompt off
idle 7200
cd Downloads/
get raw_model.datafile
bye
(空行)
2台linux服务器,选择拉取数据的方式,CentOS6.5
#!/bin/bash
ftp 192.168.137.18<<EOF
lcd /data1/ftp/ftpget
cd AI
mget [0-9][0-9]
bye
(空行)
上面这样写,可以执行,但是总有警报
warning:here-document at line 2 delimited by end-of-file(wanted 'EOF')
查了之后说 EOF前后不能接 空格(whitespace),制表符(TAB),换行符什么的,可以用
cat -A get.sh
可以显示所有符号。但是并没有解决问题。
后来发现下面这样写就不报错了
#!/bin/bash
ftp 192.168.137.18<<EOF
lcd /data1/ftp/ftpget
cd AI
mget [0-9][0-9]
bye
EOF
(空行)