寫了乙個mysql備份的指令碼,大家看看,有什麼不妥地方。
這是我寫的第乙個shell指令碼,大家幫忙看看,
有誰需要的,我可以發給他。
可以將這個指令碼放進crontab,每天凌晨執行一次,自動備份
這個指令碼每天最多隻執行一次,而且只保留最近五天的備份在伺服器上。 #
!/bin/
bash
#this is a shellscript
forauto db
backup
#powered by aspbiz
#2004-09
#setting
#設定資料庫名,資料庫登入名,密碼,備份路徑,日誌路徑,資料檔案位置,以及備份方式
#預設情況下備份方式是tar,還可以是mysqldump
,mysqldotcopy
#預設情況下,用root(空
)登入mysql資料庫,備份至
/root
/db***xx
.tgz
dbname="
data
"dbuser="
root
"dbpasswd=""
backuppath="
/web1/back/
"logfile="
/web1/back/db.log
"dbpath="
/usr/local/mysql/"#
backupmethod
=mysqldump
#backupmethod
=mysqlhotcopy
#backupmethod
=tar
#setting
endnewfile="
$backuppath"db
$(date
+%y%m%d
).tgz
dumpfile="
$backuppath"db
$(date
+%y%m%d
)oldfile="
$backuppath"db
$(date
+%y%m%d --
date='
5days 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
fiif
[ -f
$newfile ]
then
echo
"[$newfile]the backup file is exists,can't backup!
">>
$logfile
else
case
$backupmethod in
mysqldump)if
[ -z
$dbpasswd ]
then
mysqldump -u
$dbuser --opt
$dbname
>
$dumpfile
else
mysqldump -u
$dbuser -p
$dbpasswd --opt
$dbname
>
$dumpfile
fitar czvf
$newfile
$dumpfile
>>
$logfile
2>&1
echo
"[$newfile]backup success!
">>
$logfile
rm -rf
$dumpfile
;;mysqlhotcopy
)rm -rf
$dumpfile
mkdir
$dumpfile
if[ -z
$dbpasswd ]
then
mysqlhotcopy -u
$dbuser
$dbname
$dumpfile
>>
$logfile
2>&1
else
mysqlhotcopy -u
$dbuser -p
$dbpasswd
$dbname
$dumpfile
>>$
logfile
2>&1
fitar 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
$dbname
>>
$logfile
2>&1
/etc
/init.d
/mysqld
start
>/
dev/
null
2>&1
echo
"[$newfile]backup success!
">>
$logfile
;;esac
fiecho
"-------------------------------------------
">>
$logfile
格式個linuxshell指令碼,需要注意的是必須用vi建立,我本來用window記事本建立的一直不能執行,搞了很長時間,檔名稱存為exec.sh就好了,還有linuxshell指令碼比較嚴格,多乙個空格少乙個空格都不行。。我確定上面的指令碼是可以執行的。只要鍵入
sh exec.sh
這樣就可以了。
MYSQL自動備份指令碼
1.備份指令碼 cat usr local script backupdatabase bin bash shell command for backup mysql database everyday automatically by crontab time 2015 5 20 name hux...
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...