乙個備份MySQL資料庫的簡單Shell指令碼

2021-06-06 00:03:49 字數 2578 閱讀 3036

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」

mvbackup*/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手冊。

對初學者而言,這是非常基礎的指令碼。希望你能舉一反三寫出更複雜的備份指令碼。我們會努力提供更自動化的新指令碼。請大家不吝賜教,我們會盡力解決你們的問題。感謝與我們相伴。

原文出自:

乙個備份MySQL資料庫的簡單Shell指令碼

shell指令碼是我們寫不同型別命令的一種指令碼,這些命令在這乙個檔案中就可以執行。我們也可以逐一敲入命令手動執行。如果我們要使用shell指令碼就必須在一開始把這些命令寫到乙個文字檔案中,以後就可以隨意反覆執行這些命令了。我首先要在本文帶給你的是完整指令碼。後面會對該指令碼做說明。我假定你已經知道...

乙個備份MySQL資料庫的簡單Shell指令碼

主指令碼 用於備份mysql資料庫 該shell指令碼可以自動備份 資料庫。只要複製貼上本指令碼到文字編輯器中,輸入資料庫使用者名稱 密碼以及資料庫名即可。我備份資料庫使用的是mysqlump 命令。後面會對每行指令碼命令進行說明。1.分別建立目錄 backup 和 oldbackup mkdir ...

乙個備份mysql 資料庫的指令碼

獲取當前系統日期,格式為 2009 2 21 date date f 定義mysql 服務的主目錄 db dir usr 定義備份後的路徑 bak dir usr local backup bak path bak dir date 判斷備份檔案存放的路徑是否存在 if d bak path the...