使用Crontab實現資料庫的定時備份和迴圈刪除
阿新 • • 發佈:2019-02-15
一、引言
在最近的工作中,遇到過幾次這樣的煩惱:同事在沒有任何說明和通知的情況下,自己改變了測試資料庫的結構和資料,導致我的程式本來執行挺好的,被這樣一搞,就GG了……檢視日誌才發現操作資料庫error……(我真的很鄙視這種行為的)……
被同事這樣一搞,資料庫的資料不對了,由於我們又沒有專門的運維,所以還是挺頭疼的事,所以就只能跳進這個坑,一起坑下去……
今天心血來潮,就想著寫個shell指令碼,讓伺服器每天定時的把資料庫備份一下,再把10天之前的備份檔案刪除,以防止資料庫不能恢復,所以就學習了一下linux的crontab任務排程。
二、Crontab的介紹
1、crontab命令
(1)基本語法:crontab [選項] (2)常用選項 -e 編輯crontab定時任務 -l 查詢crontab任務 -r 刪除當前使用者所有的crontab任務
2、快速入門
(1)設定任務排程檔案:/usr/crontab
(2)設定個人任務調,執行命令:crontab –e
(3)接著輸入任務到排程檔案
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思:每小時的每分鐘執行 ls –l /etc/ > /tmp/to.txt命令
3、簡單案列:每隔1分鐘,就將當前的日期資訊,追加到 /tmp/mydate 檔案中
1)先編寫一個指令碼檔案:/home/mytask.sh date >> /tmp/mydate 2)給mytask.sh一個可執行許可權 chmod 744 /home/mytask.sh 3)crontab -e (當儲存退出後就可以執行該任務了) * /1 * * * /home/mytask.sh 4) 去/tmp目錄下檢視mydate檔案
4、上述幾個*佔位符的說明
5、特殊符號的說明
6、特定時間執行任務案列
三、資料庫定時備份指令碼實現
1、需求:
1) 每天凌晨 1:30 ,備份資料庫到指定目錄:/data/backup/db;
2) 備份開始和備份結束能夠給出相應的提示資訊;
3) 備份後的檔案要求以備份時間為檔名,並打包成.tar.gz 的形式,比如:2018-04-6_200201.tar.gz;
4) 在備份的同時,檢查是否有10天前備份的資料庫檔案,如果有就將其刪除;
2、步驟
(1)在/home/shell/backup.sh下編寫shell指令碼
(2)給backup.sh一個可執行許可權
chmod 744 /home/shell/backup.sh
(3)crontab -e
(4)可以去/home/data/backup目錄下去檢視備份檔案
四、總結
其實對於crontab的使用很簡單,注意一下引數的意思就行了,主要是備份的shell指令碼。