时间: 2021-08-13 作者:daque
不妨将这个剧本放进crontab,每天零辰实行一次,机动备份这个剧本每天最多只实行一次,并且只保持迩来五天的备份在效劳器上。 代码: #!/bin/bash #this is a shellscript for auto db backup #powered by aspbiz #2004-09 #setting #树立数据库名,数据库登录名,暗号,备份路途,日记路途,数据文献场所,以及备份办法 #默许情景下备份办法是tar,还不妨是mysqldump,mysqldotcopy #默许情景下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz dbname=mysql dbuser=root dbpasswd= backuppath=/root/ logfile=/root/db.log dbpath=/var/lib/mysql/ #backupmethod=mysqldump #backupmethod=mysqlhotcopy #backupmethod=tar #setting end newfile="$backuppath"db$(date +%y%m%d).tgz dumpfile="$backuppath"db$(date +%y%m%d) oldfile="$backuppath"db$(date +%y%m%d --date=’5 days ago’).tgz echo "-------------------------------------------" >> $logfile echo $(date +"%y-%m-%d %h:%m:%s") >> $logfile echo "--------------------------" >> $logfile #delete old file if [ -f $oldfile ] then rm -f $oldfile >> $logfile 2>&1 echo "[$oldfile]delete old file success!" >> $logfile else echo "[$oldfile]no old backup file!" >> $logfile fi if [ -f $newfile ] then echo "[$newfile]the backup file is exists,can’t backup!" >> $logfile else case $backupmethod in mysqldump) if [ -z $dbpasswd ] then mysqldump -u $dbuser --opt $dbname > $dumpfile else mysqldump -u $dbuser -p$dbpasswd --opt $dbname > $dumpfile fi tar czvf $newfile $dumpfile >> $logfile 2>&1 echo "[$newfile]backup success!" >> $logfile rm -rf $dumpfile ;; mysqlhotcopy) rm -rf $dumpfile mkdir $dumpfile if [ -z $dbpasswd ] then mysqlhotcopy -u $dbuser $dbname $dumpfile >> $logfile 2>&1 else mysqlhotcopy -u $dbuser -p $dbpasswd $dbname $dumpfile >>$logfile 2>&1 fi tar czvf $newfile $dumpfile >> $logfile 2>&1 echo "[$newfile]backup success!" >> $logfile rm -rf $dumpfile ;; *) /etc/init.d/mysqld stop >/dev/null 2>&1 tar czvf $newfile $dbpath$dbname >> $logfile 2>&1 /etc/init.d/mysqld start >/dev/null 2>&1 echo "[$newfile]backup success!" >> $logfile ;; esac fi echo "-------------------------------------------" >> $logfile