日期:2014-05-16  浏览次数:20712 次

Linux 下实现不同主机之间的文件传输或同步
       需求:把一个数据库表的数据导入另一台主机的数据库中,传输文件大小约有12G

       由于对Linux不是很熟,用惯了Windows,一直都是在本机Windows使用FTP,先从一台主机传到本地,在从本地传到另一主机,文件小到无所谓,12G的文件就麻烦了,悲哀。。

        其实在Linux/Unix下有多种方式实现不同主机的文件传输,例如FTP、SCP命令等:

        1. FTP

       利用编写 ftp 脚本可以自动完成文件传输任务。具体方法是使用 ftp 命令的 -in 选项,并重定向 ftp 命令的输入。现在我们来编写一个利用 ftp 登录到远程服务器,并以 bin 的文件格式,在 /home 目录下,下载 file1.log 以及 file2.sh 至本机 /opt/ibm/,并从本地 /opt 目录上传文件 file3.jave 至远程服务器 /home 的自动化脚本。
ftp -ni <<+ 
	 open $IP 
	 user $USERNAME $PASSWD 
	 bin 
	 cd /home 
	 lcd /opt/ibm 
	 mget file1.log file2.sh 
	 lcd /opt 
	 mput file3.jave 
	 ls 
	 bye



       2. SCP

        Copy 本地文件 /etc/eva.log, 到远程机器 sysB, 用户 user 的家目录下
scp /etc/eva.log user@sysB:/home/user


        Copy 远程机器 sysB 上的文件 /home/uesr/eva.log, 到本地的 /etc 目录下 , 并保持文件属性不变
scp -p user@sysB:/home/uesr/eva.log /etc



        Copy sysB 上的目录 /home/user, 到本地 /home/user/tmp, <new dir,/home/user/tmp/user>
scp -r user@sysB:/home/user /home/user/tmp





        更多命令及工具使用可参考Linux 上的常用文件传输方式介绍与比较