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

2021-10-25 14:47:26 字數 1970 閱讀 7572

我這裡要把mysql資料庫存放目錄/var/lib/mysql下面的pw85資料庫備份到/home/mysql_data裡面,並且儲存為mysqldata_bak_2012_04_11.tar.gz的壓縮檔案格式(2012_04_11是指備份執行時當天的日期), 最後只保留最近7天的備份。

實現步驟:

1、建立儲存備份檔案的目錄:/home/mysql_data

cd /home  #進入目錄

mkdir mysql_data   #建立目錄

2、建立備份指令碼檔案:/home/mysql_data/mysql_databak.sh

cd /home/mysql_data     #進入目錄

touch mysql_databak.sh  #建立檔案

vim mysql_databak.sh  #編輯檔案,輸入以下內容

指令碼**:

#!/bin/sh

dump=/usr/bin/mysqldump    #mysqldump備份程式執行路徑

out_dir=/home/mysql_data    #備份檔案存放路徑

linux_user=root           #系統使用者名稱

db_name=pw85             #要備份的資料庫名字

db_user=root            #資料庫賬號 注意:非root使用者要用備份引數 --skip-lock-tables,否則可能會報錯

db_pass=123456           #資料庫密碼

days=7                 #days=7代表刪除7天前的備份,即只保留最近7天的備份

cd $out_dir              #進入備份存放目錄

date=`date +%y_%m_%d_%h`     #獲取當前系統時間

out_sql="$date.sql"        #備份資料庫的檔名

tar_sql="mysqldata_bak_$date.tar.gz"  #最終儲存的資料庫備份檔案名

$dump -u$db_user -p$db_pass $db_name --default-character-set=utf8 --opt -q -r --skip-lock-tables> $out_sql #備份

tar -czf $tar_sql ./$out_sql  #壓縮為.tar.gz格式

rm $out_sql   #刪除.sql格式的備份檔案

chown  $linux_user:$linux_user $out_dir/$tar_sql  #更改備份資料庫檔案的所有者

find $out_dir -name "mysqldata_bak*" -type f -mtime +$days -exec rm {} \;  #刪除7天前的備份檔案(注意:{} \;中間有空格)

:wq    #儲存退出

3、修改檔案屬性,使其可執行

chmod +x /home/mysql_data/mysql_databak.sh

4、修改/etc/crontab

vim /etc/crontab   #編輯檔案,在下面新增

45 22 * * * root  /home/mysql_data/mysql_databak.sh    #表示每天22點45分執行備份

:wq    #儲存退出

5、重新啟動crond使設定生效

service cron stop  #停止

service cron start #啟動

/etc/init.d/cron restart #重啟

chkconfig cron on #設為開機啟動

每天你在/home/mysql_data目錄下面可以看到類似mysqldata_bak_2012_04_11.tar.gz這樣的壓縮檔案

如果需要恢復檔案的時候,只需要把這個檔案解壓:tar -zxvf mysqldata_bak_2012_04_11.tar.gz

然後匯入到資料庫中即可。

mysql定時備份指令碼 MySql定時備份指令碼

最近需要對某服務的資料庫資料進行備份,因此參考網上教程完成資料庫備份指令碼.因為服務的使用頻率較低,因此設定定時任務,在每天的中午以及午夜時分進行備份操作.bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user mysql password mysql hos...

Mysql 定時備份指令碼

mysql備份原理 mysqldump uroot p pass db sql 壓縮 mysqldump hhostname uusername ppassword databasename gzip backupfile.sql.gz 恢復 gunzip backupfile.sql.gz mys...

指令碼定時備份mysql

一.用linux系統進行定時 1.新建乙個目錄用來存放備份資料 mkdir home mianfeng backup metastore database data 2.新建乙個檔案用來存放指令碼 vi home mianfeng backup metastore database mysql 3....