天天看點

crontab1.crontab2.在django中使用crontab

crontab1.crontab2.在django中使用crontab

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

到裡面之後就會看到報錯資訊