linux下mysql定時任務備份資料庫指令碼

2021-10-24 05:47:34 字數 2438 閱讀 3308

1、建立如下目錄

backup為空目錄

kxrs-backup.sh為可執行檔案

2、kxrs-backup.s**件內容:

user="admin"

password="123456"

database="kxrs"

hostname="localhost"

date=`date '+%y%m%d-%h%m'` #日期格式(作為檔名)

dumpfile='kxrs'-$date.sql #備份檔案名

archive='kxrs'-$date.sql.tgz #壓縮檔案名

options="-h$hostname -u$user -p$password $database"

#mysqldump -help

#判斷備份檔案儲存目錄是否存在,否則建立該目錄

if [ ! -d $backup_dir ] ;

then

mkdir -p "$backup_dir"

fi#開始備份之前,將備份資訊頭寫入日記檔案

echo " " >> $logfile

echo " " >> $logfile

echo "------------------" >> $logfile

echo "backup date:" $(date +"%y-%m-%d %h:%m:%s") >> $logfile

echo "------------------" >> $logfile

#切換至備份目錄

cd $backup_dir

#使用mysqldump 命令備份制定資料庫,並以格式化的時間戳命名備份檔案

/usr/bin/mysqldump $options > $dumpfile

#判斷資料庫備份是否成功

if [[ $? == 0 ]]; then

#建立備份檔案的壓縮包

tar czvf $archive $dumpfile >> $logfile 2>&1

#輸入備份成功的訊息到日記檔案

echo "[$archive] backup successful!" >> $logfile

#刪除原始備份檔案,只需保 留資料庫備份檔案的壓縮包即可

rm -f $dumpfile

else

echo "database backup fail!" >> $logfile

fi#輸出備份過程結束的提醒訊息

echo "backup process done"

#刪除7天以上的備份

檔案中的kxrs為資料庫名稱。

3、使用crontab命令建立定時任務

前面的時間任務分別的含義是:

注:可以新增多個任務

接下來::wq儲存退出。直接就生效了,不需要再執行別的命令。如果需要修改,直接修改儲存即可。

**contab -l 檢視新建的任務:

**contab -r:刪除任務

(注意:沒有提示,直接就刪掉了,所以慎用)

注:crond和crontab說明

linux 系統是由 crond這個系統服務來控制的。

linux 系統上面原本就有非常多的計畫性工作,因此這個系統服務是預設啟動的。

檢視crond系統服務的狀態: 

命令:systemctl status crond.service

從這裡可以看出來crond服務是自啟動(enabled),且正在執行的(active)

另外, 由於使用者自己也可以設定計畫任務,所以, linux 系統也提供了使用者控制計畫任務的命令 :crontab 命令。

4、結果檢視

在backup目錄外會生成.log檔案,裡面包含了備份的時間記錄。

backup目錄:

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

mysql 定時任務 生效 mysql定時任務

1.檢視是否開啟定時策略 show variables like event sche 若出現如下圖,則此時是關閉狀態 開啟定時策略 重啟無效 set global event scheduler 1 則需要在配置檔案my.ini的設定 重啟有效 mysqld event scheduler on ...

Linux下的定時任務

在有了郵件的告警功能後,下一步要做的就是做乙個定時任務,讓這個任務按週期執行,這樣就能周期性地收到告警資訊了。在做定時任務之前,先檢查一下當前的系統時間 date y m d t 和硬體時鐘時間 hwclock root localhost test date y m d t 2013 07 01 ...