今天遇见一个问题,crontab的定时任务不能自动执行,但是手动执行脚本一直能成功。查到最后,发现是脚本里用了系统的环境变量。下面开始解释:
1.crontab与环境变量
不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。所以注意如下3点:
1)脚本中涉及文件路径时写全局路径;
2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
cat start_cbp.sh
#!/bin/sh
source /etc/profile
export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &
3)当手动执行脚本OK,但是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸,并可以尝试在crontab中直接引入环境变量解决问题。如:
0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh
2.其他应该注意的问题
1)新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。
2)每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/null 2>&1 。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件。
3)当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
4)千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。
5)在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’`。
3.rontab中的输出配置
crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。
shell命令的结果可以通过‘> ’的形式来定义输出
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么重定向输出语句的含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
分享到:
相关推荐
2进制3位数过去现在将来输赢公式代码
全国各大学在广东2021-2024各专业最低录取分数及位次表
WordPress 集网址、资源、资讯于一体的导航类主题开心版; 运行环境 PHP7.4 + MYSQL5.6
【Java学习】activemq消息中间件学习demo.zip 【Java学习】activemq消息中间件学习demo.zip 【Java学习】activemq消息中间件学习demo.zip
本资源专注于收集淘宝热销(热门)手机支架商品信息,内容涵盖商品的店铺所在省份、城市位置、商品的名称、销售价格、累积销量、单价(以人民币计价)、付款的顾客人数、是否提供包邮服务、是否为天猫平台的商品,以及相关的满减优惠情况。这些详细的数据点均来源于淘宝平台的公开透明信息,经过精确抓取和整理,旨在为分析电商平台上的新品推荐策略和消费者购买行为提供实用数据。 这些数据严格遵循淘宝平台的公开政策和隐私保护原则获取,确保了信息的合法性与合规性。然而,本资源仅作为学习参考之用,意在帮助研究人员、市场分析师或学生等理解电商领域的商品推荐机制、销售动态及市场趋势。 任何将此数据用于商业目的或其他未授权的活动都是不恰当的,甚至可能触犯相关法律条款。 在使用这些数据进行学术研究或个人学习时,用户应自觉遵守相关法律法规,尊重数据来源和版权,正确引用数据源,并不得用于任何形式的商业盈利。 注意:这是一份数据集
数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2396 标注数量(xml文件个数):2396 标注数量(txt文件个数):2396 标注类别数:1 标注类别名称:["futou"] 每个类别标注的框数: futou 框数 = 2484 总框数:2484 使用标注工具:labelImg
全国各大学在广东2021-2024各专业最低录取分数及位次表
全国各大学在广东2021-2024各专业最低录取分数及位次表
全国各大学在广东2021-2024各专业最低录取分数及位次表
建模资料
基于Java的客户管理系统源码,CRM 带小程序 CRM小程序源码 1. 前端:Vue 2. 后端:Spring boot 3. 数据库:MySQL 4.开发语言:Java CRM客户关系管理系统 客户全流程高效管理,包括客户资料管理,客户跟踪管理,订单 合同管理,回款及交付管理等功能。 后台功能展示: 1、系统管理:员工管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、日志管理 2、系统监控:在线用户、定时任务、数据监控、服务监控 3、系统工具:表单构建、代码生成、系统接口 4、平台配置:平台配置、公海规则配置 5、客户管理:公海客户、合同管理、我的客户、我的合同、回款管理 6、审批管理:客户审批、合同审批、回款审批 7、业绩管理:业绩目标、添加业绩目标 8、通讯录:全部员工信息(包括员工姓名、岗位、部门、手机号码) 9、产品管理:产品分类、产品管理 10、 日历:我的日程(包括日程提醒、休假、开会、出差) 11、 统计分析:公海客户分析、员工客户分析、客户跟进分析、合同金额分析、产品销售分析、客户销售分析
某智慧城市社区网格化初步设计方案.doc
苹果CMS泛目录黑帽SEO站群繁殖程序,是黑帽seo工作室 www.heimaoziyuan.com 新出的一款CMS泛目录站群繁殖程序,可自定义泛目录或泛域名繁殖。内容可以是采集内容、本地内容,以及GPT人工智能文章。
10米不锈钢输送设备_机械3D图Solidworks设计图.zip
一文了解javascript语言,适合小白想了解什么是JavaScript语言的同学 本文讲述javascript语言的基础,详细的学习需要系统化学习,文章最后推荐了系列书籍名称
收藏的电池电量检测的资料技术资料开发设计用的重要资料.zip
全国各大学在广东2021-2024各专业最低录取分数及位次表
全国各大学在广东2021-2024各专业最低录取分数及位次表
anti-jiyu-master
全国各大学在广东2021-2024各专业最低录取分数及位次表