1.scp

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,它使用ssh安全协议传输数据。

    scp系统开消小不占资源,不会提高多少系统负荷。虽然 rsync只传送修改的部分。

1.1 命令格式:

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

1.2 复制文件: 

    scp 本地文件名 远端用户名@远端主机IP:新文件名

    scp /test.txt root@172.16.70.71:/home/newtest.txt

1.3 复制目录:(复制目录要参数-r)

    scp -r local_folder remote_username@remote_ip:remote_folder 

    scp -rp /data root@172.16.70.71:/home   #-r 递归复制整个目录,-p保留原文件的修改时间,访问时间和访问权限

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

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

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

1.5 命令参数:

    -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.6 案例实操

1.6.1 将hadoop101中/opt/module目录下的软件拷贝到hadoop102上。

        [luomk@hadoop101 /]$ scp -r /opt/module/* luomk@hadoop102:/opt/module

1.6.2 将hadoop101服务器上的/opt/module目录下的软件拷贝到hadoop103上。

        [luomk@hadoop103 opt]$ scp -r luomk@hadoop101:/opt/module/* hadoop103:/opt/module

1.6.3 在hadoop103上操作将hadoop101中/opt/module目录下的软件拷贝到hadoop104上。

        [luomk@hadoop103 opt]$ scp -r hadoop101:/opt/module/* hadoop104:/opt/module

 

2.rsync

    rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。

    rsync是一个数据镜像及备份工具,具有可使本地和远程两台主机的文件,目录之间,快速同步镜像,远程数据备份等功能。在同步过程中,rsync是根据自己独特的算法,只同步有变化的文件,甚至在一个文件里只同步有变化的部分,所以可以实现快速的同步数据的功能。

2.1 查看rsync使用说明

    man rsync | more

2.2 基本语法

    rsync -rvl         $pdir/$fname             $user@hadoop$host:$pdir

     命令 命令参数  要拷贝的文件路径/名称   目的用户@主机:目的路径

2.3 选项说明

选项

功能

-r

递归

-v

显示复制过程

-l

拷贝符号连接

2.4 案例实操

    把本机/opt/software目录同步到hadoop102服务器的root用户下的/opt/目录

    [luomk@hadoop101 opt]$ rsync -rvl /opt/software/* hadoop102:/opt/software/