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
到里面之后就会看到报错信息