一、創建自動任務方法
1.建立自動任務的方法:
——使用Linux系統的crontab,crontab是Linux系統的自動執行定時任務的服務。
2.建立自動任務的簡單步驟:
——創建shell腳本文件:
vi backup.sh
——文件內容:
#! /bin/bash
DATE2=$(date -d '-4 day' +%Y%m%d) #此行獲取四天前的日期,並賦值給DATE
rm /home/cactiadmin/www$DATE2.tar.gz #此行和下一行實現刪除四天前的備份的功能
rm /home/cactiadmin/cacti$DATE2.sql
echo "The backup and delete operation has finished." >>/home/cactiadmin/backup/backup.log #記錄日誌
——修改文件權限:
chmod 755 backup.sh #文件可能需要有讀取和執行權限
3.編輯crontab內容,制定自動執行時間和執行文件(上部創建的文件):
——編輯crontab內容:
crontab -e # crontab 命令帶多個選項,看下文【1】
—— 內容:
01 00 * * * /home/cactiadmin/backup/backup.sh #內容代表的含義看下文【2】
——重啓crontab服務:
service crond restart
二、以下對上邊內容稍詳細展開解釋:
1.首先解釋shell腳本內容:
—— DATE=$(date -d '-1 day' +%Y%m%d)
#此行實現以年月日的格式獲取系統時間前一天的功能,格式是yyyymmdd(如:20170115),可使用
命令【date +%Y%m%d】命令來獲取當前的日期,其中需要注意的是“Y”要大寫,如果是小時則年會
已縮略的方式顯示(只顯示兩位數),如今天是2017年1月1日,使用“y”則顯示結果是170101。 date
後邊的選項【-d ‘-1 day’】是爲了獲取系統時間的前一日,-1表示前一天,這個數值也可以值正值,如
+3,此時獲得是系統時間加三天的日期, 【+%Y%m%d】這部分是爲了指定輸出格式。
—— date +%Y%m%d >>/home/cactiadmin/backup/backup.log;
#此行是將系統時間輸出到日誌文件,命令將日期寫到對應文件裏,如果文件不存在則自動創建。
—— tar -czvf /home/cactiadmin/www$DATE.tar.gz /var/www/
#此行和下一行實現 備份文件 功能,命令中“$DATE”內容會被日期替換(因爲我先備份出來的文件按備
份日期和其他字符來組成,)這也是爲什麼引入第一行內容的原因。
—— mysqldump -u root cacti>/home/cactiadmin/cacti$DATE.sql
# 此行是爲MySQL數據庫的導出備份。
DATE2=$(date -d '-4 day' +%Y%m%d) #此行獲取四天前的日期,也可以這樣寫【date -d '-3 day' +%F】格式會有差別:2017-01-12
rm /home/cactiadmin/www$DATE2.tar.gz #此行和下一行實現刪除四天前的備份的功能
rm /home/cactiadmin/cacti$DATE2.sql
echo "The backup and delete operation has finished." >>/home/cactiadmin/backup/backup.log #記錄日誌
2.解釋crontab裏的內容:
——【1】crontab 用法選項:
crontab –e : 修改 crontab 文件,如果文件不存在會自動創建。
crontab –l : 顯示 crontab 文件。
crontab -r : 刪除 crontab 文件。
crontab -ir : 刪除 crontab 文件前提醒用戶。
——crontab操作、編輯方式:
直接service操作,
通過配置文件操作,
直接通過crontab命令編輯,
編輯對應文件
——【2】crontab file的格式:
crontab 文件中的行由 6 個字段組成,不同字段間用空格或 tab 鍵分隔。前 5 個字段指定命令要運行的時間
* * * * * command
minute hour day-of-month month day-of-week full-path-to-shell-script
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
三、以下爲兩個博文鏈接,有需瞭解更多可做爲參考:
1.linux定時執行腳本 點擊打開鏈接
2.linux定時運行命令
點擊打開鏈接