一個備份MySQL資料庫的簡單Shell指令碼
阿新 • • 發佈:2019-02-09
Shell指令碼是我們寫不同型別命令的一種指令碼,這些命令在這一個檔案中就可以執行。我們也可以逐一敲入命令手動執行。如果我們要使用shell指令碼就必須在一開始把這些命令寫到一個文字檔案中,以後就可以隨意反覆執行這些命令了。
我首先要在本文帶給你的是完整指令碼。後面會對該指令碼做說明。我假定你已經知道shell scripting、 mysqldump和crontab。
適用作業系統:任何Linux或UNIX。
主指令碼(用於備份mysql資料庫):
該Shell指令碼可以自動備份資料庫。只要複製貼上本指令碼到文字編輯器中,輸入資料庫使用者名稱、密碼以及資料庫名即可。我備份資料庫使用的是mysqlump
1. 分別建立目錄“backup”和“oldbackup”
#mkdir /backup
2. 現在使用你喜歡的編輯軟體建立並編輯“backup.sh”這裡我用的是 vi
# vi /backup/backup.sh
現在把以下幾行命令輸入到 backup.sh 檔案中:
#!/bin/bash DB_NAME=dbname DB_USER=root DB_PWD=123456 Now=$(date +"%d-%m-%Y--%H:%M:%S") File=backup-$Now.sql mysqldump -u$DB_USER -p$DB_PWD $DB_NAME>$File echo 'this database is backup ok'
指令碼說明:
切記,在第2,3,4輸入自己的資料庫名字,資料庫使用者名稱、密碼
執行該指令碼,會根據系統的日期及時間生成一個檔名,在最後 mysqldump 命令會生成一個“.sql”格式的資料庫備份檔案。
3. 設定 backup.sh 指令碼檔案的可執行許可
# chmod +x /backup/backup.sh
4. 執行指令碼
#./backup/backup.sh
注意:第3,4步驟也可以直接使用
/bin/sh backup.sh
指令碼執行結束後會得到以下輸入
this database is backup ok
5.使用cron制定備份計劃
使用Cron可以定時執行該指令碼,備份會自動完成。使用 crontab 命令編輯cron 執行的計劃任務。
#crontab –e
在編輯器中輸入一下程式碼,儲存退出即可:
0 13 * * * * /backup/backup.sh
本任務表示的是在每天下午1點鐘把資料庫備份到指定的資料夾。有關cron任務設定的詳細內容可以查閱crontab手冊