天天看点

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

到里面之后就会看到报错信息