VPS 间文件传输:scp 与 rsync 使用指南

使用 scp

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。

1、命令格式:

scp [参数] [原路径] [目标路径]

2、命令参数:

-1  强制scp命令使用协议ssh1  

-2  强制scp命令使用协议ssh2  

-4  强制scp命令只使用IPv4寻址  

-6  强制scp命令只使用IPv6寻址  

-B  使用批处理模式(传输过程中不询问传输口令或短语)  

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  

-p 保留原文件的修改时间,访问时间和访问权限。  

-q  不显示传输进度条。  

-r  递归复制整个目录。  

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   

-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   

-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  

-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    

-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     

-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   

-P port  注意是大写的P, port是指定数据传输用到的端口号   

-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

3、常用的拷贝方法举例:

  • 将文件scpTest.tar.gz通过2333端口拷贝到8.8.8.8/home/目录下
scp -P 2333 /home/wwwroot/scpTest.tar.gz [email protected]:/home/
  • 将文件scpTest.tar.gz通过2333端口从8.8.8.8下载到本机的/home/wwwroot/目录下
scp -P 2333 [email protected]:/homt/scpTest.tar.gz /home/wwwroot/
  • 将目录/home/wwwroot/scptest/递归拷贝到8.8.8.8/home/目录下,同时包括隐藏文件
scp -P 2333 -r /home/wwwroot/scptest/.* [email protected]:/home/

使用 rsync

rsync 更适合大文件、网络可能中断、需要断点续传、Linux/VPS 场景。
首先确保两端都有安装 rsync :

rsync --version
# 没有的话安装
sudo apt install -y rsync

假设 VPS 地址是:

[email protected]

传输命令:

rsync -avP test.tar.gz [email protected]:/opt/test/

参数含义:

-a   保留文件属性
-v   显示过程
-P   显示进度,并支持中断后继续

如果端口不是 22 :

rsync -avP -e "ssh -p 2222" test.tar.gz [email protected]:/opt/test/

如果你将远端信息写入到了 ~/.ssh/config 中了:

rsync -avP test.tar.gz test-vps:/opt/test/

参考资料:

  • https://www.cnblogs.com/gaoyuechen/p/8663907.html
  • https://www.cnblogs.com/likui360/p/6011769.html
  • https://www.cnblogs.com/longjshz/p/5773679.html
  • GPT-5.5 thinking
订阅评论
提醒
用户头像

0 评论
最旧
最新 最多投票