八週二次課

八週二次課
10.28 rsync工具介紹
10.29/10.30 rsync經常使用選項
10.31 rsync經過ssh同步
shell

10.28 rsync工具介紹vim

  • rsync -av /etc/passwd /tmp/1.txt
  • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt
  • rsync格式
  • rsync [OPTION] … SRC DEST
  • rsync [OPTION] … SRC [user@]host:DEST
  • rsync [OPTION] … [user@]host:SRC DEST
  • rsync [OPTION] … SRC [user@]host::DEST
  • rsync [OPTION] … [user@]host::SRC DEST

rsync工具介紹

  • 安裝rsync包——>yum install -y rsync
  • rsync命令,它是一個遠程數據同步工具,可經過LAN/WAN快速同步多臺主機間的文件。
    • 好比,有A、B目錄,想要把A目錄裏面的數據拷貝到B目錄下去,而且A目錄中數據一直在更新
    • 需求,每小時拷貝一次
    • 實現,可以使用rsync命令
      • 優點:實現增量的拷貝,並支持遠程
  • rsync -av /etc/passwd /tmp/1.txt //把/etc/passwd文件拷貝到/tmp下並更名爲1.txt
    • -a參數中包含了不少選項,後面會詳細介紹
    • -v查看到可視化過程
      • 查看到發送了多少個字節
      • 多少字節每秒
      • 文件一共有多大
      • 速度是多少

rsync命令

[root@tianqi-01 ~]# rsync -av /etc/passwd /tmp/1.txt
sending incremental file list
passwdbash

sent 908 bytes  received 31 bytes  1878.00 bytes/sec
total size is 834  speedup is 0.89
[root@tianqi-01 ~]# 服務器

rsync命令,遠程命令同步/拷貝

好比,拷貝到對方機器root用戶下 。而後在root後加@IP,: 冒號分開,再跟文件的根路徑,而後輸入用戶密碼。ssh

  • rsync -av /etc/passwd root@192.168.11.136:/tmp/1.txt //將/etc/passwd文件拷貝到root用戶192.168.11.136IP地址下,並用 : 冒號分開,再跟文件的根路徑。

[root@tianqi-01 ~]# rsync -av /etc/passwd root@192.168.11.136:/tmp/1.txt
The authenticity of host '192.168.11.136 (192.168.11.136)' can't be established.
ECDSA key fingerprint is SHA256:PKJdyfN44llC2Qcso4YHJZY3t0J2e5X9ieo6aAqESDs.
ECDSA key fingerprint is MD5:9a:f4:73:a0:b0:03:dc:3d:3d:bc:82:99:a9:77:7d:ec.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.11.136' (ECDSA) to the list of known hosts.
root@192.168.11.136's password: 
sending incremental file list工具

sent 31 bytes  received 12 bytes  0.79 bytes/sec
total size is 834  speedup is 19.40
[root@tianqi-01 ~]# post

rsync格式

  • rsync [OPTION] … SRC DEST
    • [OPTION]表示它的選項
    • SRC表示源目錄
    • DEST表示目標目錄,或者是目標文件
  • rsync [OPTION] … SRC [user@]host:DEST //拷貝到遠程的服務器上去
    • user@可省略,那就會默認當前終端的用戶
  • rsync [OPTION] … [user@]host:SRC DEST //先寫遠程的機器/目錄,而後拷貝到本地的目錄下
  • rsync [OPTION] … SRC [user@]host::DEST //這裏的兩個冒號,能夠是目標,能夠是源
  • rsync [OPTION] … [user@]host::SRC DEST

