我可以更改cronjob的默认PATH变量吗?

时间:2018-11-22 08:22:01

标签: cron

我正在从SuseLinux移植到CentOS

在Suse Linux中,cronjob的默认路径变量为-components 所有的应用程序脚本在Suse Linux中都可以正常工作。

现在在CentOS中,许多二进制文件已移至if let karma = endedSurvey["karma"] as? Int{ surveyW.karmaWin = karma } 目录。

现在,当这些应用程序脚本从CentOS中的cron作业运行时,它们将不起作用,因为Centos中的cron作业默认路径也是$sent = Mail::send([], [], function ($msg) use ($data) { $msg->from($data["from_address"], $data["from_name"]) ->to($data["to_address"])->subject($data["subject"])->setBody($data["body"]); if (isset($data["cc_address"])) { $msg->cc($data["cc_address"]); } if (isset($data["bcc_address"])) { $msg->bcc($data["bcc_address"]); } if (isset($data["attachment"])) { foreach($data["attachment"] as $attachment) { $msg->attach($attachment['file'],$attachment['options']); } } }); 。因此,这些Cron脚本无法访问PATH=/usr/bin:/bin/usr/sbin目录中的二进制文件。

必须使PATH=/usr/bin:/bin/sbin这样的变量 这样我所有的应用程序脚本都可以工作。

我不想更改应用程序脚本并提供这些脚本中所有二进制文件的完整路径。因为它将产生许多变化。

在安装应用程序时在Cron脚本顶部设置/usr/sbin变量,在应用程序卸载时将其删除,甚至在应用程序升级期间进行更改也似乎很繁琐。

我想知道最佳的或更少的工作解决方案 如果所涉及的更改是在应用程序方面,并且我不必在OS rpm上进行更改,那会更好。

1 个答案:

答案 0 :(得分:0)

Centos基于Redhat Enterprise Linux,该Linux使用vixie-cron。这使您可以更改crontab文件中的路径。

PATH=/usr:/usr/bin:/path/to/something/else
1 2 * * * command 

更多信息: