1. 程式人生 > >rsync服務端和客戶端配置自動化配置腳本

rsync服務端和客戶端配置自動化配置腳本

列表 conf sts 系統 計算機名 1-1 只讀 watermark run

系統版本
CentOS release 6.9 (Final)
2.6.32-696.el6.x86_64 x86_64

rsync 服務端IP:172.16.1.41 計算機名:backup
rsync客戶端IP:172.16.1.31 計算機名:nfs

服務器配置:

[root@backup scripts]# cat backup_server.sh 
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#rsyncd.conf file 配置rsync的服務端文件
cat >>/etc/rsyncd.conf<<EOF
#rsync_config______________begin
#creat by yuguotianqing  2018-01-15
##rsync.conf start##
uid =rsync #用戶遠端的命令使用 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#日誌文件
[backup]#模塊名
path =/backup/ #模塊設定的路徑(提供訪問的目錄)
ignore errors #忽略錯誤
read only =false #只讀為假(可寫)
list =false#不能列表
hosts allow =172.16.1.0/24 #允許連接的 ip 段
#host deny =0.0.0.0/32#拒絕連接的 ip 段
auth users =rsync_backup#授權連接的用戶
secrets file =/etc/rsync.password#虛擬賬號對應的密碼文件
#rsync_config_____________end
EOF

#useradd rsync 創建虛擬用戶和虛擬用戶組
useradd rsync -s /sbin/nologin -M  &&\   #不需要用命令-s  不需要家目錄-M
tail -1 /etc/passwd &&\   #查詢是否創建

#daemon  啟動daemon(進程)服務
rsync --daemon  &&\   #啟動進程服務
ps -ef |grep rsync|grep -v grep &&\  #查詢是否開啟
lsof -i :873 &&\  #查看端口

#backup establish  創建backup目錄
mkdir -p /backup &&\  
chown rsync.rsync /backup/ &&\ #backup目錄需要對應配置文件的uid和gid的屬主和屬組主,如果不對應的話客戶端無法把文件推送過來
ls -ld /backup  &&\  #查看目錄的屬主和屬組主必須為 rsync

#rsync password file 創建虛擬賬號的密碼文件
echo "rsync_backup:oldboy" >/etc/rsync.password &&\ #對應rsync_backup賬號:oldboy為密碼
chmod 600 /etc/rsync.password &&\ #因為oldboy是可讀的字節但是文件類型是其他用戶是可讀的,這樣子就不安全,所以需要修改文件權限,如果不修改權限也無法推送文件。
ls -l /etc/rsync.password &&\ #查看權限

#local daemon
echo "/usr/bin/rsync --daemon" >>/etc/rc.local &&\ #加入開機自啟動的配置文件裏面去
tail -5 /etc/rc.local  #查看配置文件是否存在/usr/bin/rsync --daemon

下面是客戶端配置:

[root@nfs scripts]# cat rsync_client.sh 
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#rsync password file
echo "oldboy" >/etc/rsync.password &&\  #在/etc/rsync.password留下密碼就可以了密碼為:oldboy
chmod 600 /etc/rsync.password &&\  #因為有密碼考慮到安全問題所以權限也修改成600
ls -l /etc/rsync.password &&mkdir -p /backup  #創建一個backup目錄

下面是推送測試:
[```
root@nfs01 backup]# touch stu{01..100} #創建測試文件
[root@nfs01 backup]# ls
stu001 stu011 stu021 stu031 stu041 stu051 stu061 stu071 stu081 stu091
stu002 stu012 stu022 stu032 stu042 stu052 stu062 stu072 stu082 stu092
stu003 stu013 stu023 stu033 stu043 stu053 stu063 stu073 stu083 stu093
stu004 stu014 stu024 stu034 stu044 stu054 stu064 stu074 stu084 stu094

stu005 stu015 stu025 stu035 stu045 stu055 stu065 stu075 stu085 stu095
stu006 stu016 stu026 stu036 stu046 stu056 stu066 stu076 stu086 stu096
stu007 stu017 stu027 stu037 stu047 stu057 stu067 stu077 stu087 stu097
stu008 stu018 stu028 stu038 stu048 stu058 stu068 stu078 stu088 stu098
stu009 stu019 stu029 stu039 stu049 stu059 stu069 stu079 stu089 stu099
stu010 stu020 stu030 stu040 stu050 stu060 stu070 stu080 stu090 stu100



方法1:
`[root@nfs01 backup]# rsync -avz /backup/ [email protected]::backup/ --password-file=/etc/rsync.password     ` 

rsync -avz /backup/ 推送本地backup/目錄下的文件到172.16.1.41backup服務器上rsync_backup用戶

::backup這裏對應的是backup服務器端rsync配置文件的模塊名稱[backup]

--password-file=/etc/rsync.password     設置備份服務器端rsync虛擬用戶的密碼,--password-file等於這個文件裏面的是密碼/etc/rsync.password 

出現下圖表示推送成功

![](http://i2.51cto.com/images/blog/201801/17/89757548831ed2faed0d93595ae36f7b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

rsync服務端和客戶端配置自動化配置腳本