10.29/10.30 rsync經常使用選項spa

  • rsync經常使用選項
    • -a 包含-rtplgoD參數選項
    • -r 同步目錄時要加上,相似cp時的-r選項
    • -v 同步時顯示一些信息,讓咱們知道同步的過程
    • -l 保留軟鏈接
      • 如果拷貝的源目錄裏面有一個軟連接文件,那這個軟連接文件指向到了另一個目錄下
      • 再加上-l,它會把軟連接文件自己拷貝到目標目錄裏面去
    • -L 加上該選項後,同步軟連接時會把源文件給同步
    • -p 保持文件的權限屬性
    • -o 保持文件的屬主
    • -g 保持文件的屬組
    • -D 保持設備文件信息
      • /dev/sdb1 這樣的設備文件有它的特殊性,若是不加-D 可能拷貝過去就是一個很是普通的文件,不能當設備來用
    • -t 保持文件的時間屬性
    • --delete 刪除DEST中SRC沒有的文件
    • --exclude 過濾指定文件,如--exclude 「logs」會把文件名包含logs的文件或者目錄過濾掉,不一樣步
    • -P 顯示同步過程,好比速率,比-v更加詳細
    • -u 加上該選項後,若是DEST中的文件比SRC新,則不一樣步
      • update
    • -z 傳輸時壓縮,zip

rsync命令,同步目錄

  • rsync -av /root/111 /tmp/111_dest //同步一個目錄
    • 在同步目錄的時候,在目錄的最後面加一個斜槓/

[root@tianqi-01 ~]# ls
111  anaconda-ks.cfg  shell
[root@tianqi-01 ~]# ls /tmp/
1.txt
ipt.txt
ks-script-nmOxqc
systemd-private-6ccef82c50a846f89ae3067d5221e3dd-vgauthd.service-bPHCKX
systemd-private-6ccef82c50a846f89ae3067d5221e3dd-vmtoolsd.service-cq1HUx
systemd-private-7099e9c34e244f709586a6e09bf81c9f-vgauthd.service-LumV5m
systemd-private-7099e9c34e244f709586a6e09bf81c9f-vmtoolsd.service-V1e07b
systemd-private-846951eecfef4f91b8a2418c0476aaa3-vgauthd.service-qQIUrB
systemd-private-846951eecfef4f91b8a2418c0476aaa3-vmtoolsd.service-E7ezhw
systemd-private-a87ee16c09514da291c40bb760f53134-vgauthd.service-UFKYFZ
systemd-private-a87ee16c09514da291c40bb760f53134-vmtoolsd.service-OBbET1
systemd-private-bd23fa9ede5b41dd9a61a49f5262e569-vgauthd.service-z7ntVY
systemd-private-bd23fa9ede5b41dd9a61a49f5262e569-vmtoolsd.service-7A9nPi
yum.log
[root@tianqi-01 ~]# rsync -av /root/111/ /tmp/111_dest/        //同步一個目錄
sending incremental file list
created directory /tmp/111_dest
./
a.txt
b.txt.net

sent 139 bytes  received 53 bytes  384.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 ~]# 3d

在加入參數 -L 後,會把參數 -l 的含義給覆蓋掉

  • -L會把軟連接所指向的源文件給拷貝過去

[root@tianqi-01 ~]# rsync -avL /root/111/ /tmp/111_dest/
sending incremental file list

sent 58 bytes  received 12 bytes  140.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 ~]# 

rsync命令,刪除目標中源文件中沒有的內容

  • rsync -avL --delete /root/111/ /tmp/111_dest/
    • --delete會把多餘的文件除去

[root@tianqi-01 ~]# ls 111/
a.txt  b.txt
[root@tianqi-01 ~]# ls /tmp/111_dest/
a.txt  b.txt
[root@tianqi-01 ~]# touch /tmp/111_dest/new.txt
[root@tianqi-01 ~]# rsync -avL --delete /root/111/ /tmp/111_dest/

sending incremental file list
./
deleting new.txt

sent 61 bytes  received 15 bytes  152.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 ~]# ls !$            //新建立的new.txt已經刪除
ls /tmp/111_dest/
a.txt  b.txt
[root@tianqi-01 ~]# 

