Shell 備份MySQL資料庫

2021-08-21 03:36:39 字數 1822 閱讀 9388

建立備份指令碼,並且自動刪除十天以前的備份檔案

#!/bin/bash

#備份資料庫命令

#mysqldump -hhadoop1 -p3306 -uroot -proot mydb>/tmp.sql

#備份到此目錄

mysqldump_dir=/usr/data/mysql/dump/

#檢視mysql備份目錄是否存在

if test ! -e $mysqldump_dir

then

mkdir -p $mysqldump_dir

fidatetime=$(date +%y_%m_%d_%h_%m_%s)""$random

echo "*****

*****

*****

*****

*****

**開始備份mysql**

*****

*****

*****

*****

*****

***"

echo $mysqldump_dir$datetime"".sql

#備份資料庫

mysqldump -hhadoop1 -p3306 -uroot -proot mydb>$mysqldump_dir$datetime"".sql

cd $mysqldump_dir

tar -czvf $datetime.tar.gz $datetime"".sql

rm -rf $datetime"".sql

echo "*****

*****

*****

*****

*****

*****備份完畢*****

*****

*****

*****

*****

*******"

echo "*****

*****

*****

*****

*以下是伺服器存在的sql指令碼*

*****

*****

*****

*****

***"

ls -l -h $mysqldump_dir

echo "*****

*****

*****

*****

**即將刪除十天外的sql指令碼**

*****

*****

*****

*****

***"

find $mysqldump_dir -mtime +10 -name "*.tar.gz" -exec ls -l -h {} \;

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

echo "*****

*****

*****

*****

*****

*****執行成功*****

*****

*****

*****

*****

*******"

定時任務

需求:每天12:30分執行一次

crontab -e

3012 * * * /opt/user/mysqldump.sh

service crond restart

以下是翻閱的一些資料,感謝以下作者

mtime詳細說明

find -exec詳細說明

SHELL 備份Mysql資料庫

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

mysql資料庫備份shell指令碼

bin bash author george zheng 2012 03 12 version 1.2 myuser root mypass k943587 djj as host localhost date date i name date y m d h m s backupdir home ...

shell指令碼備份mysql資料庫

獲取mysql伺服器所有資料庫名稱,過濾掉不需要備份的資料庫 通過mysqldump來for迴圈匯出所有的資料庫的sql檔案 用zip加密壓縮所有的sql檔案 定期進行資料清理工作 bin bash 02.03.1.資料庫資訊定義 04.mysql host 192.168.1.1 05.mysql...