#!/bin/bash
#自動備份指令碼
# you can use like this:./backupshell.sh -u mysql -p don**sql -d vhr -f /media/don**/_dde_data/mysql/backup -l /media/don**/_dde_data/mysql/backuplog/myql_backup.log
# # 當前問題:1.mysqldump在讀取的時候會將表的寫操作鎖住
# -u 使用者名稱
# -p 密碼
# -d 資料庫
# -f 輸出路徑
# -l 日誌路徑
#定義所需變數
bake_path="/media/don**/_dde_data/mysql/backup" #備份後存放目錄
log_path="/media/don**/_dde_data/mysql/backuplog/myql_backup.log" #備份日誌存放目錄及日誌名稱
filename="" #備份存放檔名稱
username="" #使用者名稱
password="" #密碼
database="" #資料庫名稱
table="" #表名稱
# 引數化定製 -p是sql檔案路徑,-l是日誌檔案路徑,-n是檔名稱(包含壓縮過後以及匯出為sql檔案的名稱)
while [ -n "$1" ]
do case "$1" in
-u)username="$2"
echo "the username is :$"
;;-p)password="$2"
echo "the password is:$"
;;-d)database="$2"
echo "the database is:$"
;;-t)table="$2"
echo "the table is:$"
;;-f)bake_path="$2"
echo "the backpath is:$"
;;-l)log_path="$2"
echo "the logpath is:$"
;;# esac是作為case的結尾
esac
# shift在這裡是調轉下乙個入參
shift
done
filename="`date '+%y-%m-%d%h:%m:%s'`_$.tar.gz" #壓縮包檔案
sqlfile="`date '+%y-%m-%d%h:%m:%s'`_$.sql" #匯出的sql檔案
to_file="$/$"
#備份失敗退出
err_quit=1
#自動刪除刪除超期檔案
#保留30多少天前的檔案
overtime=30
#刪除超期檔案
find $bake_path -ctime +$overtime -a -name "*$.tar.gz" -exec rm -f {} \;
if [ $? -eq 0 ];then
echo -e "`date '+%y-%m-%d%h:%m:%s'`\t刪除過期檔案成功">>$log_path
#除錯時輸出日誌資訊
# tail -1 $log_path
fi#進行備份操作
echo "the backpath is: $"
echo "the sqlfile is :$,username:$,password:$,database:$"
mysqldump -u $username -p$password $database > "$/$"
#將生成的sql檔案壓縮
echo "tarfile:$"
echo "sqlfile:$/$"
tar zcf $to_file "$/$" &> /dev/null
#echo $?
#判斷是否備份成功
if [ $? -eq 0 ]; then
echo -e "`date '+%y-%m-%d%h:%m:%s'`\t備份成功">>$log_path
#備份成功刪除生成的sql檔案,保留壓縮包
rm -rf $sqlfile
else
echo -e "`date '+%y-%m-%d%h:%m:%s'`\t備份失敗">>$log_path
exit $err_quit
fi#空間占用百分比
echo "log:$"
percent=$(df $bake_path |awk '/dev/')
echo -e "當前空間的占用百分比:$percent">>$log_path
#輸出日誌資訊
echo "logfile:$"
tail -2 $log_path
mysql的dump備份 mysqldump備份
1 備份命令 格式 mysqldump h主機名 p埠 u使用者名稱 p密碼 database 資料庫名 檔名.sql 例如 mysqldump h 192.168.1.100 p 3306 uroot ppassword database cmdb dump.sql 2 備份壓縮 匯出的資料有可能...
MySQL簡單的備份恢復(mysqldump)
mysql使用最為廣泛的備份工具是mysqldump。使用mysqldump進行基本的資料庫備份恢復。備份乙個資料庫 mysqldump u root p linuxcast linuxcast backup.sql從乙個備份檔案恢復乙個資料庫 mysql u root p linuxcast li...
MySQL 資料備份與還原 mysqldump
1 使用mysqldump命令備份 mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條insert語句。然...