Shell腳本是我們寫不同類型命令的一種腳本,這些命令在這一個文件中就可以執行。我們也可以逐一敲入命令手動執行。如果我們要使用shell腳本就必須在一開始把這些命令寫到一個文本文件中,以後就可以隨意反覆運行這些命令了。
我首先要在本文帶給你的是完整腳本。後面會對該腳本做說明。我假定你已經知道shell scripting、 mysqldump和crontab。
適用操作系統:任何Linux或UNIX。
主腳本(用於備份mysql資料庫):
該Shell腳本可以自動備份資料庫。只要複製粘貼本腳本到文本編輯器中,輸入資料庫用戶名、密碼以及資料庫名即可。我備份資料庫使用的是mysqlump 命令。後面會對每行腳本命令進行說明。
1. 分別建立目錄「backup」和「oldbackup」
1
2
|
#mkdir /backup #mkdir /oldbackup |
2. 現在使用你喜歡的編輯軟體創建並編輯「backup.sh」
這裡我用的是 vi
1
|
# vi /backup/backup.sh |
現在把以下幾行命令輸入到 backup.sh 文件中:
1
2
3
4
5
6
7
8
9
|
#!bin/bash cd /backup echo 「You are In Backup Directory」 mv backup* /oldbackup echo 「Old Databases are Moved to oldbackup folder」 Now=$( date +」%d-%m-%Y--%H:%M:%S」) File=backup-$Now.sql mysqldump –u user-Name –p 『password』 database-name > $File echo 「Your Database Backup Successfully Completed」 |
腳本說明:
切記,在第8行命令中,在mysqldump命令後要輸入自己的資料庫用戶名、密碼及資料庫名。
執行該腳本,首先會進入 /backup 目錄,然後該腳本會把原有的舊資料庫備份移動到 /oldbackup 文件夾中,接著根據系統的日期及時間生成一個文件名,在最後 mysqldump 命令會生成一個「.sql」格式的資料庫備份文件。
3. 設置 backup.sh 腳本文件的可執行許可
1
|
# chmod +x /backup/backup.sh |
4. 執行腳本
1
|
#./backup.sh |
腳本運行結束後會得到以下輸入。
1
2
3
4
5
|
root@Server1: /download #./backup.sh You areinDownload Directory Old Backup DatabaseisMoved to oldbackup folder database backup successful completed root@Server1: /download # |
註:首次執行該腳本會有一個「no such file」的提示信息,這是由於舊備份文件還不存在。只要再次執行該腳本就沒有問題了,這個問題已經不存在了。
5. 使用cron制訂備份計劃
使用Cron可以定時執行該腳本,備份會自動完成。使用 crontab 命令編輯cron 執行的計劃任務。
1
|
#crontab –e |
只要在編輯器上加入下面這一行代碼保存即可。
1
|
013* * * * /backup/backup .sh |
本任務表示的是在每天下午1點鐘把資料庫備份到指定的文件夾。有關cron任務設置的詳細內容可以查閱crontab手冊。
對初學者而言,這是非常基礎的腳本。希望你能舉一反三寫出更複雜的備份腳本。我們會努力提供更自動化的新腳本。請大家不吝賜教,我們會儘力解決你們的問題。感謝與我們相伴。