Linux服務器rsync自動備份
一、在 server 端配置1. 編輯配置文件
#vi /etc/rsyncd.conf
添加下麵的配置參數:
uid = nobody # 該選項指定當該模塊傳輸文件時守護進程應該具有的uid.默認值為”nobody”. gid = nobody # 該選項指定當該模塊傳輸文件時守護進程應該具有的gid.默認值為”nobody”. max connections = 4 # 最大連接數為4 use chroot = no # 不使用chroot log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock hosts allow = 192.168.100.1 # 哪些電腦可以訪問rsync服務 #hosts deny = 192.168.100.0/24 # 哪些電腦不可以訪問rsync服務 [mysqlbackup] # rsync區段的設定名稱 path = /zsjdata/mysql/data # 需要同步的數據存放路徑 comment = mysql backup folder # 注釋 auth users = root # 指定用戶 ignore errors # 忽略錯誤 read only = yes # 隻讀 list = no # 不能列表 auth users = root # 連接rsync服務的帳號 secrets file = /etc/rsyncd.pwd # 指定存放帳號密碼的位置
2. 在server端生成一個密碼文件 /etc/rsyncd.pwd
# echo root:xxx >> /etc/rsyncd.pwd # chmod 600 /etc/rsyncd.pwd
3. 啟動 rsync 守護進程方式啟動
#rsync --daemon
4. 添加到自啟動文件
#echo "rsync --daemon" >> /etc/rc.d/rc.local
5. 檢查 rsync 默認使用的是873端口,除非特殊情況,一般不要去修改
#netstat -na | grep 873 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN tcp 0 0 :::873 :::* LISTEN
二、客戶端配置:
1. 在本機生產密碼文件 rsync服務器 root 帳號密碼(注:隻要密碼)
#echo XXX >> /etc/rsyncd.pwd #chmod 600 /etc/rsyncd.pwd
2. 測試備份命令
客戶端備份服務器上指定模塊中的數據 備份rsync服務器上postfix中模塊指定文件夾,並刪除本地服務器上沒有的內容
#rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.pwd root@192.168.100.2::mysqlbackup /data/mysql
# -v, -verbose 詳細模式輸出
# -z, -compress 對備份的文件在傳輸時進行壓縮處理
# -r, -recursive 對子目錄以遞歸模式處理
# -t, -times 保持文件時間信息
# -o, -owner 保持文件屬主信息
# -p, -perms 保持文件權限
# -g, -group 保持文件屬組信息
# --progress 顯示傳輸進度
# --delete 刪除本地備份目錄中服務器模塊指定目錄中沒有的文件
# --password-file 從指定文件中得到密碼
3. 製定計劃任務
#crontab -e 0 0 * * * rsync -vzrtopg --delete --password-file=/etc/rsyncd.pwd root@192.168.100.2::mysqlbackup /data/mysql > /dev/null 2>&1
本來是想給自己兩台服務器做個簡單的雙機數據庫自動備份,一台服務器在美國百兆共享,一台在國內5兆獨享,結果測試是沒問題成功了,但這個速度實在太讓人蛋疼了,才20KB。。
編輯的時候,請注意參數前麵的 短橫杠
最後更新:2017-04-03 12:54:57