Linux 學習-rsync服務
標記:期中架構 --- 同步服務
時間:2017-12-16 13:02:30
作者:peng
本文涉及內容:
1)rsync的安裝
2)rsync的配置過程
3)rsync的應用
4)rsync的常見故障問題彙總
一、rsync 的安裝過程
1)檢查服務是否安裝
檢查一個命令是否安裝
rpm -qa |grep "name" ###模糊查找
rpm -qa "name" ###精確查找
案例:
1、查看ssh命令是否安裝
[root@backup ~]# rpm -qa |grep ssh
openssh-clients-5.3p1-122.el6.x86_64
openssh-5.3p1-122.el6.x86_64
openssh-server-5.3p1-122.el6.x86_64
libssh2-1.4.2-2.el6_7.1.x86_64
[root@backup ~]#
2、查看rsync服務是否安裝
[root@backup ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
[root@backup ~]#
補充
1、查看某一個命令屬於哪個安裝包?
rpm -qf "which CMDname"
例如:
查看sl這個命令屬於哪個安裝包
[root@backup ~]# rpm -qf `which sl`
sl-5.02-1.el6.x86_64
[root@backup ~]#
2、查看安裝包內容都有什麼?
rpm -ql “軟件名稱“
例如:
查看sl這個包裏面偶有什麼
[root@backup ~]# rpm -ql sl
/usr/bin/sl
/usr/share/doc/sl-5.02
/usr/share/doc/sl-5.02/LICENSE
/usr/share/doc/sl-5.02/README.ja.md
/usr/share/doc/sl-5.02/README.md
/usr/share/man/ja/man1/sl.1.ja.gz
/usr/share/man/man1/sl.1.gz
[root@backup ~]#
3、安裝rpm包
rpm -ivh "軟件包“
###rpm 軟件安裝包一般以.rpm結尾
4、卸載rpm軟件
rpm -e zsh 只寫軟件包的名字
--nodeps 強制卸載
案例:
卸載Telnet服務
1、安裝軟件
[root@backup ~]# rpm -qa |grep telnet
telnet-0.17-48.el6.x86_64
[root@backup ~]#
2、開始卸載軟件
01、知曉軟件包的名稱
[root@backup ~]# rpm -qf `which telnet`
telnet-0.17-48.el6.x86_64
[root@backup ~]#
02、卸載軟件
[root@backup ~]# rpm -e telnet-0.17-48.el6.x86_64
[root@backup ~]# rpm -qa |grep telnet
[root@backup ~]#
5、升級rpm包
rpm -Uvh rpm包
二、配置環境
前言:
由於rsync服務啓動時不會自動生成配置文件需要重新編輯配置文件
配置文件模板:
#rsync_config
#created by HQ at 2017
##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] ###備份模塊名稱
comment = "backup dir by oldboy" ###模塊描述
path = /backup ###模塊 目錄路徑
1) 編寫配置文件
cat /etc/rsyncd.conf
###rsyncd.conf######
#------全局配置模塊--------#
uid = rsync
gid = rsync
#指定用戶和用戶爲rsync
use chroot = no
max connections = 200
#最大連接數200
timeout = 300
#定義超時時間
pid file = /var/run/rsyncd.pid
#進程對應的進程號文件
lock file = /var/run/rsync.lock
#進程的鎖文件
log file = /var/log/rsyncd.log
#日誌文件
#-------模塊配置--------#
[backup]
#模塊名稱
path = /backup
#模塊對應的路徑
ignore errors
#忽略錯誤程序
read only = false
#是否只讀
list = false
#是否可以列表
hosts allow = 172.16.1.0/24
#允許訪問網段
hosts deny = 0.0.0.0/32
#拒絕訪問ip
auth users = rsync_backup
#認證用戶
secrets file = /etc/rsync.password
#認證用戶的口令存放文件
#rsync_config------------------end
[root@backup ~]#
2) 依據配置文件創建準備環境
2-1、認證用戶
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=500(rsync) gid=500(rsync) groups=500(rsync)
[root@backup ~]#
2-2、認證用戶密碼文件
[root@backup ~]# vim /etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:123@123
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# ls -ld /etc/rsync.password
-rw------- 1 root root 21 Dec 16 14:09 /etc/rsync.password
[root@backup ~]#
創建密碼文件並設置權限
2-3、備份模塊目錄設置
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 4096 Dec 16 14:12 /backup/
[root@backup ~]#
3、啓動rsync服務
rsynvc --demon 命令啓動
4、客戶端配置操作
4-1)確認服務是否安裝
rpm -aq |grep rsync
4-2) 安裝服務
命令:yum -y install rsync
若果服務已經安裝則跳過這一步
4-3)編輯認證用戶密碼文件
[root@nfs01 ~]# echo "123@123" >>/etc/ysync.password
[root@nfs01 ~]# chmod 600 /etc/ysync.password
[root@nfs01 ~]# ls -ld /etc/ysync.password
-rw------- 1 root root 8 Dec 16 14:29 /etc/ysync.password
[root@nfs01 ~]# cat /etc/ysync.password
123@123
[root@nfs01 ~]#
5、測試運行同步
5-1、正常同步
[root@nfs01 ~]# rsync -avz /etc/hosts [email protected]::backup
Password:
sending incremental file list
hosts
sent 196 bytes received 27 bytes 63.71 bytes/sec
total size is 349 speedup is 1.57
[root@nfs01 ~]#
5-2、免交互同步
命令:rsync -avz /etc/hosts [email protected]::backup/nfs01/ --password-file=/etc/rsync.password
[root@nfs01 ~]# rsync -avz /etc/hosts [email protected]::backup/nfs01/ --password-file=/etc/rsync.password
sending incremental file list
created directory nfs01
hosts
sent 196 bytes received 27 bytes 446.00 bytes/sec
total size is 349 speedup is 1.57
[root@nfs01 ~]#
三、rsync的應用
rsync的各個應用場景及擴展應用
- 多模塊的應用
- 多用戶的應用
1)多模塊應用
1-1、多臺主機需要備份到同一個模塊如何區分
方案一: 在備份的目錄下各自主機創建一個子目錄用於存放自己的備份文件
rsync -avz /etc/hosts [email protected]::backup/`hostname`/ --password-file=/etc/rsync.password
使用haostname 創建以及主機名命名的目錄完成備份。
注:rsync模塊中只能創建一級子目錄、不能創建二級子目錄
就是說:
可以在A模塊下只能創建一個目錄B、不能連續創建A/B/C這種目錄
1-2、多臺主機需要備份到一個模塊下、並且每天備份的內容大致一樣需要將其分開
方案一: 多級目錄備份、rsync模塊備份只能創建一級目錄、不能連續創建兩級目錄。因此這個需求需要預先創建好一級目錄(主機名目錄)
1)在服務端創建好以主機名命名的目錄
#mkdir nfs01
2) 注意創建好目錄的權限
[root@backup backup]# mkdir nfs01
[root@backup backup]# ll
total 4
drwxr-xr-x 2 root root 4096 Dec 16 23:08 nfs01
[root@backup backup]# ll -ld /backup/
drwxr-xr-x 3 rsync rsync 4096 Dec 16 23:08 /backup/
[root@backup backup]# chown -R rsync.rsync /backup/
3)客戶端執行
[root@nfs01 ~]# rsync -avz /etc/hosts [email protected]::backup/nfs01/`date +%F`/ --password-file=/etc/rsync.password
sending incremental file list
created directory nfs01/2017-12-16
hosts
sent 196 bytes received 27 bytes 446.00 bytes/sec
total size is 349 speedup is 1.57
[root@nfs01 ~]#
1-3 將備份文件分別存放不同目錄
1)創建多個模塊來應用
2)編輯配置文件/etc/rsyncd.cond
3)添加模塊
...
[backup_nfs01]
path = /backup_nfs
comment = "backup dir nfs_list"
[root@backup ~]#
4)創建目錄並且設置權限
[root@backup ~]# mkdir /backup_nfs
[root@backup ~]# chown -R rsync.rsync /backup_nfs/
[root@backup ~]# ll -ld /backup_nfs/
drwxr-xr-x 2 rsync rsync 4096 Dec 16 23:27 /backup_nfs/
[root@backup ~]#
注:修改模塊後需要重啓rsync服務的
5)調用模塊
[root@nfs01 ~]# rsync -avz /etc/hosts [email protected]::backup_nfs01 --password-file=/etc/rsync.password
sending incremental file list
hosts
sent 196 bytes received 27 bytes 446.00 bytes/sec
total size is 349 speedup is 1.57
[root@nfs01 ~]#
rsync常見錯誤彙總
1)啓動過程中
報錯:failed to create pid file /var/run/rsyncd.pid: File exists
翻譯:未能創建PID文件/無功/運行/ rsyncd.pid:文件存在
原因:存在相同文件
rsyncd.pid:文件存在
解決方案:
[root@backup ~]# rm -rf /var/run/rsyncd.pid
然後在重新啓動服務即可
[root@backup ~]# rsync --daemon
[root@backup ~]#
2)傳輸過程中
報錯信息如下
[root@nfs01 ~]# rsync -avz /etc/hosts [email protected]::backup --password-file=/etc/rsync.password
rsync: failed to connect to 172.16.1.41
: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
原因:
rsync服務沒有啓動
解決方案:
重啓rsync服務即可
3)認證過程
報錯信息如下:
rsync -avz /etc/sysconfig/network [email protected]::nfsbackup --password-file=/etc/rsync.password
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
原因:
rsync服務端沒有模塊指定的目錄,需要進行創建和授權
解決方案:
1)檢查配置文件中模塊信息
2)檢查備份目錄是否存在
3)檢查備份目錄權限是否爲rsync.rsync
認證失敗:
1)密碼文件權限錯誤(root.root:600)服務端和客戶端要一樣
2)密碼內容需要保持一致
3)配置文件中或者調用中的路徑要正確