1. 程式人生 > >centos rsyncd+crontab 備份遠端的資料檔案到本地伺服器步驟

centos rsyncd+crontab 備份遠端的資料檔案到本地伺服器步驟

1、遠端伺服器中 rsyncd 安裝

 1. yum -y install rsync
 2. systemctl start rsyncd.service # 啟動服務
 3. systemctl enable rsyncd.service #設定為是否自動開啟服務
 4. netstat -lnp|grep 873 或者 ps -ef|grep 873 看是否服務已經啟動(873為rsync啟動的埠,netstat 的安裝yum -y install net-tools 沒有netstat 命令的話進行安裝)

2、rsyncd 進行配置的修改 /etc/rsyncd.conf

 uid = root                              
 # //設定執行rsync 程序的使用者
 gid = root
 use chroot = no
 max connections = 4
 # pid file = /var/run/rsyncd.pid        
 #//CentOS7中yum安裝不需指定pid file 否則報錯
 lock file=/var/run/rsyncd.lock
 log file = /var/log/rsyncd.log     
 # //此檔案定義完成後系統會自動建立
 exclude = lost+found/
 transfer logging = yes
 timeout = 900
 ignore nonreadable = yes         
 # //同步時跳過沒有許可權的目錄
 dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2          
 #  //傳輸時不壓縮的檔案
 -------------------------------------------------------------start 備份檔案的配置規則 ---------------------------------------------------
 #規則名稱,作為測試用規則,可隨意更改,與後文對應即可。
 [test]        #備份路徑的別名   rsync -vzurtopg --progress --delete 
[email protected]
地址::test /home/test --password-file=/etc/rsyncd/rsyncd.passwd [test] 為伺服器指定的路徑別名,執行上面命令的時候指定為test就可以進行copy了 #同步的路徑 path=/home/ywld #規則描述 comment=測試規則 ignore errors #是否可以pull read only=no #是否可以push write only=no list=no #下面配置同步時候的身份,注意該身份是在rsync裡面定義的,並非是本機實際使用者。等下說說如何在rsync裡面定義身份。 #客戶端獲取檔案的身份此使用者並不是本機中確實存在的使用者 auth users=root #不忽略的檔案 include = webHTML/ redis/ offer_conf/ mysqldataback/ information/ docker_images_encrypt/ conf/ backup/ xiugai.html web.sh login.html index.js confIp.js backstage.sh #進行排除掉那些不需要備份 exclude = .bash_history/ .bash_logout/ .bash_profile/ .bashrc/ .docker/ .lesshst/ .oracle_jre_usage/ .pki/ .sdkman/ .ssh/ .swp/ .vim/ .viminfo/ .zshrc/ #//用來認證客戶端的祕鑰檔案 格式 USERNAME:PASSWD 此檔案權 #//限一定需要改為600,且屬主必須與執行rsync的使用者一致。 secrets file=/etc/rsyncd/rsyncd.passwd #允許所有主機訪問 hosts allow=* 配置檔案修改之後需要重啟 rsyncd服務 systemctl restart rsyncd.service

3、建立 服務端 rsyncd.passwd 檔案並且修改許可權

echo 'root:123456'>/etc/rsyncd/rsyncd.passwd     //檔案使用者名稱和路徑為上面定義
chmod 600 /etc/rsyncd/rsyncd.passwd        //修改許可權

4、建立客戶端 rsyncd.passwd 檔案 並且修改許可權

  echo '123456' >>/etc/rsyncd/rsyncd.passwd     //注意這裡只需要伺服器rsyncd.passwd 中的密碼
  chmod 600 /etc/rsyncd/rsyncd.passwd

5、重啟服務端和客戶端的rsyncd 服務

 systemctl restart rsyncd.service

6、如果用的阿里雲檢視安全組是否開啟873埠,沒的話需要開啟
7、然後執行備份的指令碼

  rsync -auv --password-file=/etc/rsyncd/rsyncd.passwd 使用者名稱@IP地址::模組名  本地目錄
  eg
  rsync -auv --password-file=/etc/rsyncd/rsyncd.passwd [email protected]::ywld/root/test/
  rsync -vzurtopg --progress --delete [email protected]::ywld /home/ywld--password-file=/etc/rsyncd/rsyncd.passwd

8、進行定時執行備份的指令碼

crontab -e # 進行新增定時的指令碼
*/10 * * * * sh  /home/test/back.sh #指令碼的絕對路徑
每隔10分鐘進行一次

9、大功告成。。。。。。。
借鑑其他博主的部落格還有更好的方法 eg:通過監聽器實時同步 修改 檔案
借鑑地址:https://blog.csdn.net/u011415782/article/details/78720072 目前沒有進行驗證,有興趣的可以自己動手試試。
還有一個網站比較看著舒服 https://www.cnblogs.com/zhenhui/p/5715840.html
https://blog.csdn.net/Mr_rsq/article/details/79272189#4-rsync多模組實戰