Linux,怎样将文件从一台服务器传到另一台服务器上

打印 上一主题 下一主题

主题 1991|帖子 1991|积分 5973

摘要

将文件从一台服务器上传到另一台服务器上用到了scp命令。

scp(Secure Copy Protocol)命令用于在本地和远程主机之间或两个远程主机之间安全地复制文件或目次。它基于SSH协议,因此文件传输过程中会进行加密。以下是scp命令的具体表明及具体示例:
一、根本语法

  1. scp [options] source destination
复制代码


  • source:源文件或目次的路径,可以是本地路径大概远程路径。
  • destination:目标文件或目次的路径,也可以是本地路径或远程路径。
二、常用选项



  • -r:递归复制整个目次及其内容。
  • -P port:指定远程主机的SSH端口(注意是大写的-P),默认端口是22。
  • -i identity_file:指定私钥文件用于身份验证。
  • -C:启用压缩,适用于大文件传输,可以淘汰带宽占用。
  • -p:保存文件的修改时间、访问时间和权限。
  • -l bandwidth_limit:限制传输的带宽,单位为Kbit/s。
  • -v:启用具体输出,显示传输进度和调试信息。
三、具体示例


  • 从本地复制文件到远程主机
  1. scp /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:将本地的abc.sh文件复制到远程主机192.168.100.20的/root目次:
  1. scp /etc/abc.sh root@192.168.100.20:/root/
复制代码

  • 从远程主机复制文件到本地
  1. scp username@remote_host:/path/to/remote/file /path/to/local/destination
复制代码
示例:从远程主机192.168.100.20上的/root/abc.sh文件复制到本地的/home/user/目次:
  1. scp root@192.168.100.20:/root/abc.sh /home/user/
复制代码

  • 复制本地目次及其内容到远程主机
使用-r选项递归复制目次:
  1. scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination
复制代码
示例:将本地的/home/user/mydir目次复制到远程主机/root/目次:
  1. scp -r /home/user/mydir root@192.168.100.20:/root/
复制代码

  • 复制远程主机上的目次到本地
同样使用-r选项:
  1. scp -r username@remote_host:/path/to/remote/directory /path/to/local/destination
复制代码
示例:将远程主机/root/mydir目次复制到本地/home/user/目次:
  1. scp -r root@192.168.100.20:/root/mydir /home/user/
复制代码

  • 指定非默认SSH端口
假如远程主机使用非默认的SSH端口(比方2222),可以使用-P选项指定端口号:
  1. scp -P port /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:
  1. scp -P 2222 /etc/abc.sh root@192.168.100.20:/root/
复制代码

  • 限制传输带宽
使用-l选项限制传输的带宽(以Kbit/s为单位):
  1. scp -l bandwidth_limit /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:限制带宽为500Kbit/s:
  1. scp -l 500 /etc/abc.sh root@192.168.100.20:/root/
复制代码

  • 启用具体输出
使用-v选项启用具体输出,显示传输进度和调试信息:
  1. scp -v /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:
  1. scp -v /etc/abc.sh root@192.168.100.20:/root/
复制代码

  • 使用私钥进行身份验证
假如远程主秘密求使用SSH密钥进行身份验证,可以通过-i选项指定私钥文件:
  1. scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:使用/home/user/.ssh/id_rsa密钥文件:
  1. scp -i /home/user/.ssh/id_rsa /etc/abc.sh root@192.168.100.20:/root/
复制代码

  • 保存文件权限和时间
使用-p选项保存文件的修改时间、访问时间和权限:
  1. scp -p /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:
  1. scp -p /home/user/music.mp3 user@192.168.1.100:/home/user/music/
复制代码

  • 使用压缩
使用-C选项在复制过程中压缩文件或目次,可以淘汰网络传输时间:
  1. scp -C /path/to/local/file username@remote_host:/path/to/remote/destination
复制代码
示例:
  1. scp -C /home/user/largefile.zip user@192.168.1.100:/home/user/backup/
复制代码
四、注意事项



  • 确保远程主机已经启用了SSH服务。
  • 假如目标目次在远程主机上不存在,scp命令会主动创建目次。
  • 默认情况下,scp会要求你输入远程主机的密码(除非使用密钥认证)。
  • scp命令使用的是SSH协议,因此其安全性依赖于SSH的设置。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表