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 上的常用文件传输方式介绍与比较