网站搭建教学wordpress做ip统计
news/
2025/9/28 5:17:36/
文章来源:
网站搭建教学,wordpress做ip统计,肇庆广宁住房和城乡建设部网站,一起做网店类似网站一、MySQL的日常备份方案#xff1a;全备增量备份#xff1a;1、周日凌晨三点进行全备#xff1b;2、周一到周日增量备份。不是往常的周日全备份#xff0c;周一到周六增量备份#xff0c;这样如果周日数据库在完全备份前出问题#xff0c;恢复完成后#xff0c;会少周日…一、MySQL的日常备份方案全备增量备份1、周日凌晨三点进行全备2、周一到周日增量备份。不是往常的周日全备份周一到周六增量备份这样如果周日数据库在完全备份前出问题恢复完成后会少周日一天的数据量所以七天增量备份周日全备可以更好的保全数据。这是备份周期演示表Sun 3:00------Mon 3:00-----------------Tue 3:00----------Wed 3:00----------Thu 3:00----------Fri 3:00----------Sat 3:00----------Sun 3:00(flush)Sun full---(flush)Sun-Mon binlog---(flush)Mon-Tue---(flush)Tue-Wed---(flush)Wed-Thu---(flush)Thu-Fri---(flush)Fri-Sat---(flush)Sun full---(flush)Sun-Mon binlog---(flush)Mon-Tue---(flush)Tue-Wed---(flush)Wed-Thu---(flush)Thu-Fri---(flush)Fri-Sat---(flush)Sun full二、备份脚本模块化定制可以随意移动调节备份策略变量栏的帐号密码文件路径根据自己实际环境可以进行修改自由度比较高模块函数全变量适用度较高但是可能还有不完善的地方欢迎提出谢谢vim /root/mysql_bakup.sh#!/bin/bash#Date:2017/5/2#Author:wangpengtai#Blog:http://wangpengtai.blog.51cto.com#At Sunday, we will backup the completed databases and the incresed binary log during Saturday to Sunday.#In other weekdays, we only backup the increaing binary log at that day!#################################the globle variables for MySQL#################################DB_USERrootDB_PASSWORD123456DB_PORT3306BACKUPDIR/tmp/mysqlbakupBACKUPDIR_OLDER/tmp/mysqlbakup_olderDB_PID/data/mysql/log/mysqld.pidDB_SOCK/data/mysql/log/mysql.sockLOG_DIR/data/mysql/logBACKUP_LOG/tmp/mysqlbakup/backup.logDB_BIN/usr/local/mysql/bin#time variables for completed backupFULL_BAKDAYSundayTODAYdate %ADATEdate %Y%m%d############################time variables for binlog#############################liftcycle for saving binlogDELETE_OLDLOG_TIME$(date -d 14 day ago %Y%m%d%H%M%S)#The start time point to backup binlog, the usage of mysqlbinlog is --start-datetime, --stop-datetime, time format is %Y%m%d%H%M%S, eg:20170502171054, time zones is [start-datetime, stop-datetime)#The date to start backup binlog is yesterday at this very moment!START_BACKUPBINLOG_TIMEPOINT$(date -d 1 day ago %Y-%m-%d %H:%M:%S)#BINLOG_LISTcat /data/mysql/log/mysql-bin.index#注意在my.cnf中配置binlog文件位置时需要使用绝对路径一定想成好习惯不要给别人挖坑#####################举例#########################[mysqld]#log_bin /var/lib/mysql/mysql-bin#####################举例########################BINLOG_INDEX/data/mysql/log/mysql-bin.index###############################################Judge the mysql process is running or not. ##mysql stop return 1, mysql running return 0.###############################################function DB_RUN(){if test -a $DB_PID test -a $DB_SOCK;thenreturn 0elsereturn 1fi}####################################################################################################Judge the bacup directory is exsit not. ##If the mysqlbakup directory was exsited, there willed return 0. ## If there is no a mysqlbakup directory, the fuction will create the directory and return value 1.####################################################################################################function BACKDIR_EXSIT(){if test -d $BACKUPDIR;then# echo $BACKUPDIR was exist.return 0elseecho $BACKUPDIR is not exist, now create it.mkdir -pv $BACKUPDIRreturn 1fi}####################################################################################################Judge the binlog is configed or not. ##If the mysqlbakup directory was exsited, there willed return 0. ## If there is no a mysqlbakup directory, the fuction will create the directory and return value 1.####################################################################################################function BINLOG_EXSIT(){if test -f $BINLOG_INDEX;then# echo $BACKUPDIR was exist.return 0fi}####################################################The full backup for all Databases ##This function is use to backup the all databases.####################################################function FULL_BAKUP(){echo At date %D\ %T: Starting full backup the MySQL DB ... # rm -fr $BACKUPDIR/db_fullbak_$DATE.sql #for test !!$DB_BIN/mysqldump --lock-all-tables --flush-logs --master-data2 -u$DB_USER -p$DB_PASSWORD -P$DB_PORT -A |gzip $BACKUPDIR/db_fullbak_$DATE.sql.gzFULL_HEALTHecho $?if [[ $FULL_HEALTH 0 ]];thenecho At date %D\ %T: MySQL DB incresed backup successfullyelseecho MySQL DB full backup failed!fi}#python# with open(/data/mysql/log/mysql-bin.index,r) as obj:# ... for i in obj:# ... print os.path.basename(i)# ...# mysql-bin.000006# mysql-bin.000007# mysql-bin.000008# mysql-bin.000009function INCREASE_BAKUP(){echo At date %D\ %T: Starting increased backup the MySQL DB ... $DB_BIN/mysqladmin -u$DB_USER -p$DB_PASSWORD -P$DB_PORT flush-logs$DB_BIN/mysql -u$DB_USER -p$DB_PASSWORD -P$DB_PORT -e purge master logs before ${DELETE_OLDLOG_TIME}for i in cat $BINLOG_INDEX | awk -F/ {print $NF}do$DB_BIN/mysqlbinlog -u$DB_USER -p$DB_PASSWORD -P$DB_PORT --start-datetime$START_BACKUPBINLOG_TIMEPOINT $LOG_DIR/$i |gzip $BACKUPDIR/db_daily_$DATE.sql.gzdone# $DB_BIN/mysqlbinlog -u$DB_USER -p$DB_PASSWORD -P$DB_PORT --start-datetime$START_BACKUPBINLOG_TIME $LOG_DIR/mysql-bin.[0-9]* |gzip $BACKUPDIR/db_daily_$DATE.sql.gzINCREASE_HEALTHecho $?if [[ $INCREASE_HEALTH 0 ]];thenecho At date %D\ %T: MySQL DB incresed backup successfullyelseecho MySQL DB incresed backup failed!fi}function OLDER_BACKDIR_EXSIT(){if test -d $BACKUPDIR_OLDER;then# echo $BACKUPDIR_OLDER was exist.return 0elseecho $BACKUPDIR_OLDER is not exist, now create it.mkdir -pv $BACKUPDIR_OLDER# return 1fi}function BAKUP_CLEANER(){#move the backuped file that created time out of 7 days to the BACKUPDIR_OLDER directoryreturnkeyfind $BACKUPDIR -name *.sql.gz -mtime 7 -exec ls -lh {} \;returnkey_oldfind $BACKUPDIR_OLDER -name *.sql.gz -mtime 14 -exec ls -lh {} \;if [[ $returnkey ! ]];thenecho ----------------------echo Moving the older backuped file out of 7 days to $BACKUPDIR_OLDER.echo The moved file list is:find $BACKUPDIR -name *.sql.gz -mtime 7 -exec mv {} $BACKUPDIR_OLDER \;echo -----------------------elif [[ $returnkey_old ! ]];then#delete the backuped file that created time out of 14 days from BACKUPDIR_OLDER directory.echo Delete the older backuped file out of 14 days from $BACKUPDIR_OLDER.echo The deleted files list is:find $BACKUPDIR_OLDER -name *.sql.gz -mtime 14 -exec rm -fr {} \;fi}#####################################--------------main----------------#####################################function MAIN(){DB_RUN #Judge the process is run or not, if not run, the script will not bakup dbRun_processecho $?echo $?if [[ $Run_process 0 ]];thenBINLOG_EXSITbinlog_indexecho $?if [[ $binlog_index 0 ]];thenecho **********START**********echo $(date %y-%m-%d %H:%M:%S %A)echo ~~~~~~~~~~~~~~~~~~~~~~~if [[ $TODAY $FULL_BAKDAY ]];thenecho Start completed bakup ...INCREASE_BAKUPFULL_BAKUP #full backup to all DBBAKUP_CLEANERelseecho Start increaing bakup ...INCREASE_BAKUPfiecho ~~~~~~~~~~~~~~~~~~~~~~~echo $(date %y-%m-%d %H:%M:%S %A)echo **********END**********elseecho **********START**********echo $(date %y-%m-%d %H:%M:%S %A)echo ~~~~~~~~~~~~~~~~~~~~~~~echo Sorry, MySQL binlog was not configed, please config the my.cnf firstly!echo ~~~~~~~~~~~~~~~~~~~~~~~echo $(date %y-%m-%d %H:%M:%S %A)echo **********END**********fielseecho **********START**********echo $(date %y-%m-%d %H:%M:%S %A)echo ~~~~~~~~~~~~~~~~~~~~~~~echo Sorry, MySQL was not running, the db could not be backuped!echo ~~~~~~~~~~~~~~~~~~~~~~~echo $(date %y-%m-%d %H:%M:%S %A)echo **********END**********fi}#starting runingBACKDIR_EXSIT $BACKUP_LOGOLDER_BACKDIR_EXSIT $BACKUP_LOGMAIN $BACKUP_LOG三、测试方法使用了一个测试脚本修改日期达到一个月的演示效果。#!/bin/bashfor day in {1..30}dodate -s 2017-06-$day 12:00:00/bin/bash /root/bakup/mysql_backup.shdone四、脚本使用方法crontab -e0 3 * * * /bin/bash /root/bakup/mysql_bakup.sh /dev/null 21 空格#加个空格不然有些机器不能执行脚本
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920267.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!