您好,登錄后才能下訂單哦!
本文主要給大家簡單講講linux下使用shell編程實現mysql備份,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望linux下使用shell編程實現mysql備份這篇文章可以給大家帶來一些實際幫助。
1,shell常見變量解析:
$0 當前腳本的名稱
$n 當前腳本的第n個參數
$* 當前腳本的所有參數(不包括程序本身)
$# 當前腳本的參數個數(不包括程序本身)
$?命令或程序執行完成后的狀態,一般返回0表示成功。
$UID當前用戶的ID
$PWD當前所在的目錄
-ne 不等于
-eq 等于
2,自動備份mysql腳本思路
①,備份DB的命令
mysqldump -h227.0.0.1 -uroot -p123456 du >du_`date +%y%m%d`.sql
②,備份的機制
③,備份的目標和庫
④,定期刪除多少天以前的數據
#!/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 #判斷該路徑是否存在,不存在就創建一個 if [ ! -d $SQL_DIR ];then mkdir -p $SQL_DIR fi #備份數據庫 $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任務計劃里 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編程實現mysql備份就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。