不同的Linux之间copy文件常用有3种方法:
第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。
第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。
第三种就是利用scp命令来进行文件复制。
linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录,是有Security的文件copy,基于ssh登录。
scp的应用有如下两种方式:
1、把本地目录或文件copy到远程另外一台主机上:
A、复制文件
#scp [本地用户名@IP 地址:]文件名1 远程用户名@IP地址:文件名2
例子:把本地/root/zbdata下的a.txt文件复制到远程主机10.1.11.210的/root/zbdata/目录下
#scp /root/zbdata/a.txt [email protected]:/root/zbdata/
如上图可看到需要输入远程主机用户名所对应的密码,才可复制成功
B、复制目录
#scp -r [本地用户名@IP 地址:]目录名 远程用户名@IP地址:目录名
例子:把本地/root/zbdata目录复制到远程主机10.1.11.210的/root/test/目录下
#scp -r /root/zbdata/ [email protected]:/root/test
如上图可看到需要输入远程主机用户名所对应的密码,才可复制成功
2、把远程主机的目录或文件copy到本地:
A、复制文件
#scp 远程用户名@IP地址:文件名1 [本地用户名@IP 地址:]文件名2
可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误
-C 使能压缩选项
-P 选择端口 . 注意 -p 已经被 rcp 使用
-4 强行使用 IPV4 地址
-6 强行使用 IPV6 地址
例子:把远程主机10.1.11.210的/root/zbdata/目录下的a.txt文件复制到本地/root/zbdata下
#scp [email protected]:/root/zbdata/a.txt /root/zbdata/
B、复制目录
#scp -r 远程用户名@IP地址:目录名 [本地用户名@IP 地址:]目录名
例子:把远程主机10.1.11.210的/root/test/目录复制到本地/root/zbdata目录下
#scp -r [email protected]:/root/test/ /root/zbdata/
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
#scp -p 4588 [email protected]:/root/test/a.txt /root/zbdata/
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。