backdir:我們的備份的檔案放的位置
logfile:備份成功或者失敗的日誌
database:資料庫名稱
databaseuser:資料庫使用者名稱
databasepwd:資料庫密碼
指令碼如下
export lang=en_us.utf-8
#注意:下面這幾個變數需修改為你自己的
backdir=/home/backup
logfile=/home/backup/bak.log
database=user
databaseuser=root
databasepwd=pwd
if [ ! -d "$backdir" ];then
mkdir $backdir
fiif [ ! -f "$logfile" ]; then
touch "$logfile"
fidate=`date +%y%m%d_%h%m%s`
begin=`date +%y%m%d_%h:%m:%s`
#到備份目錄下
cd $backdir
#設定匯出指令碼名稱
dumpfile=databasenme_$date.sql
#設定壓縮包名稱
dumpfilezip=database_$date.sql.tgz
#匯出資料庫資料
mysqldump -u$databaseuser -p$databasepwd $database > $dumpfile
#壓縮sql指令碼
tar -czvf $dumpfilezip $dumpfile
#刪除sql指令碼
rm $dumpfile
#下面這一段是保留最近7天的資料
count=$(ls -l *.tgz |wc -l)
if [ $count -ge 8 ]
then
file=$(ls -l *.tgz |awk ''|awk 'nr==1')
rm -f $file
filast=`date +"%y%m%d_%h:%m:%s"`
echo start:$begin end:$last $dumpfilezip succ >> $logfile
0 0 * * * /root/test.sh
#分 時 日 月 周 |《**********====命令列********************===》|
1.mysqldump: command not found
這是因為在安裝mysql的時候,並沒有將mysql的bin配置到系統的環境變數中
vim /etc/profile
設定環境變數:
寫乙個mysql_home,值為「mysql的安裝路徑」
在path後面加上$mysql_home/bin
export後面加上mysql_home
將mysql加入到系統的環境變數後這個問題就搞定了,以後在任何目錄也都可以連線mysql
windows下上傳shell指令碼至linux,其格式將為dos。dos模式的shell指令碼將不能再linux下正確執行,需要修改檔案
Linux定時備份MySQL資料庫指令碼
之前記錄下了window系統備份遠端mysql資料庫的定時備份指令碼 想要了解的可以去看看 windows壓縮備份mysql資料庫 linux系統的忘記記錄了。這次把它也儲存下來。指令碼內容非常簡單,主要是利用mysql的備份系統來做這件事。bin bash mysqldump hlocalhost...
linux定時備份資料庫指令碼
bin bash mysql使用者資訊 hostname user userpwd dbnames db1 db2 db3 date date y m d h m s 日期格式 作為檔名 date date d now y m d h m s archive date.tar.gz backup d...
linux下指令碼定時備份資料庫
原文 一 常用的命令如下 1 編輯乙個新的crontab任務 crontab e 2 檢視編寫後的crontab任務 crontab l 3 重啟contab任務服務 service crond restart 4 檢視contab任務狀態 service crond status 5 重新載入配置...