一、檢查服務是否安裝
在Linux系統下設置計劃定時任務,我們使用的是crond服務,首先檢查是否安裝了crond服務,出現以下情況表示已安裝
如未安裝,執行安裝
yum install -y cronie crontabs
crond 服務的開啓與關閉
systemctl start crond 服務開啓
systemctl stop crond 服務關閉
systemctl restart crond 服務重啓
systemctl status crond 服務狀態
二、寫備份腳本
使用 vi /var/spool/cron/mysqlbackup.sh
因爲cron安裝在var/spool/cron這裏,我就將腳本創建在這,mysqlback.sh你可以隨意起名,然後回車會進入這個腳本文件的編輯頁面,如下圖
以上是截圖,如需要直接複製,請從下面複製
#!/bin/bash
# Name:mysqlbackup.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
backupdir=/mnt/mysqlbackup
time=`date +%Y%m%d%H`
/usr/local/mysql/bin/mysqldump -uroot -proot shop > $backupdir/shop_$time.sql
find $backupdir -name "shop_*.sql" -type f -mtime +60 -exec rm {} \;>/dev/null 2>&1
/usr/local/mysql/bin/mysqldump 這個是我的MySQL路徑是這裏,指定MySQL的bin裏的mysqldump程序來執行,backupdir是sql備份文件的文件夾-uroot就是數據庫用戶是root 然後-proot就是數據庫密碼是root然後shop是數據庫名,後面$都是引用前面聲明,$time.sql這是創建sql文件,find就是找文件 $backupdir後面必須要有/ 不然找不到 然後-name這些就找文件名了-mtime +60是每隔60天刪除一次,我們等下測試每分鐘備份一次所以要刪除3分鐘之前的文件,所以用-mmin +3。
三、給腳本添加執行權限
使用chmod 執行 chmod +x /var/spool/cron/mysqlbackup.sh 前面chmod +x不要動,後面是腳本文件的絕對路徑。
四、增加定時任務
修改 vi /etc/crontab,就是添加定時任務來定時執行腳本文件,如下
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
#mysqlbuckup
0 3 * * * root /var/spool/cron/mysqlbackup.sh
前面0是分鐘 3 是時鐘 ***不用管 root是執行用戶。因爲等下要測試,每分鐘執行腳本文件是
** * * * root /var/spool/cron/mysqlbackup.sh 就是5個*
五、測試定時任務是否可行
1、重啓crond服務
2、去備份的目錄/mnt/mysqlbackup去查看是否生成備份sql文件,測試如果成功,注意修改好定時任務文件crontab,設置你想要的定時記錄
備註:如果沒有生成相應的sql文件
1、注意檢查備份文件mysqlbackup.sh是否正確,提示:注意反覆檢查。
2、檢查定時任務是否開啓,定時任務文件crontab是否正確,一般linux版本不同可能定時的格式內容也不一樣