|
|
1
351
将此添加到您的cron中:
运行后,请执行以下操作:
这假定cron运行/bin/sh,这是默认值,而不管用户的默认shell是什么。 |
|
|
2
60
cron默认情况下只提供此环境:
如果需要更多,可以在crontab中的调度表之前定义环境的脚本。 |
|
|
3
42
几种方法:
|
|
|
4
21
你可以运行:
这将在空环境下运行_命令。 |
|
|
5
13
取决于账户的外壳
或
从 http://matthew.mceachen.us/blog/howto-simulate-the-cron-environment-1018.html |
|
|
6
12
六年后的回答:环境不匹配问题是
导致cron作业在手动传递时失败的最常见问题是限制性默认值
相比之下,默认
因此,有更好的机会,一个SystemD计时器将找到一个二进制文件,而无需进一步的麻烦。 SystemD计时器的缺点是设置它们的时间稍微长一些。首先创建一个“服务”文件来定义要运行的内容,然后创建一个“计时器”文件来定义运行它的计划,最后“启用”计时器来激活它。 |
|
|
7
10
创建一个运行env并将stdout重定向到文件的cron作业。 使用“env-”旁边的文件创建与cron作业相同的环境。 |
|
|
8
3
别忘了,因为cron的父级是init,所以它运行的程序没有控制终端。你可以用这样的工具来模拟: |
|
|
9
2
默认情况下,
最好的做法是确保您的脚本具有它们需要的内容,并假定没有为它们提供任何内容。因此,您应该使用完整的目录规范并设置环境变量,例如
|
|
|
10
1
我发现的另一个简单方法(但可能很容易出错,我仍在测试)是在您的命令之前获取用户的配置文件。 编辑a/etc/cron.d/脚本:
会变成:
很脏,但这让我的工作完成了。有没有模拟登录的方法?只是一个你可以运行的命令?
编辑:这似乎是一个坚实的解决方案: http://www.epicserve.com/blog/2012/feb/7/my-notes-cron-directory-etccrond-ubuntu-1110/
|
|
|
11
0
回答
https://stackoverflow.com/a/2546509/5593430
演示如何获取cron环境并将其用于脚本。但是请注意,环境可能因使用的crontab文件而异。我创建了三个不同的cron条目,通过
1.具有根用户的全局/etc/crontab
2。根目录的用户crontab(
|
|
|
12
-7
我不相信有,我知道测试cron作业的唯一方法就是设置它在未来运行一两分钟,然后等待。 |
|
|
w113msh · 提取未设置脚本的变量名 2 年前 |
|
|
deep · 分析csv文件以将详细信息添加到xml文件 2 年前 |
|
|
c0d3rbox · 如何在Python脚本中加载yaml文件? 2 年前 |
|
|
Community wiki · Bash脚本创建到共享库的符号链接 2 年前 |