【问题标题】:GoDaddy Cron Job issue with Shell and Perl ScriptShell 和 Perl 脚本的 GoDaddy Cron 作业问题
【发布时间】:2012-10-03 07:23:30
【问题描述】:

我在我的 GoDaddy 服务器上创建了一个名为“SponUpdate.sh”的 Cron 作业

这是这个文件的代码

#!/bin/bash

/usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponFRJ.pl
/usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponMGJ.pl
/usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponCAD.pl
/usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponCJB.pl

现在的问题是,当这个 cron 作业运行时,它说我跟随错误,

“/bin/sh: /var/chroot/home/content/14/5959214/html/cgi/SponUpdate.sh: /bin/bash: 错误解释器:权限被拒绝”

这里是 Perl 文件“JLLoadSponFRJ.pl”之一的代码

my $command = '/web/cgi-bin/php5 -q $HOME/html/GISJobs/JLLoadSpon.php';
exec ($command) or print STDERR "couldn't exec $command: $!";

我无法从过去 3 天解决它,

请帮帮我,

提前致谢,

问候,

【问题讨论】:

  • 似乎很明显...Permission denied。请联系您的管理员。
  • 我问过 Godaddy 团队,但没用,他们让我准备好支持链接 这是一个链接:什么是 Cron Job?。
  • 尝试在脚本中从 bash 更改为 sh。也许你没有 bash 的权限,但是有 sh 的权限。
  • 在这个地方? #!/bin/bash #!/bin/bash#!/bin/sh ?
  • 这个脚本有执行(运行)的权限,对吧? chmod +x SponUpdate.sh 如果不是这样,那么我认为您将支持 GoDadddy。

标签: php perl cron cgi shellexecute


【解决方案1】:

您可以使用

检查 bash 路径
which bash
然后你可以更正 perl 脚本的 shebang !#/bin/bash。

【讨论】:

  • 感谢您的回答,请告诉我如何使用此脚本? which bash 我怎么看回复?因为我是 PHP 开发人员
  • 这是一个unix程序;您需要一个终端帐户才能使用此程序。
  • 如何查看unix程序?正如我已经告诉过你的,我对 UNIX 等不太熟悉
  • @shabi: 当你在终端输入 php -v 时会给出版本号和 cli 模式支持吗?
【解决方案2】:

因此,您正在启动一个 cron 作业,该作业运行一个 bash 脚本,该脚本调用一些调用 php.ini 的 perl 脚本。为什么不直接从cron调用php呢?

检查您的 bash 脚本是否包含“\r\n”行结尾:您可能正在尝试调用“/bin/bash\r”而不是“/bin/bash”

【讨论】:

  • 这是我的代码 请检查是否有 ny \r 或 \n #!/bin/bash /usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponFRJ.pl /usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponMGJ.pl /usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponCAD.pl /usr/bin/perl /home/content/14/5959214/html/cgi/JLLoadSponCJB.pl
  • 实际上不在 .sh 文件中添加 PHP 脚本的原因是代码超过 2000 行和数据库连接等
猜你喜欢
  • 2021-11-16
  • 2016-11-07
  • 2023-03-06
  • 1970-01-01
  • 2012-03-02
  • 2016-11-16
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
相关资源
最近更新 更多