使用rsync+crontab每天定時備份數據庫文件。

rsync
-a:歸檔 等於參數:rtopgDl;
-r:對子目錄進行遞歸
-t:保持文件時間信息
-o:保持文件屬主信息
-p:保持文件權限信息
-g:保持文件屬組信息
-P:顯示同步的過程及傳輸時的進度等信息
-D:保持設備文件的信息
-l:保留軟鏈接信息
-v:顯示過程
-z:傳輸時進行壓縮,提高傳輸效率
–delete:

    rsync -r --delete  /tmp/  /data/:刪除data目錄內有,/tmp內無的文件或目錄,將/tmp內有的文件或目錄複製到/data內(data目錄內沒有)。
--exclude:排除    
   客戶端使用方法:
   --exclude FILE:傳輸時排除拉取或推送的文件,多個文件時使用{a,b}的格式,連續的文件時還可以使用{a-g}。
   --exclude-from=FILE:多個文件名可以寫到FILE文件內,排除文件內命名的文件。

   -e:藉助其他通道:
   rsync  /etc/inittab -e 'ssh -p 123456 ' 192.168.1.1:/root

rsync服務器端配置:
vim /etc/rsyncd.conf(rsync無此配置文件,需要手動創建)

uid = rsync  //該選項指定當該模塊傳輸文件時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎麼樣的文件權限,默認值是"nobody"。
gid = rsync  //該選項指定當該模塊傳輸文件時守護進程應該具有的gid。默認值爲"nobody"。
use chroot = no //如果"use chroot"指定爲true,那麼rsync在傳輸文件以前首先chroot到path參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要以roots權限,並且不能備份指向外部的符號連接所指向的目錄文件。默認情況下chroot值爲true。
max connections = 200  //最大客戶端併發連接數
timeout = 300  //超時時間
pid file = /var/run/rsyncd.pid  //pid文件位置
lock file = /var/run/rsyncd.lock //鎖文件位置
log file = /var/log/rsyncd.log  //日誌文件存放位置
ignore errors  //指定rsyncd在判斷是否運行傳輸時的刪除操作時忽略server上的IO錯誤,一般來說rsync在出現IO錯誤時將將跳過--delete操作,以防止因爲暫時的資源不足或其它IO錯誤導致的嚴重問題。
read only = false //是否只讀
list = false  //該選項設定當客戶請求可以使用的模塊列表時,該模塊是否應該被列出。如果設置該選項爲false,可以創建隱藏的模塊。默認值是true。
secrets file = /etc/rsync.passwd //密碼文件位置
# exclude = a b //用來指定多個由空格隔開的多個文件或目錄(相對路徑),並將其添加到exclude列表中。這等同於在客戶端命令中使用--exclude來指定模式,一個模塊只能指定一個exclude選項。但是需要注意的一點是該選項有一定的安全性問題,客戶很有可能繞過exclude列表,如果希望確保特定的文件不能被訪問,那就最好結合uid/gid選項一起使用。
# exclude from = /etc/test //指定一個包含exclude模式的定義的文件名,服務器從該文件中讀取exclude列表定義。
auth users=rsync  //進行rsync傳輸的用戶
[mariadb1]//模塊定義
path = /home/nfs/rsync/mariadb-160/  //指定推送的文件目錄
hosts allow = 10.33.133.160/24   //允許的列表

完成參數配置後,確認本地是否有rsync的用戶和組。無此用戶的話需要添加此用戶。

#groupadd rsync
#useradd -g rsync -s /sbin/nologin -M rsync

創建完成目錄後,生成密碼文件(secrets file指定的文件),並將此文件權限修改爲只有屬主有讀寫權限,其他無任何權限。

echo "rsync:123456" >> /etc/rsync.passwd
chmod 600 /etc/rsync.passwd

密碼文件創建成功後,檢查path參數指定的路徑的屬主和屬組是否是uid和gid指定的屬主和屬組,若不是需要更改。

#chown -R rsync.rsync /home/nfs/rsync/mariadb-160/

配置完成後就可以推送或者拉取了。

# rsync -avz /mysql/data/ [email protected]::mariadb1  

輸入密碼就可以正常傳輸數據了。
使用–password-file 可以從配置文件讀取密碼,而不需要每次同步都輸入密碼。
使用–password-file參數需要在客戶端生成配置文件:

#echo "123456" > /etc/rsync.passwd
此文件爲密碼文件,也需要更改文件的權限
#chmod 600 /etc/rsync.passwd
再執行同步命令,就不需要輸入密碼了。
# rsync -avz /mysql/data/ [email protected]::mariadb1 --password-file=/etc/rsync.passwd

以上配置rsync完成。
rsync服務不會開機啓動,如果需要開機啓動服務,可以在rc.local配置文件內定義。

#echo "/usr/bin/rsync --daemon" >> /etc/rc.local

使用crontab命令制定每日計劃任務。

#crontab -e 
0 0 * * * /usr/bin/rsync -avz /mysql/data/ rsync@10.33.133.244::mariadb1 --password-file=/etc/rsync.passwd//定義每天的0點推送本地/mysql/data/下的所有數據到10.33.133.244 mariadb1模塊定義的path路徑/home/nfs/rsync/mariadb-160/內。

以上就是配置的完整過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章