rsync命令,過濾全部txt文件

[root@tianqi-01 ~]# rm -rf /tmp/111_dest/*

[root@tianqi-01 ~]# ls 111/
1  a.txt  b.txt
[root@tianqi-01 ~]# rsync -avL --exclude "*.txt" /root/111/ /tmp/111_dest/
sending incremental file list
./
1/

sent 46 bytes  received 19 bytes  130.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 ~]# 

  • 可屢次過濾文件

[root@tianqi-01 ~]# ls 111/
1  aming  a.txt  b.txt
[root@tianqi-01 ~]# rm -rf /tmp/111_dest/*
[root@tianqi-01 ~]# rsync -avL --exclude "*.txt" --exclude "aming*" /root/111/ /tmp/111_dest/

sending incremental file list
./
1/

sent 50 bytes  received 19 bytes  138.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 ~]# 

  • 在添加文件後,再次同步,會只同步裏面不相同的文件,而相同的文件則不會再次同步

[root@tianqi-01 ~]# cd 111
[root@tianqi-01 111]# touch 6.dest 123
[root@tianqi-01 111]# rsync -avL --exclude "*.txt" --exclude "aming*" /root/111/ /tmp/111_dest/

sending incremental file list
./
123
6.dest

sent 152 bytes  received 54 bytes  412.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 111]# 

rsync命令,參數-P

  • rsync -avP /root/111/ /tmp/111_dest/
    • 在傳輸過程當中,會告訴你傳輸了多少,傳輸的速度是多少

[root@tianqi-01 111]# rm -rf /tmp/111_dest/*
[root@tianqi-01 111]# rsync -avP /root/111/ /tmp/111_dest/

sending incremental file list
./
123
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=5/7)
6.dest
           0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=4/7)
a.txt
           0 100%    0.00kB/s    0:00:00 (xfer#3, to-check=3/7)
aming
           0 100%    0.00kB/s    0:00:00 (xfer#4, to-check=2/7)
b.txt
           0 100%    0.00kB/s    0:00:00 (xfer#5, to-check=1/7)
1/

sent 322 bytes  received 114 bytes  872.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 111]# 

rsync命令,參數-u

[root@tianqi-01 111]# cd !$
cd /tmp/111_dest/
[root@tianqi-01 111_dest]# ls
1  123  6.dest  aming  a.txt  b.txt
[root@tianqi-01 111_dest]# vim a.txt            //在a.txt中添加內容
[root@tianqi-01 111_dest]# rsync -avP /root/111/ /tmp/111_dest/
sending incremental file list
./
a.txt
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=3/7)

sent 163 bytes  received 35 bytes  396.00 bytes/sec
total size is 0  speedup is 0.00

[root@tianqi-01 111_dest]# cat a.txt 
[root@tianqi-01 111_dest]# vim a

aming  a.txt  
[root@tianqi-01 111_dest]# vim a.txt 
[root@tianqi-01 111_dest]# rsync -avPu /root/111/ /tmp/111_dest/

sending incremental file list
./

sent 124 bytes  received 16 bytes  280.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 111_dest]# cat a.txt 
afdafa
svsfwef
sgwesd
srwf
[root@tianqi-01 111_dest]# cat /root/111/a.txt 
[root@tianqi-01 111_dest]# 

rsync命令,參數-z

  • 在遠程傳輸不少文件的時候,加上-z 參數,能夠節省帶寬,增長速度的

[root@tianqi-01 111_dest]# rsync -avPz /root/111/ /tmp/111_dest/
sending incremental file list
a.txt
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=3/7)

sent 157 bytes  received 32 bytes  378.00 bytes/sec
total size is 0  speedup is 0.00
[root@tianqi-01 111_dest]# 

10.31 rsync經過ssh同步

  • rsync經過ssh方式同步
  • rsync -av test1/ 192.168.133.132:/tmp/test2/
  • rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/

