程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫的shell腳本自動備份

MySQL數據庫的shell腳本自動備份

編輯:MySQL綜合教程

MySQL數據庫的shell腳本自動備份。本站提示廣大學習愛好者:(MySQL數據庫的shell腳本自動備份)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL數據庫的shell腳本自動備份正文


MySQL數據庫的shell腳本自動備份

經常備份數據庫是一個好習慣,雖然數據庫損壞或數據丟失的概率很低,但一旦發生這種事情,後悔是沒用的。一般網站或應用的後台都有備份數據庫的功能按鈕,但需要去手工執行。我們需要一種安全的,每天自動備份的方法。下面的這個shell腳本就是能讓你通過過設定Crontab來每天備份MySQL數據庫的方法。

#!/bin/bash
# 數據庫認證
 user=""
 password=""
 host=""
 db_name=""
# 其它
 backup_path="/path/to/your/home/_backup/mysql"
 date=$(date +"%d-%b-%Y")
# 設置導出文件的缺省權限
 umask 177
# Dump數據庫到SQL文件
 mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql

通過上面的腳本,我們可以每天導出一份sql備份文件,文件的名稱按當日日期生成。日積月累,這樣的文件會生成很多,有必要定時刪除一些老舊的備份的文件,下面的這行命令就是做這個任務的,你可以把它加在上面的腳本後面。

# 刪除30天之前的就備份文件
 find $backup_path/* -mtime +30 -exec rm {} \;

我在使用上面的腳本時曾經遇到過一個問題,Crontab定時執行腳本導出沒有報錯,但導出的是空的SQL文件,但登錄到控制台手工執行這個腳本是備份成功的。後來發現是Crontab執行腳本是缺少系統環境信息,找不到 mysqldump ,改正的方法是使用 mysqldump 全路徑就行了。而之所以沒有報錯信息,是因為 mysqldump 把錯誤信息輸出到了 stderr。在命令的後面末尾接 “2>&1” 這樣一個信息重定向命令就可以看到錯誤信息了:

mysqldump -ujoe -ppassword > /tmp/somefile 2>&1

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

[db:作者簡介][db:原文翻譯及解析]
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved