一個備份MySQL數據庫的簡單Shell腳本

Shell腳本是咱們寫不一樣類型命令的一種腳本,這些命令在這一個文件中就能夠執行。咱們也能夠逐一敲入命令手動執行。若是咱們要使用shell腳本就必須在一開始把這些命令寫到一個文本文件中,之後就能夠隨意反覆運行這些命令了。html

我首先要在本文帶給你的是完整腳本。後面會對該腳本作說明。我假定你已經知道shell scripting、 mysqldump和crontab。mysql

適用操做系統:任何Linux或UNIX。sql

主腳本(用於備份mysql數據庫):shell

該Shell腳本能夠自動備份數據庫。只要複製粘貼本腳本到文本編輯器中,輸入數據庫用戶名、密碼以及數據庫名便可。我備份數據庫使用的是mysqlump 命令。後面會對每行腳本命令進行說明。數據庫

1. 分別創建目錄「backup」和「oldbackup」bash

#mkdir /backup
#mkdir /oldbackup

2. 如今使用你喜歡的編輯軟件建立並編輯「backup.sh」

這裏我用的是 vi編輯器

# vi /backup/backup.sh

如今把如下幾行命令輸入到 backup.sh 文件中:

#!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命令後要輸入本身的數據庫用戶名、密碼及數據庫名。spa

執行該腳本,首先會進入 /backup 目錄,而後該腳本會把原有的舊數據庫備份移動到 /oldbackup 文件夾中,接着根據系統的日期及時間生成一個文件名,在最後 mysqldump 命令會生成一個「.sql」格式的數據庫備份文件。操作系統

3. 設置 backup.sh 腳本文件的可執行許可code

# chmod +x /backup/backup.sh

4. 執行腳本

#./backup.sh

腳本運行結束後會獲得如下輸入。
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 執行的計劃任務。

#crontab –e

只要在編輯器上加入下面這一行代碼保存便可。

013* * * * /backup/backup.sh

本任務表示的是在天天下午1點鐘把數據庫備份到指定的文件夾。有關cron任務設置的詳細內容能夠查閱crontab手冊。

對初學者而言,這是很是基礎的腳本。但願你能觸類旁通寫出更復雜的備份腳本。咱們會努力提供更自動化的新腳本。請你們不吝賜教,咱們會盡力解決大家的問題。感謝與咱們相伴。

相關文章
相關標籤/搜索