ubuntu打开crontab日志及不执行常见原因

news/2024/7/19 11:58:21 标签: python, 爬虫

crontab不执行常见原因

1,先排查你要执行的脚本是否正常运行,验证方法就是在控制台输入你要执行的脚本命令,看是否能执行,但是即使有时能正常执行,也不一定说脚本就没问题。今天我就遇到了一个很奇怪的现象,我的脚本命令没使用全路径,在控制台是可以正常运行,但是crontab就是没执行起来,日志也没报错。然后把命令换成全路径之后,cron就成功执行了。所以说,为了能正常运行,脚本命令我建议写上全路径。

比如我要执行一个爬虫,脚本一般这样写

#!/bin/bash

cd /var/xxx/project #你的爬虫目录

scrapy crawl myspider #执行scrapy
这样写,然后在控制台直接执行是没问题的
sh /xxx/xxx/xx.sh
但是换成cron来就不行了,我们把scrapy的路径给补上,输入命令
find / -name scrapy
快速找到你的scrapy在哪里,把xx/bin/scrapy那个路径复制过来,我的是/usr/local/bin/scrapy,然后把刚才的脚本改成
/usr/local/bin/scrapy crawl myspider
如果还不成功,那就开始下一步去crontab上找问题了。
2,首先我们把cron日志打开,Ubuntu系统默认是不打开cron日志的,不信你cd 到/var/log目录下是找不到cron.log文件的。

如何打开,很简单,控制台输入

vi /etc/rsyslog.d/50-default.conf
打开文件,在文件中找到cron.*,把前面的#去掉,保存退出,输入
sudo service rsyslog restart
重启系统日志,然后稍微等下应该就能在/var/log目录下看到cron.log,vi cron.log就可以查看cron运行日志了。
如果在日志中能看到有这样的记录

Jan 23 12:55:01 iZbp12o440hd7llqz14ebpZ CRON[3990]: (root) MAIL (mailed 1 byte of output; but got status 0x00ff, #012)
这是一个很常见的错误,很多新手都会碰到这个问题,这个错误原因是cron执行完你的命令后就会给你发一封邮件,但是我邮件都没配置往哪发啊,所以就报错了。难道真的要我把邮箱配置起来嘛,当然不要,也不知道怎么配,更不想去配,你执行完就完事了呗,给我发邮件干啥呢。可能老外比较喜欢用邮件,想每天登录邮箱都能看到满满的一箱信,哈哈,扯远了。
回归正题,我们只需要在每条cron命令空一格后加上这几个字

>/dev/null 2>&1
比如我的一条命令
*/5 * * * * sh /var/xxx/xxx.sh >/dev/null 2>&1
明确告诉你,完事别给我发什么邮件了,老子不需要。然后
service cron restart
把cron重启一下,静静的等待奇迹的出现。。。
如果还有问题,看日志,一步步排查,还有一个很值得注意的就是要确保你的脚本命令尽量使用全路径,有些环境变量没配的话是执行不起来的。


---------------------
作者:panyox
来源:CSDN
原文:https://blog.csdn.net/panyox/article/details/79157046?utm_source=copy

转载于:https://www.cnblogs.com/lijurui/p/9803050.html


http://www.niftyadmin.cn/n/1086874.html

相关文章

java实现百度统计api调用(改良版)

引用:https://blog.csdn.net/u010736165/article/details/78899708 百度统计的代码网上很多,但是上面这个哥哥的最好,我也成功了,但是遇到了一点问题,统计地域分布的时候,我发现得到的数据都是乱码&#xf…

[数论分块]BZOJ 1257 余数之和

Description 给出正整数n和k&#xff0c;计算j(n, k)k mod 1 k mod 2 k mod 3 … k mod n的值其中k mod i表示k除以i的余数。例如j(5, 3)3 mod 1 3 mod 2 3 mod 3 3 mod 4 3 mod 5010337Input 输入仅一行&#xff0c;包含两个整数n, k。1<n ,k<10^9Output 输出仅…

Java实现几种常见排序方法

复习一下&#xff0c;java常见的几种排序方法 日常操作中常见的排序方法有&#xff1a;冒泡排序、快速排序、选择排序、插入排序、希尔排序&#xff0c;甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 以下常见算法的定义 1. 插入排序&#xff1a;插入排序基本…

第七周周总结

本周完成补习班&#xff0c;和科二考试&#xff0c;未进行相关学习 转载于:https://www.cnblogs.com/huiwuyan20/p/11372744.html

js正则表达式(2)

找到以某个字符串开头的字符串 var myReg/^(abc)/gim; 如果不加m&#xff0c;那么只找一行&#xff0c;而加了m可以找到每行中以该字符串开头的匹配文本。 如&#xff1a; abcsfsdfasd7890hklfahskfkaluiop7890-7890782ksdlafkasdnfklsdnf;lsabcsdfasd f asd f asd abcadaabcad…

[计算几何]JZOJ 6290 倾斜的线

Description Input Output Sample Input 6 15698 17433 112412868 636515040 122123982 526131695 58758943 343718480 447544052 640491230 162809501 315494932 870543506 895723090 Sample Output 193409386/235911335Data Constraint 分析 先考虑正常坐标系下的斜率最大问题…

Linux根据不同用户如何设置不同JDK版本

遇到一个环境需要安装JDK&#xff0c;一般都安装一个所需版本的JDK(1.7xx)然后配置一下/etc/profile文件的环境变量。这个配置是全用户的。任意用户登录&#xff0c;输入java –version得到的是同一个JDK版本。 有时会遇到这么一个场景&#xff0c;用户A需要搭建服务A&#xff…

linux alias命令

参考如下链接&#xff1a; https://www.cnblogs.com/caochuangui/p/5763904.html 功能说明&#xff1a;设置指令的别名。 语  法&#xff1a;alias[别名][指令名称] 形如&#xff1a; alias cp“cp -i” &#xff1b; 补充说明&#xff1a;用户可利用alias&#xff…