Linux 定时任务
在django项目中需要定时备份数据库,看网上都是用的django-crontab,crontab -e
查看是有的,但是就是不执行,于是直接在项目启动时加载脚本执行定时任务
django-crontab
crontab
怎么在项目启动时执行脚本
1、直接在manage.py中添加代码
#add your fun
execute_from_command_line(sys.argv)
2、在app的__init__.py中,要求app已经注册,比如
import os
default_app_config = "monitor.apps.MonitorConfig"
os.system('crontab -u root -r')
os.system('crontab corn.sh')
corn.sh:
每天执行一次的任务,注意需要绝对路径,后面留个空行
0 0 * * * sh /opt/xxx/do_job.sh
do_job.sh:
#!/bin/bash
#定时任务
cp /opt/backup.sql /tmp/$(date -d "today" +"%Y%m%d").sql
sqlite3 /opt/xxx/xxx.db .dump > /opt/backup.sql