用rsync进行两机备份的shell脚本(更新)
2012-03-29 14:28
549 查看
转自:http://sillydong.com/myserver/new-shell-for-rsync.html
上回贴出了用rsync进行两机备份的shell脚本一文,那个脚本当中有BUG,现在做一个更新,测试完全可用,贴出来,看了旧版脚本的朋友别忘了更新一下,脚本如下:
?
上回贴出了用rsync进行两机备份的shell脚本一文,那个脚本当中有BUG,现在做一个更新,测试完全可用,贴出来,看了旧版脚本的朋友别忘了更新一下,脚本如下:
#!/bin/bash # This script is used to do backup and rsync works for servers. Please finish the config part first before use it. # ./backup.sh (db_rsync|www_rsync) # By Chen Zhidong # http://sillydong.com #########config begin#################### BINPATH="/usr/bin" LOGPATH="/home/backlogs" DB_DUMP="/home/database/" LOCAL_WWW="/home/www/" DB_USER="xxx" DB_PASS="xxxx" DB_HOST="127.0.0.1" PASSFILE="/xxx/xxxxx" RSYNC_NAME="xxxxxx" RSYNC_IP="xxx.xxx.xxx.xxx" #pay attention to the sed part of this sentence, check it before using! IP=`ifconfig | grep "venet0:0" --after-context=1 | sed -n 's/..*addr:\(..*\) P-t-P..*/\1/p' | sed '/127.0.0.1/d'` #########config end###################### db_dump(){ DBS=`$BINPATH/mysql --user=$DB_USER --host=$DB_HOST --password=$DB_PASS -Bse 'show databases'` for db in $DBS do case $db in "information_schema") ;; "mysql") ;; "test") ;; *) echo "Dump $db begin at $(date)" >> $LOGPATH/db_dump.log $BINPATH/mysqldump --opt $db --user=$DB_USER --host=$DB_HOST --password=$DB_PASS > $DB_DUMP/$db-$(date +%F).sql echo "Dump $db done at $(date)" >> $LOGPATH/db_dump.log ;; esac done } db_rsync(){ echo "Doing db_rsync..." echo "db_rsync begin at $(date)!" >> $LOGPATH/db_rsync.log rsync -rvlHpogDtS --delete --password-file=$PASSFILE $DB_DUMP --exclude *\log\* --exclude *\backup\* --exclude *.rar --exclude *.zip --exclude *mysql* --exclude *.err* --exclude *.pid* --exclude *\test\* rsync://$RSYNC_NAME@$RSYNC_IP/${IP}_db_lio >> $LOGPATH/db_rsync.log echo "db_rsync done at $(date)!" >> $LOGPATH/db_rsync.log } www_rsync(){ echo "Doing www_rsync..." echo "www_rsync begin at $(date)!" >> $LOGPATH/www_rsync.log rsync -rvlHpogDtS --delete --password-file=$PASSFILE $LOCAL_WWW --exclude *\log\* --exclude *\backup\* --exclude *.rar --exclude *.zip rsync://$RSYNC_NAME@$RSYNC_IP/${IP}_www_lio >> $LOGPATH/www_rsync.log echo "www_rsync done at $(date)!" >> $LOGPATH/www_rsync.log } #Script begin here if [ ! -d $LOGPATH ];then mkdir $LOGPATH fi case $1 in db_rsync) db_dump 2>> $LOGPATH/rsync_error.log db_rsync 2>> $LOGPATH/rsync_error.log ;; www_rsync) www_rsync 2>> $LOGPATH/rsync_error.log ;; *) echo "$(date) You didn't add parameter in your crontab." >> $LOGPATH/crontab.log echo "Syntax: backup.sh (db_rsync|www_rsync)" >> $LOGPATH/crontab.log ;; esac exit 0
?
相关文章推荐
- rsync+shell脚本完成自动化备份
- 新手学习Linux——rsync+shell脚本完成自动化备份
- shell使用sql脚本进行sqlite3数据库更新
- Shell脚本:使用rsync备份文件/目录
- Shell脚本:使用rsync备份文件/目录
- jenkins远程部署使用shell脚本进行备份与find和grep匹配的区别
- Shell脚本:使用rsync备份文件/目录
- Shell脚本:使用rsync备份文件/目录
- shell自动连接mysql后进行查询和自动备份脚本
- ubuntu下使用Shell脚本和Scrapy进行hosts自动更新
- 使用shell进行网络设备的批量备份、配置更新
- Rsync+shell脚本完成自动化备份
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- 一个rsync自动备份并发信通知的shell脚本
- Shell脚本:使用rsync备份文件/目录
- 作业:Rsync+shell脚本完成自动化备份
- 对rsync进行封装的shell脚本
- Linux 下用shell脚本对SVN 修改的文件进行备份
- Shell进行MySQL表跨服务器增量更新同步小脚本
- 使用shell脚本进行系统备份