MySQL資料庫的shell指令碼自動備份

2022-09-25 22:18:10 字數 1111 閱讀 1605

mysql資料庫的shell指令碼自動備份

經常備份資料庫是乙個好習慣,雖然資料庫損壞或資料丟失的概率很低,但一旦發生這種事情,後悔是沒用的。一般**或應用的後台都有備份資料庫的功能按鈕,但程式設計客棧需要去手工執行。我們需要一種安全的,每天自動備份的方法。下面的這個shell指令碼就是能讓你通過過設定crontab來每天備份mysql資料庫的方法。

#!/bin/bash

# 資料庫認證

user=www.cppcns.com""

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執行指令碼是缺少系統環境資訊,找不到mljhxvfdv mysqldump ,改正的方法是使用 mysqldump 全路徑就行了。而之所以沒有報錯資訊,是因為 mysqldump 把錯誤資訊輸出到了 stderr。在命令的後面末尾接 「2>&1」 這樣乙個資訊重定向命令就可以看到錯誤資訊了:

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

本文標題: mysql資料庫的shell指令碼自動備份

本文位址:

Mysql資料庫 每天自動備份mysql指令碼

1 執行 crontab e 00 00 bin bash yourpath mysqlbak.sh 2 開啟自動執行檔案 vi etc crontab 在etc中加入如下內容,讓其自動執行任務。00 00 root mysqlbak.sh 以上兩個 00 00 為每天的凌晨自動執行腳 本分 時 日...

Mysql資料庫 每天自動備份mysql指令碼

1 執行 crontab e 00 00 bin bash yourpath mysqlbak.sh 2 開啟自動執行檔案 vi etc crontab 在etc中加入如下內容,讓其自動執行任務。00 00 root mysqlbak.sh 以上兩個 00 00 為每天的凌晨自動執行指令碼 分 時 ...

SHELL 備份Mysql資料庫

這個指令碼雖然比較簡單,但覺得會幫我們很大的忙!簡單說一下 db user user 為使用者名稱 db pass password 為密碼 mkdir home mysqlbak date 指定並建立要備份到的目錄 bin dir usr local mysql bin 指定你的mysql的位置 ...