加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Crontab源文件

发布时间:2020-12-13 22:46:59 所属栏目:Linux 来源:网络整理
导读:最近我创建了一个bash脚本,我应该在cron中运行. 在准备好bash脚本及其正常工作之后,我把它放在Cron中,发现它失败了.和第二步一样,我删除了所有的环境依赖,而不仅仅是file.txt,我指定了/home/blah-blah/file.txt 我仍然发现脚本仍然失败了一步.该步骤是一种数
最近我创建了一个bash脚本,我应该在cron中运行.

在准备好bash脚本及其正常工作之后,我把它放在Cron中,发现它失败了.和第二步一样,我删除了所有的环境依赖,而不仅仅是file.txt,我指定了/home/blah-blah/file.txt

我仍然发现脚本仍然失败了一步.该步骤是一种数据处理工具.
我执行的命令是/ bin / blah-blah / processing_tool -parameter $INDEX,其中$INDEX是在bash脚本中计算的变量.

第三步是在bash脚本的开头添加bash配置文件作为源.瞧!!!!该脚本从cron开始完美执行.

我的问题是,为什么即使在我从脚本中删除了所有环境依赖项后,这种情况也会发生.我也听说不建议将bron作业转换为bash配置文件.如果是这样,有没有其他方法可以避免这样做.

解决方法

基本上:从cron开始的任何东西都以完全干净的方式开始.
您不能对环境变量的内容或任何从cron运行的脚本开头的当前文件夹中的任何文件夹做任何假设.

最简单的解决方案
cd到所需的目录,以确保您的路径在所需的位置.
源/ etc / profile确保您获得系统范围的环境变量设置.
source~myuserid / .profile来读取您的个人环境设置. (?/ .profile将不起作用,因为它表示cron用户.)
然后开始执行实际的脚本.
当然,上面的方法要求cron进程具有对你的home-dir的读访问权,并且它可能正在做更多的实际需要的工作.

稍微复杂一点:找出脚本需要哪些环境变量以及脚本调用的任何内容.
在cron脚本的开头显式导出这些.

(P.s.将/ etc / profile和~myuserid / .profile替换为您选择的shell的相应文件.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读