rsync命令,將文件傳輸到另外一臺虛擬機

  1. 在終端打開兩個不一樣ip的虛擬機,而且兩個虛擬機是能夠互通ping通的

在CentOS7.4的虛擬機中,ping另外一臺虛擬機

[root@tianqi-01 111_dest]# ping 192.168.11.137
PING 192.168.11.137 (192.168.11.137) 56(84) bytes of data.
64 bytes from 192.168.11.137: icmp_seq=1 ttl=64 time=0.593 ms
64 bytes from 192.168.11.137: icmp_seq=2 ttl=64 time=0.250 ms
^C
--- 192.168.11.137 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.250/0.421/0.593/0.172 ms
[root@tianqi-01 111_dest]# 

在CentOS7.2的虛擬機中,ping另外一臺虛擬機

[root@tianqi ~]# ping 192.168.11.136
PING 192.168.11.136 (192.168.11.136) 56(84) bytes of data.
64 bytes from 192.168.11.136: icmp_seq=1 ttl=64 time=0.407 ms
64 bytes from 192.168.11.136: icmp_seq=2 ttl=64 time=0.262 ms
^C
--- 192.168.11.136 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.262/0.334/0.407/0.074 ms
[root@tianqi ~]# 

在CentOS7.4的終端虛擬機上,將文件傳輸到CentOS7.2的虛擬機上

  • 前提:在兩個虛擬機上都安裝rsync包——>yum install -y rsync

在CentOS7.4的終端虛擬機上,將文件傳輸到CentOS7.2的虛擬機上

[root@tianqi-01 111_dest]# rsync -av /etc/passwd 192.168.11.137:/tmp/aming.txt
root@192.168.11.137's password:     //輸入192.168.11.137虛擬機的密碼,就是CentOS7.2的密碼
sending incremental file list
passwd

sent 908 bytes  received 31 bytes  208.67 bytes/sec
total size is 834  speedup is 0.89
[root@tianqi-01 111_dest]# 

在CentOS7.2虛擬機上查看

[root@tianqi tmp]# ls /tmp/aming.txt
/tmp/aming.txt
[root@tianqi tmp]# cat !$
cat /tmp/aming.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@tianqi tmp]# 

rsync命令,將另外一臺虛擬機文件傳輸到本機上

  • 將CentOS7.2機器中的文件傳輸到本機上

[root@tianqi-01 111_dest]# rsync -avP 192.168.11.137:/tmp/aming.txt /tmp/123.txt
root@192.168.11.137's password: 
receiving incremental file list
aming.txt
         834 100%  814.45kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 30 bytes  received 916 bytes  57.33 bytes/sec
total size is 834  speedup is 0.88
[root@tianqi-01 111_dest]# 

rsync命令,參數-e 指定端口傳輸文件

  • rsync -avP -e "ssh -p 22" /etc/passwd 192.168.11.137:/tmp/hanfeng.txt //指定對方的22端口,就能夠鏈接對面的22端口

[root@tianqi-01 111_dest]# rsync -avP -e "ssh -p 22" /etc/passwd 192.168.11.137:/tmp/aming.txt 
root@192.168.11.137's password: 
sending incremental file list

sent 31 bytes  received 12 bytes  2.46 bytes/sec
total size is 834  speedup is 19.40
[root@tianqi-01 111_dest]# 

ssh命令

  • ssh -p 22 192.168.11.137 //鏈接ip爲192.168.11.137的虛擬機
    • 輸入exit退出

[root@tianqi-01 111_dest]# ssh -p 22 192.168.11.137
root@192.168.11.137's password: 
Last login: Sat Jan 27 16:09:21 2018 from 192.168.11.1
[root@tianqi ~]# exit
logout
Connection to 192.168.11.137 closed.
[root@tianqi-01 111_dest]# 

友情連接:阿銘Linux

相關文章
相關標籤/搜索