[linux]crontab 命令执行问题
在服务器上设置了一个R脚本的crontab任务,死活不执行。在网上搜了很久,终于解决了。
这里主要说一下crontab异常时,该如何排查。
假设cron命令为:* * * * Rscript /your_path/hello_world.r >> /your_path/hello_world.log
1.首先检查cron命令是否完全正确。
虽然很简单,但是我还是在这吃了不少苦。
具体症状主要表现为cron不执行,并且crontab执行日志下找不到执行记录。
contab的执行日志在/var/log/cron.log中(Ubunutu),vi之后使用nG跳到最后一行,可以看到最新的执行记录。
如果没有看到cron命令,则很可能是命令或者命令路径不正确。仔细检查一下。
注:No MTA installed, discarding output 这个信息,讲道理与执行脚本与否无关。可以不必理会。
(crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错)
2.crontab环境配置问题
如果手动在shell中可以执行,但是在crontab中无法执行时,就应该考虑这个问题了。
这个时候在cron日志中可以看到cron命令的执行记录,但是脚本就是死活不执行。hello_world.log下什么信息都没有。
搜到很多内容,说是环境配置的问题(确实也应该是环境配置的问题)。简单的说就是crontab执行时的环境和我们自己在shell中执行时的环境是不一致的。
更详细的内容可以参考这里:http://blog.csdn.net/zc02051126/article/details/20480289
虽然链接里说了很多解决方案,但是我并不知道他在说什么,呵呵。
我直接指定了命令的绝对路径,将cron命令改为:* * * * /usr/local/bin/Rscript /your_path/hello_world.r >> /your_path/hello_world.log
再次编辑crontab,终于在hello_world.log中找到了输出信息。
* 绝对路径根据自己安装程序位置的不同而不同。常见的有/usr/bin,/usr/local/bin等。如果不确定,就自己去路径下ls看是否存在相应程序。
* 网上很多说在脚本中首行加上环境路径(如#!/usr/bin/env Rscripit)。但是我没成功,不知道为什么。
Crontab命令指南,可以参考:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html 虽然我依然没看懂,呵呵。
[linux]crontab 命令执行问题的更多相关文章
- OSX系统添加定时任务 Linux crontab命令 定时执行py 文件 任务
#输出日志 #将日志输入到2.log文件中无论错误还是正确02 15 * * * . ~/xad/pyenv/xadserver/bin/activate && cd /root/xa ...
- Linux crontab命令:循环执行定时任务(详解版)
前面学习了 at 命令,此命令在指定的时间仅能执行一次任务,但在实际工作中,系统的定时任务一般是需要重复执行的.而 at 命令显然无法满足需求,这是就需要使用 crontab 命令来执行循环定时任务. ...
- Linux crontab定时执行任务 命令格式与详细例子
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...
- Linux crontab定时执行任务命令格式与详细例子
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...
- Linux crontab定时执行任务 命令格式与详细例子(转)
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...
- Linux crontab 命令详解
在 Linux 中,任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行.红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新.譬如,被 locat ...
- linux crontab命令参数及用法详解--linux自动化定时任务cron
声明:本文转自Linux 安全网,在此基础上加上自己的体会! crontab 命令 如果发现您的系统里没有这个命令,在ubuntu server 中用的是 sudo apt-get install c ...
- Linux crontab命令的使用方法
crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在 ...
- linux crontab 命令
Linux 系统提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划 ...
随机推荐
- ViewPager部分源码分析二:FragmentManager对Fragment状态的管理完成ViewPager的child添加或移出
ViewPager维护child代码流程: 注:PagerAdapter 使用的是FragmentPagerAdapter类或者它的子类. viewPager.populate(): void pop ...
- 与你相遇好幸运,Sails.js自定义数据库名
在/api/models/下,自定义的.js文件内容 module.exports = { tableName: '自定义的数据库名', autoCreatedAt: false, //关闭 au ...
- SQL Server数据库大型应用解决方案总结(转载)
转载地址:http://hb.qq.com/a/20120111/000216.htm 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天百万级甚至 ...
- 攻城狮在路上(壹) Hibernate(四)--- 对象标识符(OID)生成机制
Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应.为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值.Hibe ...
- Oracle RMAN备份策略
建立增量备份:如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal .immediate . transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库 ...
- Oracle 【IT实验室】数据库备份与恢复之:如何对Oracle数据库文件进行恢复与备份
任何数据库在长期使用过程中,都会存在一定的安全隐患.对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制.当数据库发生故障后,希望能重新建立一个完整的数据 ...
- hdu 4293 2012成都赛区网络赛 dp ****
题意:有n个人,可任意分成若干组,然后每个人个各提供一个信息,表示他们组前面有多少人,后面有多少人.问最多有多少个信息是不冲突的. 将n个人看成一组区间,然后每个人的信息可以表示为该人所在组的区间,然 ...
- [Unity3d插件]EasyTouch的初步使用
对于移动平台上的RPG类的游戏,我们常用虚拟摇杆来控制人物角色的行走和一些行为,相信我们对它并不陌生,之前尝试了EasyTouch2.5,发现并没有最新版的3.1好用,2.5版本的对于自适应没有做的很 ...
- 注解:【基于外键的】Hibernate单向1->1关联
Person与Address关联:单向1->1,[基于外键的] Person.java package org.crazyit.app.domain; import javax.persiste ...
- visio如何让动态连接线的单箭头变成双箭头?
1 选中线,右击,然后选择“格式”,“线条” 2 3