邏輯很簡單,通過linux的crontab定時執行bash指令碼完成mysql資料庫備份。接下來就是寫bash指令碼和設定定時任務。
#!/bin/bash
path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export path
#資料庫使用者名稱
dbuser='root'
#資料庫用密碼
dbpasswd='root'
需要備份的資料庫,多個資料庫用空格分開
dbname='test'
#備份時間
backtime=`date +%y%m%d%h%m%s`
#日誌備份路徑
logpath='/home/database_backup/test'
#資料備份路徑
datapath='/home/database_backup/test'
#日誌記錄頭部
echo 『"備份時間為$,備份資料庫表 $ 開始" >> $/log.log
#正式備份資料庫
for table in $dbname; do
source=`mysqldump -u $ -p$ $> $/$.sql` 2>> $/mysqllog.log;
#備份成功以下操作
if [ "$?" == 0 ];then
cd $datapath
#為節約硬碟空間,將資料庫壓縮
tar jcf $$.tar.bz2 $.sql > /dev/null
#刪除原始檔案,只留壓縮後檔案
rm -f $/$.sql
#刪除七天前備份,也就是只儲存7天內的備份
find $datapath -name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
echo "資料庫表 $ 備份成功!!" >> $/mysqllog.log
else
#備份失敗則進行以下操作
echo "資料庫表 $ 備份失敗!!" >> $/mysqllog.log
fidone
測試一下是否有效:
./bashup.sh
如果生效則可以在日誌和資料庫備份路徑內看到新增的檔案。有可能backup.sh沒有許可權在資料夾內新增檔案,可為資料夾設定許可權:
sudo chmod a+w test
為test資料夾設定許可權。
開啟crontab檔案可以看到crontab的格式 「mm hh dd mm week user-name command」 ,例如:
59 23 * * * /bin/bash /home/database_back_bachup.sh
意思是在每天的23:59執行/home/database_back_bachup.sh,執行者是/bin/bash,shell檔案的預設執行者是bash,所以寫成如是一樣的:
59 23 * * * /home/database_back_bachup.sh
設定crontab
crontab -e
在文字中加入一行任務即可:
檢視crontab日誌想知道定時任務有沒有執行,檢視crontab日誌即可
sudo cat /var/log/cron
檢視crontab格式
Centos7 設定mysql自動備份
要設定自動備份,思路是2個步驟,第一步 1 編寫shell備份指令碼 mysql user username mysql備份使用者 mysql password password mysql備份使用者的密碼 mysql host mysql port 3306 mysql charset utf8 ...
Centos7中自動備份mysql資料庫
邏輯很簡單,通過linux的crontab定時執行bash指令碼完成mysql資料庫備份。接下來就是寫bash指令碼和設定定時任務。bin bash path bin sbin usr bin usr sbin usr local bin usr local sbin export path 資料庫...
centos7下的mysql自動備份
yum 安裝mysql 看這裡 時間戳命名 time date s mysql路徑 db dir usr bin 備份路徑 back dir home db 跟上使用者名稱密碼和資料庫名 db dir mysqldump uroot pjwbjwb123.test back dir autoback...