rsync伺服器-異地備援

實驗目的:我有2台伺服器,1台是NAS(Rsync server),另1台是apache(Rsync client),我要將apache的資料壓縮後備份到NAS上,但很怕毀了NAS上的資料,所以就自己先實驗一下,以免造成不可挽回的下場。

Rsync server(10.10.10.156):備份伺服器
Rsync client(10.10.10.159):備份來源

Rsync Server(10.10.10.156)

安裝並設定服務狀態
# yum install -y rsync xinetd
# chkconfig rsync on; chkconfig xinetd on
# service xinetd start

開啟 rsync 服務
# vim /etc/xinetd.d/rsync
  service rsync
 {
  disable = no
  flags = IPv6
  socket_type = stream
  wait = no
  user = root, user1
  // 請記得加入連線使用者名稱,若沒有加入,client 端同步時會出現錯誤訊息,請參考 Troubleshooting1
  server = /usr/bin/rsync
  server_args = --daemon
  log_on_failure += USERID
 }
# service xinetd restart

防火牆設定
# iptables -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT
備份組態檔設定
# vim /etc/rsyncd.conf
  [rsyncserver]  // 主機代號
  path = /home/backup  // 備份資料的路徑
  auth users = user1
  uid = root
  gid = root
  secrets file = /etc/rsyncd.secrets  // 認證密碼檔
  read only = no
# mkdir /home/backup
# rsync --daemon --config=/etc/rsyncd.conf
// 載入設定檔,若沒載入有設定,client 端同步時會出現錯誤訊息,請參考Troubleshooting2

認證密碼檔
# vim /etc/rsyncd.secrets
 user1:1  // user_name:password
# chmod 600 /etc/rsyncd.secrets

Rsync Client(10.10.10.156)

在 client 端的部份,我使用 shell script 加上 crontab 自動產生及刪除檔案,這樣就不用手動去增加或刪除資料。

shell script 內容:每分鐘產生一個壓縮檔,並只保留 10 分鐘以內的壓縮檔,舊的資料會自動刪除。
# vim test.sh
 #!/bin/bash
 YMD=$(date +%Y-%m-01-%M-01)
 YMD70=$(date +%Y-%m-01-%M-01 --date -10minutes)
 basedir="/var/www/webserver_backup"
 /bin/tar -zcvf "$basedir"/"$YMD".tar.gz /var/www/html/*
 /bin/rm -rf "$basedir"/"$YMD70".tar.gz

自動排程設定
# crontab -l
 */1 * * * * /root/test.sh

定時執行程式並監看結果 -watch
# cd /var/www/webserver_backup
# watch ls -lh


同步指令
# vim /etc/rsyncd.secrets
 1
# chmod 600 /etc/rsyncd.secrets
# rsync -av --progress --delete --port=873 --password-file=/etc/rsyncd.secrets /var/www/webserver_backup/ user1@10.10.10.156::rsyncserver

第一次備份:

第二次備份:保持兩邊同步,所以會有deleting動作

Troubleshooting1

# rsync -av --progress --delete --port=873 --password-file=/etc/rsyncd.secrets /var/www/webserver_backup/ user1@10.10.10.156::rsyncserver
 @ERROR: auth failed on module rsyncserver
 rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

Troubleshooting2

# rsync -av --progress --delete --port=873 --password-file=/etc/rsyncd.secrets /var/www/webserver_backup/ user1@10.10.10.156::rsyncserver
 rsync: failed to connect to 10.10.10.156: Connection refused (111)
 rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]

沒有留言:

張貼留言