在服务器程序的部署运维过程中,我们经常需要将文件从一个服务器拷贝到另一个服务器中。可以使用ftp,可以使用samba服务,这里我们介绍scp命令进行文件的拷贝和传输。

  scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

  scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
  • -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)的选项。

 

场景1:

本地文件复制到远程服务器:

scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file 

 

信息:本地文件 拷贝到远程目录,或者可以直接指定到新服务器上的文件名称,看实例:

此时文件名称没有变化,直接拷贝到新服务器的/jenkins目录下;

此时新服务器下/jenkins/目录下,出现了test-name.log这个文件。

 

注意,这里是需要输入密码的,如果按照后两种写法,甚至还要输入用户名。

如果想一句搞定,可以使用sshpass在语句中将密码输入:

本地没有sshpass命令的,可以yum install sshpass -y进行安装。

 

这里推荐预先将两个机器用ssh-keygen生成各自的公私钥,再交换各自公钥,进行相关配置,实现scp免密输入的加密文件传输:

https://www.cnblogs.com/bruceChan0018/p/15171090.html 

 

场景2:

本地目录复制到远程服务器上:

scp -r local_folder remote_username@remote_ip:remote_folder 
或者 
scp -r local_folder remote_ip:remote_folder 

 

信息:

如果远程目录存在,那么本地目录拷贝过去就直接放在了远程目录下;

如果远程目录最后一层不存在,那么本地目录拷贝过去就以指定的不存在的新目录名称存放;

如果远程目录多层都不存在,会报错:No such file or directory.

场景3:远程服务器文件复制到本地

scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 

 

场景4:远程服务器文件目录复制到本地

scp -r www.runoob.com:/home/root/others/ /home/space/music/

 

场景3和场景4只是1和2的参数位置相互调换位置,此处就不再给出实际演示的例子。

 

 

posted on 2021-08-21 23:16  长江同学  阅读(835)  评论(0编辑  收藏  举报