centos rsyncd+crontab 備份遠端的資料檔案到本地伺服器步驟
阿新 • • 發佈:2018-11-28
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多模組實戰