相信连过远程服务器的小伙伴对 ssh 命令一定不陌生,经常会用ssh命令从一个服务器登录到另一个服务器( $ ssh username@xx.xx.xx.xx )。当我们需要两个服务器之间传输文件的时候,就需要用到scp命令了,当然你也可以选择借助xftp或者其它软件把文件下载到本地电脑,再从本地电脑上传到另一个服务器。
scp 全称为secure copy,它能够对文件加密后进行服务器之间,或者同一服务器不同用户之间的传输。scp默认使用和ssh一样的22端口来通信,有的服务器为了防止攻击会更改这个端口号。
命令格式
scp [参数] [原路径] [目标路径]
具体例子
1. 从本地服务器复制到远程服务器,下面的命令表示把t1.fasta从本地拷贝到202.202.202.202这个服务器的zbl用户的home主目录下。
$ scp t1.fasta zbl@202.202.202.202:~/
2. 也可以复制整个文件夹到远程服务器,加入-r参数。下面的命令表示把t2_dir文件夹及里面的所有文件拷贝过去了
$ scp -r t2_dir zbl@202.202.202.202:~/
3. 同样的,也可以从远程服务器负责到本地。只需要把顺序调换一下即可。下面的命令表示把远程服务器zbl主目录下的t2_dir文件夹复制到本地路径下(“.”表示本地当前路径)
$ scp -r zbl@202.202.202.202:~/t2_dir .
4. 本地服务器上从一个用户复制到另一个用户。下面的命令表示把文件从本地用户复制给使用同一个服务器的zbl,把ip改为localhost即可
$ scp t1.fasta zbl@localhost:~/
注意如果服务器由于安全原因,scp需要走特殊端口,使用-P参数,后面跟上对应的端口就行。
命令参数