本文主要給大家簡單講講linux下使用shell編程實(shí)現(xiàn)MySQL備份,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望linux下使用shell編程實(shí)現(xiàn)mysql備份這篇文章可以給大家?guī)硪恍?shí)際幫助。
創(chuàng)新互聯(lián)建站堅(jiān)信:善待客戶,將會成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)建站是成都老牌網(wǎng)站營銷服務(wù)商,為您提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、HTML5、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、成都小程序開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
1,shell常見變量解析:
$0 當(dāng)前腳本的名稱
$n 當(dāng)前腳本的第n個(gè)參數(shù)
$* 當(dāng)前腳本的所有參數(shù)(不包括程序本身)
$# 當(dāng)前腳本的參數(shù)個(gè)數(shù)(不包括程序本身)
$?命令或程序執(zhí)行完成后的狀態(tài),一般返回0表示成功。
$UID當(dāng)前用戶的ID
$PWD當(dāng)前所在的目錄
-ne 不等于
-eq 等于
2,自動(dòng)備份mysql腳本思路
①,備份DB的命令
mysqldump -h227.0.0.1 -uroot -p123456 du >du_`date +%y%m%d`.sql
②,備份的機(jī)制
③,備份的目標(biāo)和庫
④,定期刪除多少天以前的數(shù)據(jù)
#!/bin/bash #auto backup mysql datebases. #by 2017 #define DB info PATH SQL_CMD="/usr/bin/mysqldump" SQL_HOST="127.0.0.1" SQL_USR="root" SQL_PWD="123456" SQL_DB="du" SQL_DIR="/data/backup/`date +%y%m%d`" #判斷是否為root用戶 if [ $UID -ne 0 ];then echo "only use root to exec." exit fi #判斷該路徑是否存在,不存在就創(chuàng)建一個(gè) if [ ! -d $SQL_DIR ];then mkdir -p $SQL_DIR fi #備份數(shù)據(jù)庫 $SQL_CMD -h$SQL_HOST -u$SQL_USR -p$SQL_PWD $SQL_DB >$SQL_DIR/$SQL_DB.sql #判斷是否備份成功,成功打印出來路徑 if [ $? -eq 0 ];then echo "Backup mysql already successful." echo "Backup path:$SQL_DIR" else echo "Backup mysql failed." fi #刪除30天以前的備份文件 cd $SQL_DIR/../ ; find . -mtime +30 -exec rm -rf {} \; echo "Done" #把腳本加到crontab任務(wù)計(jì)劃里 grep "mysql" /var/spool/cron/root >> /dev/null if [ $? -ne 0 ];then echo "0 0 * * * /bin/bash /root/shell/mysql.sh > /tmp/mysql.log 2>&1" >>/var/spool/cron/root /etc/init.d/crond restart fi
linux下使用shell編程實(shí)現(xiàn)mysql備份就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。