rsync命令

rsync - remote synchronous(遠程同步命令)

Rsync是一個快速的,功能至關強大的文件傳輸工具.它能夠經過LAN/WAN快速同步多臺主機之間的文件.它每次同步只同步兩個文件不一樣的部分,所以傳輸速度很快.而且備份文檔能保留源文檔的權限、屬主、屬組、時間等屬性.shell

rsync一共有6中命令格式安全

rsync [OPTION]... SRC DEST 
rsync [OPTION]... SRC [USER@]host:DEST 
rsync [OPTION]... [USER@]HOST:SRC DEST 
rsync [OPTION]... [USER@]HOST::SRC DEST 
rsync [OPTION]... SRC [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

  對應於以上六種命令格式,rsync有六種不一樣的工做模式:

bash

  • 拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啓動這種工做模式。                                                                             
    rsync  -avz  /root/a/  /root/backup
  • 使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啓動該模式。            
    rsync  -avz  /root/a/  root@192.168.10.10:/root/backup
  • 使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啓動該模式。              
    rsync  -avz  root@192.168.10.10:/root/test/ /root/backup
  • 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啓動該模式。                                                                                      
    rsync  -avz  root@192.168.10.10::mymodule /root/backup
  • 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啓動該模式。                                                                                   
    rsync  -avz  /root/backup/   root@192.168.10.10::mymodule 
  • 列遠程機的文件列表。這相似於rsync傳輸,不過只要在命令中省略掉本地機信息便可。                                                                                      
    rsync  -avz  rsync://192.168.10.10::mymodule
    

      


     

 

-t    --times  保持文件時間信息,將源文件的modify time同步到目標文件
-I    --ignore-times 不跳過那些有一樣的時間和長度的文件。
-v    --verbose 詳細模式輸出。
-z    --compress 對備份的文件先壓縮再傳輸
-r    --recursive 對子目錄以遞歸模式處理。
-l    --links 保留軟連接。
-p    --perms 保持文件權限
-g    --group 保持文件屬組信息。
-o    --owner 保持文件屬主信息。
-P    --partial 斷點續傳,保留那些因故沒有徹底傳輸的文件,以是加快隨後的再次傳輸
-D    --devices 保持設備文件信息。
-a    --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持全部文件屬性,等於-rlptgoD
--delete              刪除那些DST中SRC沒有的文件
--exclude=PATTERN     指定排除不須要傳輸的文件模式 
--include=PATTERN     指定不排除而須要傳輸的文件模式
--exclude-from=FILE   排除FILE中指定模式的文件
--include-from=FILE   不排除FILE指定模式匹配的文件
--config=FILE         指定其餘的配置文件,不使用默認的rsyncd.conf文件 
--port=PORT           指定其餘的rsync服務端口
--progress            在傳輸時顯示傳輸過程
--log-format=FORMAT   指定日誌文件格式 
--password-file=FILE  從FILE中獲得密碼
-stats                給出某些文件的傳輸狀態 

 

  sync服務器端的配置

在/etc/rsyncd目錄下建立以下文件服務器

touch /etc/rsyncd/rsyncd.conf          #主配置文件
touch /etc/rsyncd/rsyncd.passwd       #用戶名密碼文件,一組用戶一行,用戶名和密碼使用 : 分割
touch /etc/rsyncd/rsyncd.motd          #非必須,鏈接上rsyncd顯示的歡迎信息,此文件可不建立

必須注意的是,rsyncd服務的密碼文件權限必須是600ssh

chmod 600 /etc/rsyncd/rsyncd.secrets

編輯主配置文件 rsyncd.conf 工具

#    全局配置

# pid file 守護進程pid文件 # port 守護進程監聽端口 # address 守護進程監聽ip pid file = /usr/local/var/run/rsyncd.pid port = 873 address = 192.168.1.2 #rsyncd 守護進程運行系統用戶全局配置,也可在具體的塊中獨立配置, uid = root gid = root #容許 chroot,提高安全性,客戶端鏈接模塊,首先chroot到模塊path參數指定的目錄下 #chroot爲yes時必須使用root權限,且不能備份path路徑外的連接文件 use chroot = yes #只讀, 若是是yes的話,則不能從客戶端同步到服務器端 read only = no #容許訪問rsyncd服務的ip,ip端或者單獨ip之間使用空格隔開
hosts allow = 192.168.10.10/255.255.255.0 192.162.11.1 182.11.11.1/255.255.255.0
#不容許訪問rsyncd服務的ip,*是所有(不涵蓋在hosts allow中聲明的ip,注意和hosts allow的前後順序) hosts deny = * #客戶端最大鏈接數 max connections = 5 #歡迎文件路徑,可選的 motd file = /etc/rsyncd/rsyncd.motd
#日誌相關 # log
file 指定rsync發送消息日誌文件,而不是發送給syslog,若是不填這個參數默認發送給syslog # transfer logging 是否記錄傳輸文件日誌 # timeout鏈接超時時間 log file = /usr/local/logs/rsyncd.log transfer logging = yes timeout = 300 # 模塊配置(可配置多個) #模塊 模塊名稱必須使用[]環繞,好比要訪問data1,則地址應該是root@192.168.10.10::mymodule [mymodule] #模塊根目錄,必須指定 path = /home/username #是否容許列出模塊裏的內容 list = yes #忽略錯誤 #ignore errors #模塊驗證用戶名稱,可以使用空格或者逗號隔開多個用戶名 auth users = mymoduleuser1 #模塊驗證密碼文件 可放在全局配置裏 secrets file = /etc/rsyncd/rsyncd.passwd #註釋 comment = some description about this moudle #排除目錄,多個之間使用空格隔開 exclude = test1/ test2/

 配置密碼文件 rsyncd.passwdui

mymoduleuser1:abc123456

啓動rsync服務this

rsync --daemon --config=/etc/rsyncd.conf

  

客戶端的配置spa

咱們能夠在客戶端配置一份密碼文件, 裏面直接寫密碼就能夠日誌

好比說: mypwd.pwd

abc123456

而後就能夠運行一下命令來備份文件

rsync -avz --delete --progress --password-file=/home/root/rsync.pwd  root@192.168.10.10::mymodule ~/backup

rsync 客戶端自動與服務器同步數據

首先須要新建定時任務

crontab -e

而後寫入

0 */1 * * * rsync -avz --delete --progress --password-file=/home/root/rsync.pwd root@192.168.10.10::mymodule  ~/backup

就能夠實現每隔1小時自動備份

相關文章
相關標籤/搜索