亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

linux下mysql如何自動備份shell腳本

2020-07-27 19:05:03
字體:
來源:轉載
供稿:網友

Linux 服務器上的程序每天都在更新 MySQL 數據庫,于是就想起寫一個 shell 腳本,結合 crontab,定時備份數據庫。其實非常簡單,主要就是使用 MySQL 自帶的 mysqldump 命令。

 #!/bin/bash # Shell script to backup MySql database  # To backup Nysql databases file to /backup dir and later pick up by your  # script. You can skip few databases from backup too. # For more info please see (Installation info): # http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html  # Last updated: Aug - 2005 # -------------------------------------------------------------------- # This is a free shell script under GNU GPL version 2.0 or above # Copyright (C) 2004, 2005 nixCraft project # Feedback/comment/suggestions : http://cyberciti.biz/fb/ # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------------- MyUSER="SET-MYSQL-USER-NAME"   # USERNAME MyPASS="SET-PASSWORD"    # PASSWORD  MyHOST="localhost"     # Hostname # Linux bin paths, change this if it can not be autodetected via which command MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" CHOWN="$(which chown)" CHMOD="$(which chmod)" GZIP="$(which gzip)" # Backup Dest directory, change this if you have someother location DEST="/backup" # Main directory where backup will be stored MBD="$DEST/mysql" # Get hostname HOST="$(hostname)" # Get data in dd-mm-yyyy format NOW="$(date +"%d-%m-%Y")" # File to store current backup file FILE="" # Store list of databases  DBS="" # DO NOT BACKUP these databases IGGY="test" [ ! -d $MBD ] && mkdir -p $MBD || : # Only root can access it! $CHOWN 0.0 -R $DEST $CHMOD 0600 $DEST # Get all database list first DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')" for db in $DBS do   skipdb=-1   if [ "$IGGY" != "" ];   then   for i in $IGGY   do     [ "$db" == "$i" ] && skipdb=1 || :   done   fi   if [ "$skipdb" == "-1" ] ; then   FILE="$MBD/$db.$HOST.$NOW.gz"   # do all inone job in pipe,   # connect to mysql using mysqldump for select mysql database   # and pipe it out to gz file in backup dir :)     $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE   fi done

保存后將以上腳本加入crontab調度。如:每天早上四點半備份:30 4 * * * /data/backup-db.sh

如果你使用mysql5.1,可能會提示mysqldump 錯誤:

mysqldump: Couldn't execute 'show create table `general_log`': Table 'mysql.general_log' doesn't existmysqldump: Couldn't execute 'show create table `slow_log`': Table 'mysql.slow_log' doesn't exist

原因是mysql庫中沒有show_log表和general_log表,需要手動創建:

