crontab 定时python爬虫脚本

十分钟运行一次,但是定时任务无法运行,crontab如何定时任务 啊

img

img

你的crontab 语法有问题,这么写【10 * * * *】是每个小时的第10分钟执行,改成【 */10 * * * *】试试。

先检测是crontab 无法启动还是你的脚本代码有问题,用crontab 执行一些简单定时任务看能不能运行,如能运行,就是你的代码执行有问题

先确定你的脚本是否可以运行,自己先运行一下,我感觉应该不能运行,你在root下创建文件夹和文件,看看有没有执行的权限,没有的话就给它赋予执行权限,可以给twitter赋予执行递归权限,这样他下面的文件也有这个权限了,一般来说文件都是在opt目录下创建执行的


linux你编写好定时任务,每次修改都要重启服务,不重启服务定时任务无效,即便你可以通过命令查看有这个任务也没用

crontab -e 会打开一个文本编辑器,按“i”键进入编辑模式,填写具体任务计划
crontab -l //列出当前的所有调度任务
crontab -l -u test //列出用户test的所有调度任务
crontab -r //删除所有任务调度工作
service crond restart //重启服务

1、布置定时任务

1、定义定时任务函数
def test():
    print 123
    #你要执行的任务函数

2、在 settings.py中的最后增加指定参数
CRONJOBS = [
    ('*/5 * * * *','你的app名.定时函数所在的py文件名.定时函数名','>>输出文件路径和名称')
]
#如果你有多个定时任务,都放入CORJOBS中即可
#‘>>/home/test.log’,通常会输出信息到一个文件中,
#就使用这个方法,注意的是‘>>’表示追加写入,’>’表示覆盖写入。

===========================================================
crontab的定时书写格式:
f1     f2   f3    f4    f5  

分     时    日     月    周

第一列f1代表分钟1~59:
  当f1为*表示每分钟都要执行;
  为*/n表示每n分钟执行一次;
  为[a-b]表示从第a分钟到第b分钟这段时间要执行;
  为a,b,c,...表示第a,b,c分钟要执行

第二列f2代表小时0~23(0表示凌晨):
  当f2为*表示每小时都要执行;
  为*/n表示每n小数执行一次;
  为a-b表示从第a小时到第b小时这段时间要执行;
  为a,b,c,...表示第a,b,c小时要执行

第三列f3代表日1~31:含义如上所示,以此类推
第四列f4代表月1~12:含义如上所示,以此类推
第五列f5代表星期0~60表示星期天)

2、启动定时任务

#将任务添加并生效
python manage.py crontab add
#显示当前的定时任务
python manage.py crontab show
#删除所有定时任务
python manage.py crontab remove
#重启django服务
#执行定时任务
corntab -e