Linux中crontab日志配置
crontab在/var/log/目录下没有cron.log文件
-
修改rsyslog文件:
/etc/rsyslog.d/50-default.conf
将 rsyslog 文件中的 #cron.* 前的 # 删掉; -
重启rsyslog服务:
service rsyslog restart -
重启cron服务:
service cron restart -
查看日志文件:
tail -f /var/log/cron.log
django crontab定时执行任务
-
安装
pip install django-crontab
-
添加app名称到 settings.py中
INSTALLED_APPS = ( 'django_crontab',#这个不是app的名字,必须要添加到前面,不能接着app后面添加,否则会报错 ... )
-
接下来创建定时任务可以分成两种,一种是执行自定义的mange.py的命令,另一种是执行自定义函数。
我选择的方法是自定义函数。
-
首先在原来的app 中(与view.py同级)新建一个cron.py (名字可以任意,其实也可以放在view.py中,新建文件方便管理。)
def test(): print (123) # 你要执行的任务函数
-
在 settings.py中的最后增加
CRONJOBS = [ ('*/5 * * * *', 'appname.cron.test','>>/home/test.log') ] 如果你有多个定时任务,都放入CORJOBS中即可。
-
‘/5 * * *’ 遵循的是crontab 语法。
-
‘appname.cron.test’,这个appname就是你开发时加入到settings中的那个。因为你的cron.py文件就在这个下面,否则找不到路径。cron 就是你自己起的任务文件的名字。test就是执行的函数中的内容。
-
‘>>/home/test.log’,通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>’表示追加写入,’>’表示覆盖写入。
-
-
启动
以上都完成后,需要执行
python3 manage.py crontab add
将任务添加并生效显示当前的定时任务
python3 manage.py crontab show
删除所有定时任务
python3 manage.py crontab remove
-
重启django服务。
-
执行
crontab -e
可以看到系统中创建了该定时任务。