采用scp命令在Linux系统之间copy文件
不同的Linux之间copy文件常用有3种方法,第一种就是ftp,也就是 其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便,第三种就是利用scp命令来进行文件复制。
scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了。
如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。
scp root@172.19.2.75:/home/root /home/daisy/full.tar.gz
但如果是外网电脑和局域网内的电脑间拷贝东西,该如何呢?
假设我的远程电脑在epcc.sjtu.edu.cn(202.120.38.164),映射的端口为4321,则按如下规则拷贝:
1. 将本地文件拷到远程电脑:
scp -P 4321 ./test.cpp maxi@epcc.sjtu.edu.cn:/home/maxi/data/
2. 将远程电脑文件拷贝到本地:
scp -P 4321 maxi@epcc.sjtu.edu.cn:/home/maxi/data/test.cpp ./
scp 其它参数:
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-P 选择端口 . 注意 -p 已经被 rcp 使用 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
-r迭代拷贝整个目录