CREATE TABLE IF NOT EXISTS general_log (  event_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  user_host mediumtext NOT NULL,  thread_id int(11) NOT NULL,  server_id int(10) unsigned NOT NULL,  command_type varchar(64) NOT NULL,  argument mediumtext NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'; CREATE TABLE IF NOT EXISTS slow_log (  start_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  user_host mediumtext NOT NULL,  query_time time NOT NULL,  lock_time time NOT NULL,  rows_sent int(11) NOT NULL,  rows_examined int(11) NOT NULL,  db varchar(512) NOT NULL,  last_insert_id int(11) NOT NULL,  insert_id int(11) NOT NULL,  server_id int(10) unsigned NOT NULL,  sql_text mediumtext NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';

方法二:

注意:

DumpFile=db$(date +%y%m%d)如果設置為這樣一定要將此腳本放備份目錄下才行。DumpFile="$BackupPath"db$(date +%y%m%d) 如果設置為這樣,日志中會有這樣的提示tar: Removing leading `/' from member names 是因為備份的目錄使用的是絕對路徑,不過這樣不影響數據,可以根據自己習慣而定。-------------------------------------------------------------------start#!/bin/bash#This is a ShellScript For Auto DB Backup#Powered by aspbiz#2004-09#Setting#設置數據庫名,數據庫登錄名,密碼,備份路徑,日志路徑,數據文件位置,以及備份方式#默認情況下備份方式是tar,還可以是mysqldump,mysqldotcopy#默認情況下,用root(空)登錄mysql數據庫,備份至/root/dbxxxxx.tgzDBName=mysqlDBUser=rootDBPasswd=BackupPath=/root/LogFile=/root/db.logDBPath=/var/lib/mysql/#BackupMethod=mysqldump#BackupMethod=mysqlhotcopy#BackupMethod=tar#Setting EndNewFile="$BackupPath"db$(date +%y%m%d).tgzDumpFile="$BackupPath"db$(date +%y%m%d)OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgzecho "-------------------------------------------" >> $LogFileecho $(date +"%y-%m-%d %H:%M:%S") >> $LogFileecho "--------------------------" >> $LogFile#Delete Old Fileif [ -f $OldFile ]thenrm -f $OldFile >> $LogFile 2>&1echo "[$OldFile]Delete Old File Success!" >> $LogFileelseecho "[$OldFile]No Old Backup File!" >> $LogFilefiif [ -f $NewFile ]thenecho "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFileelsecase $BackupMethod inmysqldump)if [ -z $DBPasswd ]thenmysqldump -u $DBUser --opt $DBName > $DumpFileelsemysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFilefitar czvf $NewFile $DumpFile >> $LogFile 2>&1echo "[$NewFile]Backup Success!" >> $LogFilerm -rf $DumpFile;;mysqlhotcopy)rm -rf $DumpFilemkdir $DumpFileif [ -z $DBPasswd ]thenmysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1elsemysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1fitar czvf $NewFile $DumpFile >> $LogFile 2>&1echo "[$NewFile]Backup Success!" >> $LogFilerm -rf $DumpFile;;*)/etc/init.d/mysqld stop >/dev/null 2>&1tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1/etc/init.d/mysqld start >/dev/null 2>&1echo "[$NewFile]Backup Success!" >> $LogFile;;esacfiecho "-------------------------------------------" >> $LogFile---------------------------------------------------------------------------------------------end

以上內容就是本文給大家介紹的linux下mysql如何自動備份shell腳本,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线一区二区三区四| 97高清免费视频| 国产精品一区电影| 欧美性视频在线| 日本在线观看天堂男亚洲| 91国偷自产一区二区三区的观看方式| 国产精品久久久久久久久久久久久| 久久精品精品电影网| 国内精品久久影院| 亚洲精品大尺度| 欧美日韩国产中文字幕| 尤物yw午夜国产精品视频明星| 成人免费网站在线看| 中文字幕v亚洲ⅴv天堂| 国内伊人久久久久久网站视频| 日韩精品极品视频免费观看| 亚洲全黄一级网站| 国产色婷婷国产综合在线理论片a| 国产在线98福利播放视频| 97在线免费观看视频| 欧美高清视频一区二区| 国产亚洲视频中文字幕视频| 国产香蕉97碰碰久久人人| 亚洲国产另类 国产精品国产免费| 亚洲欧美激情视频| 国产精品网址在线| 国产99视频在线观看| 久久成人国产精品| 久久人人爽亚洲精品天堂| 久久免费视频观看| 成人做爽爽免费视频| 久久99久国产精品黄毛片入口| 亚洲福利在线视频| 久久久国产精彩视频美女艺术照福利| 日韩av在线影院| 色小说视频一区| 亚洲第一网中文字幕| 欧美日韩一二三四五区| 日韩在线视频网| 97久久精品国产| 亚洲偷欧美偷国内偷| 精品中文字幕乱| 国产精品免费视频久久久| 欧美高清电影在线看| 伊人久久精品视频| 欧美久久精品一级黑人c片| 午夜精品久久久久久99热| 亚洲精品美女久久久久| 欧美精品一区三区| 欧美一级电影在线| 日韩www在线| 久久精品视频免费播放| 国产成人精品在线| 国产成人精品一区二区在线| 欧美性xxxx极品hd满灌| 91av在线免费观看视频| 国产91精品久久久久| 亚洲精品美女久久久久| 欧美在线视频导航| 在线视频亚洲欧美| 欧美午夜女人视频在线| 成人黄色免费看| 色先锋资源久久综合5566| 欧美日韩精品在线| 欧美性少妇18aaaa视频| 日本一区二区三区在线播放| 97视频色精品| 国产91色在线播放| 亚洲男人第一av网站| 超碰日本道色综合久久综合| 久久久久久亚洲精品中文字幕| 国产欧美日韩精品丝袜高跟鞋| 狠狠久久五月精品中文字幕| 国产精品女人网站| 久久久久久国产精品三级玉女聊斋| 亚洲天堂av在线播放| 美女视频黄免费的亚洲男人天堂| 一个人看的www欧美| 亚洲精品日韩在线| 日韩中文字幕视频| 亚洲精品欧美日韩| 亚洲www永久成人夜色| 亚洲欧美在线一区二区| 国产成人精品在线| 91精品国产综合久久香蕉| 欧美日韩国产91| 国产日韩精品综合网站| 欧美中文字幕视频在线观看| 亚洲一区二区久久久| 一区二区三区视频免费在线观看| 2019最新中文字幕| 日本亚洲欧洲色| 国产成人综合一区二区三区| 成人黄色免费在线观看| 国产精品女主播视频| 亚洲毛片在线观看.| 亚洲一区二区三区777| 亚洲天堂一区二区三区| 国产精品av电影| 丁香五六月婷婷久久激情| 日本aⅴ大伊香蕉精品视频| 亚洲影院色在线观看免费| 亚洲乱码av中文一区二区| 亚洲欧美综合区自拍另类| 国内精品久久久久伊人av| 欧美大胆在线视频| 日韩大片免费观看视频播放| 综合国产在线视频| 九九热99久久久国产盗摄| 亚洲在线免费视频| 亚洲女成人图区| 欧美日韩免费在线观看| 亚洲一级片在线看| 日韩欧美中文字幕在线观看| 国产精品成人观看视频国产奇米| 欧美综合激情网| 国产一区香蕉久久| 日韩在线视频一区| 欧美激情第三页| 欧美xxxx综合视频| 久久中文字幕一区| 国产综合香蕉五月婷在线| 欧美性色xo影院| 日韩成人av在线| 国产91精品黑色丝袜高跟鞋| 欧美一级片在线播放| 国产在线拍揄自揄视频不卡99| 中文一区二区视频| 另类图片亚洲另类| 精品久久久久久久中文字幕| 色综合伊人色综合网| 亚洲视频综合网| 久久中文字幕视频| 国产91精品黑色丝袜高跟鞋| 日韩最新av在线| 欧美日韩在线免费| 国产999视频| www欧美xxxx| 中文字幕国内精品| 欧美激情欧美激情在线五月| 91干在线观看| 97不卡在线视频| 亚洲人成在线免费观看| 久久伊人精品一区二区三区| 久久99热这里只有精品国产| 国产91在线播放九色快色| 欧美日韩国产在线播放| 亚洲一区二区三区在线视频| 91九色国产社区在线观看| 亚洲另类xxxx| 成人有码视频在线播放| 欧美大片在线看| 亚洲一区二区三区视频| 成人av在线亚洲| 日韩在线视频线视频免费网站| 亚洲18私人小影院| 97色在线观看免费视频| 深夜福利一区二区| 日韩69视频在线观看| 日韩高清人体午夜| 久久成人精品电影| 国内精品久久久久久久| 亚洲黄色免费三级| 91av视频导航|