linuxmysql定時備份
⑴ 如何在linux伺服器中備份
linux系統下使用腳本定時備份資料庫,代碼如下:
#!/bin/bash
#Setting
#設置資料庫名,資料庫登錄名,密碼,備份路徑,日誌路徑,數據文件位置,以及備份方式
#默認情況下備份方式是mysqlmp,還可以是mysqlmp,mysqldot,如果注釋掉第
#18行,則默認以tag的方式備份
#默認情況下,用root(空)登錄mysql資料庫,備份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#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
mysqlmp*)
if [ -z $DBPasswd ]
then
mysqlmp -u $DBUser --opt $DBName > $DumpFile
else
mysqlmp -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhot*)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhot -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhot -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 >> $LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
;;
esac
fi
echo "-------------------------------------------"
echo
#lftp -f lftp.sh 如果有FTP可同時上傳ftp中。
再利用crontab命令生成/var/spool/cron/root 文件:
#crontab –e
//打開一個編輯窗口,第一行會有內容格式的提示,在此輸入命令
//m h dom mon dow command
//具體意義表示:分鍾 小時 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期幾(dow)的幾點(h,24小時制)幾分(m)執行某個命令(command)
//如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二點十分執行備份腳本)
⑵ linux下定時備份Mysql
你的root沒有密碼嗎?
建議使用crontab+shell腳本來備份
#!/bin/bash
#
#Date:2014-9-25
USER=
PASSWORD=
DATABASE=
DIR=
DATE=`date'+%Y\%m\%d-%H:%M'`
DATE1=`date-dlast-month'+%Y\%m\%d-%H:%M'`
HOST=
LOG=/root/mysqlbk.log
COM=mysqlmp
DEL=$DATE1.sql
OPT="-h$HOST-u$USER-p$PASSWORD$DATABASE"
$COM$OPT>$DIR/$DATE.sql
if[$?-eq0]
then
SIZE=`-h$DIR/$DATE.sql|awk'{print$1}'`
rm-f$DIR/$DEL
echo"$DATE$SIZEMysqlbackupsuccessfully$DELwasremoved">>$LOG
else
echo"$DATEMysqlbackupfailed">>$LOG
fi
這是我自己寫的一個備份腳本,USER DATABASE 這是mysql的用戶名和密碼 DIR是備份的路徑
HOST是要備份的mysql的ip地址 我這里是遠程備份,如果你的是本地備份的話,可以把HOST給去掉,然後去掉OPT中 -h $HOST ,如果沒有密碼 就把PASSWORD去掉,還有OPT中的-p 選項以及$PASSWORD , if語句是判斷腳本是否執行成功 好吧 如果有什麼不明白的再問我吧
⑶ 請問mysql怎麼自動備份資料庫
資料庫的自動備份,可以減輕維護者的工作量也便於系統恢復,對於比較重要的資料庫,最好還是設置下自動備份。
工具/原料
navicat for mysql
mysql 5.5
方法/步驟
打開navicat客戶端,連上mysql後,雙擊左邊你想要備份的資料庫。點擊「計劃」,再點擊「新建批處理作業」。
⑷ linux計劃任務(自動化執行任務的利器)
Linux計劃任務是一種自動化執行任務的工具,它可以在指定的時間間隔內執行特定的任務,例如備份文件、清理日誌、發送郵件等。Linux計劃任務是Linux系統中非常重要的工具之一,它可以幫助我們自動化完成許多重復性的工作,提高工作效率。
Linux計劃任務的使用方法
在Linux系統中,我們可以使用crontab命令來管理計劃任務。crontab命令可以讓我們創建、編輯、查看和刪除計劃任務。下面是一些常用的crontab命令:
-crontab-e:編輯當前用戶的計劃任務;
-crontab-l:列出當前用戶的計劃任務;
-crontab-r:刪除當前用戶的所有計劃任務。
在編輯計劃任務時,我們需要使用特定的語法來指定任務的執行時間和要執行的命令。下面是一個示例:
```
00***/usr/bin/backup.sh
```
這個示例表示在每天的0點0分執行/usr/bin/backup.sh腳本。其中,星號(*)表示任意值,可以用來表示所有的時間單位。例如,星號在小時的位置表示每小時都會執行該任務。除了星號之外,我們還可以使用數字、逗號、減號等符號來指定具體的時間。例如:
-0:表示整點;
-*/5:表示每隔5個時間單位執行一次;
-1,3,5:表示在1、3、5這三個時間單位執行一次;
-1-5:表示在1到5這個時間段內每個時間單位都執行一次。
實際應用案例
下面是一個實際應用案例,我們將使用Linux計劃任務來定時備份MySQL資料庫。
首先,我們需要創建一個備份腳本,例如backup_mysql.sh:
```
!/bin/bash
DATE=`date+%Y%m%d`
mysqlmp-uroot-p123456--all-databases>/var/backup/mysql_$DATE.sql
```
這個腳本會使用mysqlmp命令備份所有的MySQL資料庫,並將備份文件保存到/var/backup目錄下,文件名為mysql_日期.sql。
接下來,我們使用crontab命令來創建一個計劃任務,每天凌晨1點執行備份腳本:
```
crontab-e
```
在編輯模式下,添加以下內容:
```
01***/bin/bash/usr/local/bin/backup_mysql.sh
```
保存並退出編輯模式。現在,我們已經成功創建了一個每天凌晨1點執行備份腳本的計劃任務。
⑸ 如何在linux下實現mysql資料庫每天自動備份
方法/步驟
1. 在根目錄下新建定時備份存儲文件夾mkdir /mysql_backup
2.新建備份的腳本vim /root/mysql_backup.sh
3.在mysql_backup.sh中輸入內容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqlmp -uroot -proot abc | gzip > $backupdir/abc$time.sql.gzfind $backupdir -name 「abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
——————————————————————————————
說明:
backupdir = 備份文件存儲文件夾time = 獲取當前時間 年月日時(2014111417)2014年11月14日17點mysqlmp 備份資料庫指令 abc要備份的資料庫find $backupdir -name 「abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 刪除5天前的備份文件
3 :wq 文件保存成功後
先按一下鍵盤上的 " esc " 然後輸入 」 :wq 「
執行一下腳本,看根目錄下的mysql_backup文件夾是否有.sql.gz後綴名的文件
./mysql_backup.sh
寫入每天的定時任務 修改 /etc/crontabvi /etc/crontab
按鍵盤上的"i",開始輸入
02 4 * * * root /root/mysql_backup.sh
表示每天4點2分執行備份任務
先按一下鍵盤上的 " esc " 然後輸入 」 :wq 「 表示保存
重新啟動crond
service crond restart 或 /etc/rc.d/init.d/crond restart
⑹ 如何實現MySQL的自動備份
一般在Linux伺服器上,都是自己寫自動化腳本,然後再加入定時任務即可。
現在備份一般都使用xtrabackup了,是percona出品的。
你也可以參考下官網的工具是如何備份的。
https://dev.mysql.com/doc/refman/5.6/en/backup-and-recovery.html
在這上www.linuxprobe.com/chapter-04.html可以看看如何寫腳本。