1. 程式人生 > >Linux - rsync (李作強)

Linux - rsync (李作強)

rsync是lunix系統下的資料映象備份工具。使用快速增量備份工具Remote Sync可以遠端同步,支援本地複製,或者與其他SSH、rsync主機同步。
預設的埠:873

服務端
安裝yum源
yum -y install xinet* rsync*
建立配置檔案:
vim /etc/rsyncd.conf (自建立)

uid = root //執行RSYNC守護程序的使用者
gid = root //執行RSYNC守護程序的組
port = 873 // 預設的埠
hosts allow = 172.16.0.132, …….. //新增允許訪問的IP,客戶端。
hosts deny = 0.0.0.0/32 //禁止所有的IP訪問。
use chroot = no //不使用chroot,改變根目錄
max connections = //最大的連結數
timeout= //超時時間
pid file = /var/run/rsyncd.pid //pid檔案存放的位置
lock file = /var/run/rsync.lock //鎖檔案的存放位置
log file = /var/log/rsyncd.log //日誌記錄檔案的存放位置

motd file = /etc/rsyncd.motd
【模組引數】
[mysql132] //這裡是認證的模組名,在服務端需要指定
path = /backup/mysql/mysql_132 //這裡是認證的模組名,在服務端需要指定
comment = rsync file //這個模組的註釋資訊
ignore errors //忽略錯誤資訊
read only = no // 只讀
list = no //不允許列檔案
auth users = backup //認證的使用者名稱,如果沒有這行則表明是匿名,此使用者與系統無關
secrets file=/etc/rsync.passwd //密碼和使用者名稱對比表,密碼檔案自己生成

建立存放密碼的配置檔案
vim /etc/rsync.passwd

backup:1q2w3e4r

給密碼檔案許可權,只能是600。
chmod 600 /etc/rsync.passwd
chown root.root /etc/rsync.passwd
建立一個存放備份檔案的路徑
mkdir -p /backup/mysql/mysql_132
修改配置檔案,在7的虛擬機器沒有這一部:
vim /etc/xinetd.d/rsync
service rsync
{
disable = no #把yes改成no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
開機自啟:
/usr/bin/rsync –daemon –config=/etc/rsyncd.conf
開機自啟的配置的配置檔案。
vim /etc/rc.local

/usr/bin/rsync –daemon –config=/etc/rsyncd.conf

客戶端
yum -y install rsync
mkdir /backup
touch /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
echo “1q2w3e4r” > /etc/rsync.passwd
mkdir /usr/sbin/shell
touch /usr/sbin/shell/backup.sh
chmod +x /usr/sbin/shell/ -R

手動測試
rsync -avzuP –password-file=/etc/rsync.passwd –delete /backup/ [email protected]::mysql132

C7的測試方法
rsync -avzuP –password-file=/etc/rsync.passwd –delete /backup/[email protected]::mysql132 //上傳
rsync -avzuP –password-file=/etc/rsync.passwd [email protected]::http133 /tmp //下載

添寫備份指令碼
vim /usr/sbin/shell/backup.sh

/bin/bash
time=/bin/date +%Y%m%d
/opt/zbox/run/mysql/mysqldump –single-transaction zentao | /bin/gzip > /backup/zentao_ {time}.sql.gz  /opt/zbox/run/mysql/mysqldump –single-transaction zentaopro | /bin/gzip > /backup/zentaopro_ {time}.sql.gz
/bin/tar -zcvf /backup/svn_${time}.tar.gz /opt/svn/ >/dev/null 2>&1 //錯誤的資訊不輸出到螢幕。

/bin/find /backup/ -mtime +2 -exec /bin/rm -f {} \; //保留兩天的資料。

/usr/bin/rsync -avzuP –password-file=/etc/rsync.passwd –delete /backup/*.sql.gz [email protected]::mysql132 >/dev/null 2>&1
/usr/bin/rsync -avzuP –password-file=/etc/rsync.passwd –delete /backup/*.tar.gz [email protected]::svn132 >/dev/null 2>&1

if [[ ? == 0 ] ] t h e n / b i n / e c h o {DATE}:backup complete”>>backup.log
else
/bin/echo “${DATE}:backup failed”>>backup.log
fi

crontab -e

10 1 * * * /usr/sbin/shell/backup.sh

find -mtime引數解析
http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html