• scp命令在linux服务器间传输文件


      在服务器程序的部署运维过程中,我们经常需要将文件从一个服务器拷贝到另一个服务器中。可以使用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的参数位置相互调换位置,此处就不再给出实际演示的例子。

  • 相关阅读:
    面试题
    linux I/O复用
    grep
    转载 hadoop 伪分布安装
    hadoop配置文件: hdfs-site.xml, mapred-site.xml
    Format aborted in 格式化namenode 失败的原因
    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible namespaceIDs
    /etc/rc.d/init.d/iptables: No such file or directory 错误原因
    linux配置Hadoop伪分布安装模式
    初学Linux 命令
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/15170919.html
Copyright © 2020-2023  润新知