跳转至

利用 scp 传输文件

语法格式

scp source_file_path destination_file_path

根据不同的主机,文件路径应该包扩:完整的主机地址,端口号,用户名,密码以及文件路径。

上传文件至服务器

scp ~/my_local_file.txt user@remote_host.com:/some/remote/directory

scp -P 222 -r /home/1.txt user@192.168.1.1:/home/data/code/

从服务器下载文件

scp user@remote_host.com:/some/remote/directory ~/my_local_file.txt

本地电脑上执行

  • 例如 scp root@192.168.0.1:/home/test.txt
  • 192.168.0.1 上的 /home/test.txt的文件下载到 ~/Downloads/本地

案例

debug 专用(-v)

会展示详细的输出,SCP的程序将输出大量关于它在后台做什么的信息。当程序失败或无法完成请求时这是非常有用的。详细的输出将正确的指明该程序哪里出了问题

递归拷贝

  • -r拷贝目录
  • -P服务器端口
scp  -P 222 -r user@192.168.1.1:/usr/local/services/nginx/conf ~/Downloads/

多文件传输

多个文件可以用空格分隔开

# 上传文件至服务器
scp foo.txt bar.txt username@remotehost:/path/directory/
# 从服务器下载文件至本地
scp username@remotehost:/path/directory/\{foo.txt,bar.txt\} .
scp root@192.168.1.1:~/\{foo.txt,bar.txt\} .

在两个远程主机之间复制文件

把文件从一个远程主机复制到另一个远程主机

scp user@remotehost1:/some/remote/dir/foobar.txt user2@remotehost2:/some/remote/dir/

用压缩来加快传输

用于加快传输,节省时间和带宽的超酷的选项!你所需要做的就是用C选项来启用压缩功能。该文件在传输过程中被压缩,在目的主机上被解压缩

压缩传输

scp -vrC ~/Downloads root@192.168.1.1:/root/code

限制带宽的使用

scp 占用所有的带宽,某些条件下需要用选项“l”来限制最大传输速度,Kbit/s

限制带宽

scp -vrC -l 400 ~/Downloads root@192.168.1.1:/root/code

在远程主机上连接一个不同的端口

如果远程服务器有ssh守护进程运行在不同的端口上(默认是22),那么你需要告诉scp使用“-P”选项来使用指定的端口

指定端口

scp -vC -P 333 ~/test.txt root@192.168.1.1:/some/path/test.txt

保存文件属性

“-p” 选项(小写),将会保存源文件的修改时间,访问时间以及方式。

保存文件属性

scp -C -p ~/test.txt root@192.168.1.1:/root/code/test.txt

使用不同的ssh_config文件

-F

指定不同的认证文件

scp -vC -F /home/user/my_ssh_config ~/test.txt root@192.168.1.1:/root/code/test.txt

使用不同的加密

scp 默认使用 AES 加密, blowfish 和 arcfour 被认为比 AES 更快的存在,但是安全上不如 AES

使用不同的加密

scp -c blowfish -C ~/local_file.txt username@remotehost:/remote/path/file.txt