轉載地址 http://www.lihuai.net/linux/mysql/803.html 注:原文 #!bin/bash bin前面少個斜槓 應該爲#!/bin/bash
Shell腳本是我們寫不同類型命令的一種腳本,這些命令在這一個文件中就可以執行。我們也可以逐一敲入命令手動執行。如果我們要使用shell腳本就必須在一開始把這些命令寫到一個文本文件中,以後就可以隨意反覆運行這些命令了。
假定你已經知道shell scripting、 mysqldump和crontab。首先給出完整的腳本,後面會對該腳本做說明。
適用操作系統:任何Linux或UNIX。
1.創建腳本
該Shell腳本可以自動備份數據庫。只要複製粘貼本腳本到文本編輯器中,輸入數據庫用戶名、密碼以及數據庫名即可。這裏我們備份數據庫使用的是mysqldump 命令。後面會對每行腳本命令進行說明。
(1)在你想要放置備份文件的目錄下創建兩個目錄“backup”和“oldbackup”,這裏使用的是根目錄
(2)創建並編輯文件“backup.sh”
3 |
echo “You
are In Backup Directory” |
5 |
echo “Old
Databases are Moved to oldbackup folder” |
6 |
Now=$( date +”%d-%m-%Y--%H:%M:%S”) |
8 |
mysqldump
–u user-name –p ‘password’ database-name > $File |
9 |
echo “Your
Database Backup Successfully Completed” |
(3)設置 backup.sh 腳本文件的可執行許可
1 |
# chmod +x
/backup/backup.sh |
(4)腳本執行
腳本運行結束後會得到以下輸出:
1 |
root@Server1:/download#./backup.sh |
2 |
You
areinDownload Directory |
3 |
Old
Backup DatabaseisMoved to oldbackup folder |
4 |
database
backup successful completed |
5 |
root@Server1:/download# |
注:首次執行該腳本會有一個“no such file”的提示信息,這是由於舊備份文件還不存在。只要再次執行該腳本就沒有問題了,這個問題已經不存在了。
2.腳本說明
在第8行命令中,在mysqldump命令後要輸入自己的數據庫用戶名、密碼及數據庫名。
執行該腳本,首先會進入 /backup 目錄(要與自己創建的目錄保持一致),然後該腳本會把原有的舊數據庫備份移動到 /oldbackup 文件夾中,接着根據系統的日期及時間生成一個文件名,在最後 mysqldump 命令會生成一個“.sql”格式的數據庫備份文件。
3.使用cron制定備份計劃
使用Cron可以定時執行該腳本,備份會自動完成。使用 crontab 命令編輯cron 執行的計劃任務。
在編輯器中輸入一下代碼,保存退出即可:
1 |
013*
* * * /backup/backup.sh |
本任務表示的是在每天下午1點鐘把數據庫備份到指定的文件夾(具體備份週期可根據自己的實際情況設定)。有關cron任務設置的詳細內容可以查閱crontab手冊。
到這裏一個定時自動備份mysql的功能就得以實現,爲保證數據庫的安全性,李壞建議大家都養成備份數據庫的習慣。