1 、rsync介紹 rsync是實現全量及增量的本地或遠程數據鏡像同步備份的工具 rsync常用命令參數 2、rsync特性 ①支持拷貝特殊文件如軟鏈接,設備等 ②排除指定文件或目錄同步的功能,相當於打包命令tar排除功能 ③ 保持原文件或目錄的許可權、時間、硬鏈接、屬主、組等屬性不改變 ④實現增量 ...
1 、rsync介紹
rsync是實現全量及增量的本地或遠程數據鏡像同步備份的工具
rsync常用命令參數
命令參數 參數說明 -a (--archive) 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於rtopgDl -v (--verbose) 顯示輸出過程,傳輸時的進度等信息 -z (--compress) 傳輸時進行壓縮以提高傳輸效率 --exclude=/etc/hosts 指定排除不需要傳輸的文件信息(和tar參數一樣) --exclude-from=file 文件名所在的目錄文件,可以實現排除多個文件(和 tar參數一樣) --bwlimit=PATE limit I/O bandwidth;KBytes per second limit socket I/O bandwidth限速功能 --delete 讓目標目錄和源目錄數據一致,無差異同步數據
2、rsync特性
①支持拷貝特殊文件如軟鏈接,設備等
②排除指定文件或目錄同步的功能,相當於打包命令tar排除功能
③ 保持原文件或目錄的許可權、時間、硬鏈接、屬主、組等屬性不改變
④實現增量同步,只同步發生變化的數據,傳輸效率高
⑤可以使用rcp,rsh,ssh等方式來配合傳輸文件
⑥可以通過socket(進程方式)傳輸文件和數據
⑦支持匿名的認證進程模式傳輸,實現方便安全數據備份
3、rsync應用工作場景
①利用定時任務+rsync實現定時同步數據,主要同步的數據信息是網站內部人員使用的
②利用實時同步軟體+rsync實現實時同步數據,主要同步的數據信息是網站用戶上傳的數據信息
4、rsync數據傳輸方式
①主機本地之間的數據傳輸(此時類似於cp命令的功能)
② 藉助rcp,ssh等通道來傳輸數據(此時類似於scp命令的功能)
③以守護進程(socket)的方式傳輸數據(這個是rsync自身的重要的功能),重點掌握
5、rsync守護進程——服務端配置
1、查看系統是否安裝rsync軟體
rpm -qa rsync rsync-3.0.6-12.el6.x86_64
2、rsync多模塊主配置文件
cat >/etc/rsyncd.conf<<EOF #rsync server# #created by yanxinjiang 2017-8-1 ##rsyncd.conf start## uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 172.16.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password [backup] path = /backup [nfsbackup] path = /nfsbackup EOF
3、創建備份目錄及授權管理用戶
mkdir /backup -p chown -R rsync.rsync /backup/ useradd rsync -s /sbin/nologin -M
4、創建rsync服務端與客戶端身份認證文件
echo "rsync_backup:123456" >/etc/rsync.password chmod 600 /etc/rsync.password
5、啟動rsync服務
[root@backup ~]# rsync --daemon [root@backup ~]# lsof -i:873 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsync 31209 root 3u IPv4 7505812 0t0 TCP *:rsync (LISTEN) rsync 31209 root 5u IPv6 7505813 0t0 TCP *:rsync (LISTEN)
6、rsync守護進程——客戶端配置
1、創建客戶端身份認證文件並授權
[root@nfs01 ~]# echo "123456" >/etc/rsync.password [root@nfs01 ~]# chmod 600 /etc/rsync.password
2、客戶端測試rsync服務
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list sent 26 bytes received 8 bytes 3.24 bytes/sec total size is 314 speedup is 9.24
3、rsync無差異數據同步
客戶端推送
[root@nfs01 data]# ls /data/ a b c d e f g pull.txt [root@nfs01 data]# rsync -avz /data --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list data/ data/a data/b data/c
服務端檢查
[root@backup backup]# ls /backup/data/
a b c d e f g pull.txt
3、客戶端推送遇到的問題
錯誤1 [root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup Password: @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6] 錯誤2 [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::/backup ERROR: The remote path must start with a module name not a / rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6] 錯誤3 [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup @ERROR: Unknown module 'backup' rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6] 錯誤4 [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup Password: sending incremental file list hosts rsync: mkstemp ".hosts.5z3AOA" (in backup) failed: Permission denied (13)
4、錯誤總結
①密碼輸入錯誤,虛擬用戶名錯誤
②secrets file = /etc/rsync.password指定的密碼文件和實際密碼文件名稱不一致
③/etc/rsync.password文件許可權不是600
④rsync_backup:123456密碼配置文件後面註意不要有空格
⑤rsync客戶端密碼文件中只輸入密碼信息即可,不要輸入虛擬認證用戶名稱
⑥推送時雙冒號後面為模塊名backup,而不是路徑/backup
⑦telnet連接rsync服務ip地址873埠,查看服務是否啟動 telnet 172.16.1.41 873
⑧共用目錄的屬主和屬組不正確,不是rsync;共用目錄的許可權不正確,不是755
7、rsync客戶端訪問服務端原理