zoukankan      html  css  js  c++  java
  • linux学习笔记34--命令rcp和scp

    rcp代表“remote file copy”(远程文件拷贝)。该命令用于在计算机之间拷贝文件。rcp命令有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。

    1.命令格式:

    rcp [参数] [源文件] [目标文件]

    2.命令功能:

    rcp命令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。

    3.命令参数:

    各选项含义:

    -r 递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录。

    -p 试图保留源文件的修改时间和模式,忽略umask。

    -k 请求rcp获得在指定区域内的远程主机的Kerberos 许可,而不是获得由krb_relmofhost⑶确定的远程主机区域内的远程主机的Kerberos许可。

    -x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。如果在文件名中指定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。如果没有给出远程用户名,就使用当前用户名。如果远程机上的路径包含特殊shell字符,需要用反斜线(\)、双引号(”)或单引号(’)括起来,使所有的shell元字符都能被远程地解释。需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。

    directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:rname@rhost:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径。

    4.使用实例:

    要使用 rcp,需要具备以下条件:

    如果系统中有 /etc/hosts 文件,系统管理员应确保该文件包含要与之进行通信的远程主机的项。

    /etc/hosts 文件中有一行文字,其中包含每个远程系统的以下信息:

    internet_address   official_name   alias

    例如:

    9.186.10.***  webserver1.com.58.webserver

    .rhosts 文件

    .rhosts 文件位于远程系统的主目录下,其中包含本地系统的名称和本地登录名。

    例如,远程系统的 .rhosts 文件中的项可能是:

    webserver1 root

    其中,webserver1 是本地系统的名称,root 是本地登录名。这样,webserver1 上的 root 即可在包含 .rhosts 文件的远程系统中来回复制文件。

    配置过程:

    只对root用户生效

    1. 在双方root用户根目录下建立.rhosts文件,并将双方的hostname加进去.在此之前应在双方的 /etc/hosts文件中加入对方的IP和hostname

    2. 把rsh服务启动起来,redhat默认是不启动的。

    方法:用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行:

    service xinetd restart即可。

    3. 到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty.so

    一行用“#”注释掉即可。(只有注释掉这一行,才能用root用户登录)

    命令使用:

    将文件复制到远程系统

    要将本地系统中的文件复制到远程系统,请使用以下命令:

    rcp local_file userName@remote_hostname:remote_file_path 

    注意,如果当前目录下没有 local_file,则除本地文件名外,还需要提供相对路径(自当前目录开始)或绝对路径名(自 / 开始)。

    仅当希望将 remote_hostname 上的 remote_file 放到其他目录(远程主目录除外)下时,才需要为其指定完整的(绝对)路径。

    使用实例1:将当前目录下的 test1 复制到名为 webserver1的远程系统

    命令:

    rcp test1 webserver1:/home/root/test3

    说明:

    在这种情况下,test1 被复制到远程子目录 test3下,名称仍为 test1 。如果仅提供了远程主机名,rcp 将把 test1 复制到远程主目录下,名称仍为 test1 。

    还可以在目的目录中包含文件名。例如,将文件复制到名为 webserver1的系统中:

    rcp test1 webserver1:/home/root/test3

    在这种情况下,将 test1 复制到远程目录root 下并将其命名为 test3。

    使用实例2:从远程系统复制文件:要将远程系统中的文件复制到本地目录下

    命令:

    rcp remote_hostname:remote_file local_fileEnter

    使用实例:3:将远程系统 webserver1中的 test2 复制到当前目录:

    命令:

    rcp webserver1:/home/root/test2 .Enter

    说明:

    点 (.) 是“当前目录”的简写形式。在这种情况下,远程目录中的 test2 被复制到当前目录下,名称仍为 test2 。

    如果希望用新名称复制文件,请提供目标文件名。

    如果希望将 test2 复制到本地系统中的其他目录下,请使用以下绝对或相对路径名:

    rcp webserver1:/home/root/test2 otherdir/ Enter

    或者,如果希望用其他文件名将文件复制到其他目录下:

    rcp webserver1:/home/root/test2 otherdir/otherfile Enter

    使用实例4:将目录复制到远程系统:要将本地目录及其文件和子目录复制到远程系统,请同时使用 rcp 和 -r(递归)选项。

    命令:

    rcp –r local_dir remote_hostname:remote_dir Enter

    说明:

    如果当前目录下没有 local_dir,则除本地目录名外,还需要提供相对路径名(自当前目录开始)或绝对路径名(自 / 顶级目录开始)。另外,如果主目录下没有 remote_dir,则 remote_dir 将需要一个相对路径(自主目录开始)或绝对路径(自 / 开始)。

    使用实例5:

    要将名为 work 的子目录完整地复制到 webserver1远程计算机中的主目录下名为 products 的目录,请键入以下内容:

    rcp –r work webserver1:/home/root/products Enter

    此命令在 webserver1:/home/root/products 下创建名为 work 的目录及其全部内容(假定 /home/root/products 已存在于 webserver1中)。

    本示例假定用户处于包含 work 的本地目录下。否则,必须提供该目录的相对或绝对路径,如 /home/root/work。

    使用实例6:从远程系统复制目录:

    要将远程目录及其所有文件和子目录复制到本地目录,请在以下语法中使用 rcp 和 -r(递归)选项。

    命令:

    rcp –r remote_hostname:remote_dir local_dir Enter

    要将名为 work 的远程目录复制到当前目录,请键入以下内容:

    rcp –r webserver1:/home/root/work .Enter

    点 (.) 表示当前目录。将在此目录下创建 work 目录。

    ############################

    scp 命令

    ############################

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

    1.命令格式:

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

    2.命令功能:

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

    3.命令参数:

    -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)的选项。

    4.使用实例:

    scp命令的实际应用概述:  

    从本地服务器复制到远程服务器: 

    (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  

    第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名  

    第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名   

    (2) 复制目录:  

    命令格式:  

    scp -r local_folder remote_username@remote_ip:remote_folder  

    或者  

    scp -r local_folder remote_ip:remote_folder  

    第1个指定了用户名,命令执行后需要输入用户密码;  

    第2个没有指定用户名,命令执行后需要输入用户名和密码;

      

    从远程服务器复制到本地服务器: 

    从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

    实例1:从远处复制文件到本地目录

    命令:

    scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

    输出:

    [root@localhost ~]# cd /opt/soft/
    [root@localhost soft]# ll
    总计 80072
    drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
    drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
    drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
    drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
    -rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
    drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
    drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
    drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
    drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
    [root@localhost soft]# scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
    root@192.168.120.204's password: 
    nginx-0.5.38.tar.gz                                                                               100%  479KB 478.7KB/s   00:00    
    [root@localhost soft]# ll
    总计 80556
    drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
    drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
    drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
    drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
    -rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
    drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
    -rw-r--r--  1 root root   490220 03-15 09:11 nginx-0.5.38.tar.gz
    drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
    drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
    drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
    [root@localhost soft]# 

    说明:

    从192.168.120.204机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中

    实例2:从远处复制到本地

    命令:

    scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/

    输出:

    [root@localhost soft]# ll
    总计 80556
    drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
    drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
    drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
    drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
    -rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
    drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
    -rw-r--r--  1 root root   490220 03-15 09:11 nginx-0.5.38.tar.gz
    drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
    drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
    drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
    [root@localhost soft]# scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
    root@192.168.120.204's password: 
    mongodb-linux-i686-static-1.8.5.tgz                                                               100%   28MB  28.3MB/s   00:01    
    README                                                                                            100%  731     0.7KB/s   00:00    
    THIRD-PARTY-NOTICES                                                                               100% 7866     7.7KB/s   00:00    
    mongorestore                                                                                      100% 7753KB   7.6MB/s   00:00    
    mongod                                                                                            100% 7760KB   7.6MB/s   00:01    
    mongoexport                                                                                       100% 7744KB   7.6MB/s   00:00    
    bsondump                                                                                          100% 7737KB   7.6MB/s   00:00    
    mongofiles                                                                                        100% 7748KB   7.6MB/s   00:01    
    mongostat                                                                                         100% 7808KB   7.6MB/s   00:00    
    mongos                                                                                            100% 5262KB   5.1MB/s   00:01    
    mongo                                                                                             100% 3707KB   3.6MB/s   00:00    
    mongoimport                                                                                       100% 7754KB   7.6MB/s   00:00    
    mongodump                                                                                         100% 7773KB   7.6MB/s   00:00    
    GNU-AGPL-3.0                                                                                      100%   34KB  33.7KB/s   00:00    
    [root@localhost soft]# ll
    总计 80560
    drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
    drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
    drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
    drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
    -rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
    drwxr-xr-x  3 root root     4096 03-15 09:18 mongodb
    drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
    -rw-r--r--  1 root root   490220 03-15 09:11 nginx-0.5.38.tar.gz
    drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
    drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
    drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
    [root@localhost soft]# 

    说明:

    从192.168.120.204机器上的/opt/soft/中下载mongodb 目录到本地的/opt/soft/目录来。

    实例3:上传本地文件到远程机器指定目录

    命令:

    scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptest

    输出:

    上传前目标机器的目标目录:
    [root@localhost soft]# cd scptest/
    [root@localhost scptest]# ll
    总计 0
    [root@localhost scptest]# ll

    本地机器上传:
    [root@localhost soft]# scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptest
    root@192.168.120.204's password: 
    nginx-0.5.38.tar.gz                                                                               100%  479KB 478.7KB/s   00:00    
    [root@localhost soft]# 

    上传后目标机器的目标目录:
    [root@localhost scptest]# ll
    总计 484
    -rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz
    [root@localhost scptest]#

    说明:

    复制本地opt/soft/目录下的文件nginx-0.5.38.tar.gz 到远程机器192.168.120.204的opt/soft/scptest目录

    实例4:上传本地目录到远程机器指定目录

    命令:

    scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest

    输出:

    上传前目标机器的目标目录:
    [root@localhost ~]# cd /opt/soft/scptest/
    [root@localhost scptest]# ll
    总计 484
    -rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz
    [root@localhost scptest]# 
    本地机器上传:
    [root@localhost ~]# scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest
    root@192.168.120.204's password: 
    mongodb-linux-i686-static-1.8.5.tgz                                                               100%   28MB  28.3MB/s   00:01    
    README                                                                                            100%  731     0.7KB/s   00:00    
    THIRD-PARTY-NOTICES                                                                               100% 7866     7.7KB/s   00:00    
    mongorestore                                                                                      100% 7753KB   7.6MB/s   00:00    
    mongod                                                                                            100% 7760KB   7.6MB/s   00:01    
    mongoexport                                                                                       100% 7744KB   7.6MB/s   00:00    
    bsondump                                                                                          100% 7737KB   7.6MB/s   00:00    
    mongofiles                                                                                        100% 7748KB   7.6MB/s   00:00    
    mongostat                                                                                         100% 7808KB   7.6MB/s   00:01    
    mongos                                                                                            100% 5262KB   5.1MB/s   00:00    
    mongo                                                                                             100% 3707KB   3.6MB/s   00:00    
    mongoimport                                                                                       100% 7754KB   7.6MB/s   00:01    
    mongodump                                                                                         100% 7773KB   7.6MB/s   00:00    
    GNU-AGPL-3.0                                                                                      100%   34KB  33.7KB/s   00:00    
    [root@localhost ~]# 

    上传后目标机器的目标目录:
    [root@localhost scptest]# ll
    总计 488
    drwxr-xr-x 3 root root   4096 03-15 09:33 mongodb
    -rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz
    [root@localhost scptest]# 

    说明:

        上传本地目录 /opt/soft/mongodb到远程机器192.168.120.204上/opt/soft/scptest的目录中去

  • 相关阅读:
    BNU 51002 BQG's Complexity Analysis
    BNU OJ 51003 BQG's Confusing Sequence
    BNU OJ 51000 BQG's Random String
    BNU OJ 50999 BQG's Approaching Deadline
    BNU OJ 50998 BQG's Messy Code
    BNU OJ 50997 BQG's Programming Contest
    CodeForces 609D Gadgets for dollars and pounds
    CodeForces 609C Load Balancing
    CodeForces 609B The Best Gift
    CodeForces 609A USB Flash Drives
  • 原文地址:https://www.cnblogs.com/gaochsh/p/6720807.html
Copyright © 2011-2022 走看看