gpt4 book ai didi

linux - Crontab 源文件

转载 作者:IT王子 更新时间:2023-10-29 00:37:05 27 4
gpt4 key购买 nike

最近我创建了一个 bash 脚本,我应该在 cron 中运行它。

准备好bash脚本并正常运行后,我将其放入Cron中,发现它失败了。作为第二步,我删除了所有环境依赖项,即我指定的不是 file.txt,而是 /home/blah-blah/file.txt

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

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

我的问题是为什么即使在我从我的脚本中删除了所有环境依赖性之后仍会发生这种情况。我还听说不建议将 cron 作业采购到 bash 配置文件。如果是这样,有没有其他方法可以避免这样做。

最佳答案

基本上:从 cron 开始的任何事情都以完全干净的方式开始。在从 cron 运行的任何脚本开始时,您不能对环境变量的内容或哪个文件夹是当前文件夹做出任何假设。

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

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

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

关于linux - Crontab 源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com