shell指令碼定時備份mysql資料庫

2021-09-26 12:04:12 字數 1080 閱讀 1390

#!/bin/bash

#完成資料庫的備份

#備份的路徑

backup=/data/backup/db

#當前的時間作為檔名

datetime=$(date +%y_%m_%d_%h%m%s)

#實際開發中可以輸出變數來進行除錯

echo "----------開始備份----------------"

echo "備份的路徑是$backup/$datetime.tar.gz"

#主機名

db_host=127.0.0.1

#db使用者名稱

db_usr=root

#db密碼

db_pwd=1121

#資料庫名

database=backuptest

#判斷是否有該路徑如果有則直接執行,如果沒有則先建立

#[ ! -d "$backup/$datetime" ] && mkdir -p "$backup/$datetime"

if [ ! -d "$backup/$datetime" ];then

mkdir -p "$backup/$datetime"

fi#備份資料庫的名字

#執行mysql備份的指令

echo "開始備份資料庫"

mysqldump -u$ -p$ --host=$host $database | gzip > $backup/$datetime/$datetime.sql.gz

#打包本份檔案

cd $backup

tar -zcvf $datetime.tar.gz $datetime

#刪除臨時檔案

rm -rf $backup/$datetime

#刪除十天前的備份檔案

find $backup -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

echo "備份完成"

複製上面的**之後我們給***.s**件授於可執行許可權

最後在crontab檔案中設定該指令碼執行的時間就可以了!

關於crontab檔案的具體用法參照這個帖子

如何在linux下寫指令碼定時備份mysql資料庫

我們在工作中可以這麼做減少資料丟失概率 1.先在某個資料夾下建立乙個指令碼,這裡命名為back up database.sh,在 mnt data dump 這目錄下 bin bash basedir mnt data dump cd basedir echo 開始備份資料庫 echo mysqld...

shell指令碼 根據檔案個數定時備份

最近在了解jenkins時,出現這樣乙個問題 linux ext3系統目錄下的子目錄個數不能超過31998個 參考 但jenkins在不停的編譯版本時,有時候幾個小時就建立了30000多個日誌資料夾的目錄,從而要隨時的清理此資料夾下的目錄。於是就寫了個指令碼來實現自動備份功能。由於很久沒有接觸過sh...

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

a.邏輯備份 bin bash 資料庫使用者名稱 user root 資料庫密碼 key 123456 被備份的資料庫名稱 dbname mysql 獲取日期 date date y m d 定義備份檔案名稱格式 庫名 日期 bak if f tmp bak.sql then mysqldump u...