同步二邊檔案(Client 與 Server 同步) # /usr/bin/rsync -rvlHpogDtS --progress --delete --password-file=/root/rsyncd.secrets /usr/src/redhat/RPMS/* m2k@192.168.1.39::m2k
# /usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets /usr/src/redhat/RPMS/* --exclude noarch m2k@192.168.1.39::m2k # /usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets /usr/src/redhat/RPMS/* m2k@192.168.1.39::m2k
# iptables -A INPUT -p tcp -s ! 192.168.1.19 --dport 873 -j DROP
# vim /etc/rsyncd.secrets 123456
# chown root:root /etc/rsyncd.secrets # chmod 600 rsyncd.secrets
#yum -y nmap xinetd
# nmap localhost 或 # netstat -ntl tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 如果沒有啟動 # vim /etc/xinetd.d/rsync service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } 重新啟動 xinetd # service xinetd restart 或是 # kill -1 `cat /var/run/xinetd.pid`
# chown root:root /etc/rsyncd.secrets # chmod 600 rsyncd.secrets
# vim /etc/rsyncd.secrets m2k:123456
mkdir /home/backup
# vim /etc/rsyncd.conf [m2k] path = /home/RPM auth users = m2k uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no
# vim /usr/local/bin/backupwwwmysql.sh #! /bin/bash # 先把資料庫的服務停止 service mysqld stop # 檔名及路徑可以自行指定 tar cvjf /home/backup/mysql.`date +%F_%T`.tar.bz2 /var/lib/mysql # 停止網頁伺服器的服務 service httpd stop # 檔名及路徑可以自行指定 tar cvjf /home/backup/www.`date +%F_%T`.tar.bz2 /var/www/html # 重新啟動 網頁及資料庫伺服器 service mysqld start service httpd start
#chmod +x /usr/local/bin/backupwwwmysql.sh
#mkdir /home/backup
保留一個星期內的備份 # rm -rf `find /home/backup/www -atime +7`
加到工作排程 # crontab -e 15 4 * * * /usr/local/bin/backupwwwmysql.sh;rm -rf `find /home/backup/www -atime +7`
建置sh. # vim /usr/local/bin/autoupbak #!/usr/bin/expect # 設定等待期盼訊息時的逾期時間, 單位為秒。此處筆者設定為 "10", # 表示 10 秒內若無法得到期盼的訊息, 便自動放棄等待 set timeout "10" # 切換至 /backup 目錄 cd /home/backup # 使用 spawn 函式執行 〈ftp 192.168.0.132〉 指令 spawn ftp 140.111.69.88 # 此為期盼訊息與回應步驟的語法 expect { timeout { puts stderr "等不到下列期盼訊息: Name"; exit 1 } "Name" {send "stu\n"} } expect { timeout { puts stderr "等不到下列期盼訊息: Password"; exit 1 } "Password" {send "stu123\n"} } expect { timeout { puts stderr "等不到下列期盼訊息: Login successful"; exit 1 } "Login successful" {send "bin\n"} } expect { timeout { puts stderr "等不到下列期盼訊息: 200 Switching to Binary"; exit 1 } -re "200.*Binary" {send "put *.tar.bz2\n"} } expect { 15/22 timeout { puts stderr "等不到下列期盼訊息: File receive OK"; exit 1 } "File receive OK" {send "bye\n"} } expect { timeout { puts stderr "等不到下列期盼訊息: 221 Goodbye"; exit 1 } "221 Goodbye" {exit 0} } # 將備份好的檔案搬至其他的目錄 mv /home/backup/*.tar.bz2 /home/backup/ok. 建立目錄. #mkdir -p /home/backup/ok. 工作排程. # crontab -e 15 4 * * * /usr/local/bin/backupwwwmysql.sh;/usr/local/bin/autoupbak;rm -rf `find /home/backup/ok -atime +7` 備份主機的工作排程 # crontab -e 0 5 * * * rm -rf `find /home/test123 -atime +7`. 安裝套件. #yum -y spawn.