
1.crontab
使用執行個體
執行個體1:每1分鐘執行一次command
指令:
* * * * *
command
執行個體2:每小時的第3和第15分鐘執行
指令:
3,15 * * * *
command
執行個體3:在上午8點到11點的第3和第15分鐘執行
指令:
3,15 8-11 * * *
command
執行個體4:每隔兩天的上午8點到11點的第3和第15分鐘執行
指令:
3,15 8-11 */2 * *
command
執行個體5:每個星期一的上午8點到11點的第3和第15分鐘執行
指令:
3,15 8-11 * * 1
command
執行個體6:每晚的21:30重新開機smb
指令:
30 21 * * * /etc/init.d/smb restart
執行個體7:每月1、10、22日的4 : 45重新開機smb
指令:
45 4 1,10,22 * * /etc/init.d/smb restart
執行個體8:每周六、周日的1 : 10重新開機smb
指令:
10 1 * * 6,0 /etc/init.d/smb restart
執行個體9:每天18 : 00至23 : 00之間每隔30分鐘重新開機smb
指令:
0,30 18-23 * * * /etc/init.d/smb restart
執行個體10:每星期六的晚上11 : 00 pm重新開機smb
指令:
0 23 * * 6 /etc/init.d/smb restart
執行個體11:每一小時重新開機smb
指令:
* */1 * * * /etc/init.d/smb restart
執行個體12:晚上11點到早上7點之間,每隔一小時重新開機smb
指令:
* 23-7/1 * * * /etc/init.d/smb restart
執行個體13:每月的4号與每周一到周三的11點重新開機smb
指令:
0 11 4 * mon-wed /etc/init.d/smb restart
執行個體14:一月一号的4點重新開機smb
指令:
0 4 1 jan * /etc/init.d/smb restart
執行個體15:每小時執行/etc/cron.hourly目錄内的腳本
指令:
01 * * * * root run-parts /etc/cron.hourly
說明:
run-parts這個參數了,如果去掉這個參數的話,後面就可以寫要運作的某個腳本名,而不是目錄名了
2.在django中使用crontab
對于首頁的靜态化,考慮到頁面的資料可能由多名營運人員維護,并且經常變動,是以将其做成定時任務,即定時執行靜态化。
在Django執行定時任務,可以通過django-crontab擴充來實作。
安裝
pip install django-crontab
添加應用
INSTALLED_APPS = [
...
'django_crontab', # 定時任務
...
]
設定任務的定時時間
在配置檔案中設定定時執行的時間
每個定時任務分為三部分定義:
任務時間
基本格式 :
* * * * *
分 時 日 月 周 指令
M: 分鐘(0-59)。每分鐘用*或者 */1表示
H:小時(0-23)。(0表示0點)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0為星期天)。
任務方法
任務日志
首頁的定時任務設定如下
CRONJOBS = [
# 每5分鐘執行一次生成首頁靜态檔案
('*/5 * * * *', 'contents.crons.generate_static_index_html', '>> /Users/delron/Desktop/meiduo_mall/logs/crontab.log')
]
解決crontab中文問題
在定時任務中,如果出現非英文字元,會出現字元異常錯誤,可以通過在配置檔案中添加定時任務執行的附加指令來實作
在settings.py中添加配置:
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
開啟定時任務
添加定時任務到系統中
python manage.py crontab add
顯示已經激活的定時任務
python manage.py crontab show
移除定時任務
python manage.py crontab remove
檢視定時任務的報錯資訊
cd /var/mail
之後會顯示目前已經登陸的使用者名稱,然後
vim username
到裡面之後就會看到報錯資訊