MYSQL自動備份指令碼

2021-08-27 18:59:48 字數 2688 閱讀 2994

1.備份指令碼

cat /usr/local/script/backupdatabase #!/bin/bash

#shell command for backup mysql database everyday automatically by crontab

#time 2015-5-20

#name huxianglin user=root password=******xx database1=zblog database2=zabbix backup_dir=/data/backup/database/ #備份資料庫檔案的路徑 logfile=/data/backup/database/data_backup.log #備份資料庫指令碼的日誌檔案 date=`date +%y%m%d-%h%m -d -3minute` #獲取當前系統時間-3分鐘 dumpfile1=$date-zblog.sql #需要備份的資料庫名稱 dumpfile2=$date-zabbix.sql archive1=$dumpfile1-tar.gz #備份的資料庫壓縮後的名稱 archive2=$dumpfile2-tar.gz if [ ! -d $backup_dir ]; #判斷備份路徑是否存在,若不存在則建立該路徑

then mkdir -p "$backup_dir"

fiecho -e "\n" >> $logfile

echo

"------------------------------------" >> $logfile

echo

"backup date:$date">> $logfile

echo

"------------------------------------" >> $logfile

cd$backup_dir

#跳到備份路徑下 /usr/local/mysql/bin/mysqldump -u$user -p$password

$database1 > $dumpfile1

#使用mysqldump備份資料庫

if [[ $? == 0 ]]; then tar czvf $archive1

$dumpfile1 >> $logfile

2>&1

#判斷是否備份成功,若備份成功,則壓縮備份資料庫,否則將錯誤日誌寫入日誌檔案中去。

echo

"$archive1 backup successful!" >> $logfile rm -f $dumpfile1

else

echo 「$archive1 backup fail!」 >> $logfile

fi /usr/local/mysql/bin/mysqldump -u$user -p$password

$database2 > $dumpfile2

if [[ $? == 0 ]]; then

tar czvf $archive2

$dumpfile2 >> $logfile

2>&1

echo

"$archive2 backup successful!" >> $logfile rm -f $dumpfile2

else

echo 「$archive2 backup fail!」 >> $logfilefi

2.刪除過時備份指令碼

#!/bin/bash

#time 2015-05-21

#name huxianglin backupdir="/data/backup/database/"

#定義備份檔案路徑 keeptime=7

#定義需要刪除的檔案距離當前的天數 delfile=`find $backupdir -type f -mtime +$keeptime -exec ls {} \;` #找到天數大於7天的檔案

for delfile in

$#迴圈刪除滿足天數大於七天的檔案

do rm -f $delfile

done

3.crontab 定時執行指令碼

at /etc/crontab shell=/bin/bash

path=/sbin:/bin

:/usr/sbin

:/usr/bin

mailto=root # for details see man 4 crontabs

# example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) or jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

0100 * * * root /usr/local/script/backupdatabase

#定義每天凌晨0點01分執行備份資料庫指令碼

0200 * * 0 root /usr/local/script/cleandatabase

#定義每週日凌晨0點02分執行刪除資料庫備份檔案

Mysql 自動備份指令碼

cd data shell vim auto backup mysql.sh bin bash auto backup mysql db by authors kanghui 2016 6 12 define backup path bak dir data backup date y m d my...

mysql自動備份指令碼

bin bash auto backup mysql shell by csy 2015 11 11 自動備份資料庫 並新增任務計畫指令碼 定義變數 bak cmd usr bin mysqldump bak host localhost bak db csy bak user root bak p...

mysql定時備份指令碼 Mysql自動備份指令碼

我這裡要把mysql資料庫存放目錄 var lib mysql下面的pw85資料庫備份到 home mysql data裡面,並且儲存為mysqldata bak 2012 04 11.tar.gz的壓縮檔案格式 2012 04 11是指備份執行時當天的日期 最後只保留最近7天的備份。實現步驟 1 ...