Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux cron作业不是';t运行_Linux_Cron_Ubuntu Server - Fatal编程技术网

linux cron作业不是';t运行

linux cron作业不是';t运行,linux,cron,ubuntu-server,Linux,Cron,Ubuntu Server,我有一个Ubuntu服务器10 在根cron上,我有一个脚本每天在同一时间运行 手动运行脚本可以正常运行,但在cron中不会运行 在系统日志中,我得到了以下信息: Aug 23 09:22:01 database CRON[6884]: (root) CMD (./bkp.sh >> /tmp/bkp.log) Aug 23 09:22:01 database CRON[6883]: (CRON) error (grandchild #6884 failed with exit st

我有一个Ubuntu服务器10

在根cron上,我有一个脚本每天在同一时间运行

手动运行脚本可以正常运行,但在cron中不会运行

在系统日志中,我得到了以下信息:

Aug 23 09:22:01 database CRON[6884]: (root) CMD (./bkp.sh >> /tmp/bkp.log)
Aug 23 09:22:01 database CRON[6883]: (CRON) error (grandchild #6884 failed with exit status 2)

我找到了问题的可能根源,我在脚本中添加了一些日志(echo)

在脚本执行期间,它在“函数”定义中退出…

看来我无法使用命令“功能”


如何解决这个问题?

cron启动的Shell脚本必须仔细指定它们运行的环境。在
cron
中运行的shell将是非交互式的,这意味着它们将不会读取
/etc/profile
,其中
$PATH
通常是设置的。这意味着您需要指定脚本中调用的所有可执行文件的路径


如果您运行了大量的cron脚本,那么编写一个小型shell脚本是值得的,它将定义并导出脚本中要使用的环境变量,从
$PATH

开始,这是我在谷歌搜索“cron环境变量”时得到的一个示例。这可能会有帮助。还有许多其他类似的工具:)

将脚本放在下面的目录中,它应该每天运行

/etc/cron.daily/

cron环境与登录shell环境不同。系统环境变量是不同的,比如路径和库搜索路径。您的脚本可能使用了从cron运行时不可用的东西。我如何解决这个问题?我可以指定运行作业的用户吗?另请参阅另一个think。。。最近我尝试用“sudo su”和“passwd”更改su密码。。。。运行此命令后,我注意到没有任何效果。。。。这可能是我的cron作业问题的原因吗?对我来说,这听起来不像是编程问题。这是一个服务器故障作业。cron 100%正常工作,但是。。。。最近我尝试用“sudo su”和“passwd”更改su密码。。。运行此命令后,我注意到su密码仍然保持不变,但没有任何效果。。。我忽略了这一点,现在我有问题了。。。