在共享服务器 OVH 上以 cron 的形式执行 Symfony 命令
Execute Symfony Command as a cron on mutualised server OVH
我想在 OVH 共享服务器上执行 Symfony3 命令,但我仍然遇到错误。
我创建了一个 sh 脚本 "verifyCampaign.sh" 并输入 www/cron :
#!/bin/bash
cd /home/siteName/www/
/usr/local/php7.0/bin/php /home/siteName/www/bin/console app:verify-campaign
我知道 OVH 找到了我的脚本,因为我在 cron 日志中有以下信息:
[2017-06-17 04:38:01] ## OVH ## START - 2017-06-17 04:38:01.601227 executing: /homez.76/siteNamesrd/./www/cron/verifyCampaign.sh
[2017-06-17 04:38:01] ## OVH ## ERROR command '/homez.76/siteNamesrd/./www/cron/verifyCampaign.sh' must be executable
[2017-06-17 04:38:01]
[2017-06-17 04:38:01] ## OVH ## END - 2017-06-17 02:38:01.725728 exitcode: 255
但是为什么它告诉我这个错误?当我在控制台在线尝试我的命令时,它运行良好
编辑
在 chmod 777 中我有一个新错误:
[2017-06-20 14:53:01] ## OVH ## START - 2017-06-20 14:53:01.977160 executing: /homez.76/siteName/./www/cron/verifyCampaign.sh
[2017-06-20 14:53:01] /homez.76/siteName/./www/cron/verifyCampaign.sh: line 2: cd: /home/siteName/www/: No such file or directory
[2017-06-20 14:53:01] Could not open input file: /home/siteName/www/bin/console
[2017-06-20 14:53:01]
[2017-06-20 14:53:01] ## OVH ## END - 2017-06-20 12:53:02.165789 exitcode: 1
我现在要尝试不同的路径。所以问题似乎出在脚本的正确位置
编辑 - 改进答案
正如接受的答案中所说,问题是脚本文件的访问权限。
对于另一个问题,在 ovh 中访问文件夹的正确路径是:
/homez.id/SiteUserName/www/
在我的例子中 id = 76
所以如果你想执行 Symfony3 命令,你必须这样做:
#!/bin/bash
cd /homez.id/siteUserName/www/
/usr/local/php7.0/bin/php /homez.id/siteUserName/www/bin/console your:commandName
就我而言,your:commandName = app:verify-campaign
它告诉您脚本没有设置执行位以允许 运行 它的 cron 用户执行它。你需要使用 chmod 来做到这一点。这可能有点矫枉过正,但是:
chmod ugo+x verifyCampaign.sh
一定会处理的。
我想在 OVH 共享服务器上执行 Symfony3 命令,但我仍然遇到错误。
我创建了一个 sh 脚本 "verifyCampaign.sh" 并输入 www/cron :
#!/bin/bash
cd /home/siteName/www/
/usr/local/php7.0/bin/php /home/siteName/www/bin/console app:verify-campaign
我知道 OVH 找到了我的脚本,因为我在 cron 日志中有以下信息:
[2017-06-17 04:38:01] ## OVH ## START - 2017-06-17 04:38:01.601227 executing: /homez.76/siteNamesrd/./www/cron/verifyCampaign.sh
[2017-06-17 04:38:01] ## OVH ## ERROR command '/homez.76/siteNamesrd/./www/cron/verifyCampaign.sh' must be executable
[2017-06-17 04:38:01]
[2017-06-17 04:38:01] ## OVH ## END - 2017-06-17 02:38:01.725728 exitcode: 255
但是为什么它告诉我这个错误?当我在控制台在线尝试我的命令时,它运行良好
编辑
在 chmod 777 中我有一个新错误:
[2017-06-20 14:53:01] ## OVH ## START - 2017-06-20 14:53:01.977160 executing: /homez.76/siteName/./www/cron/verifyCampaign.sh
[2017-06-20 14:53:01] /homez.76/siteName/./www/cron/verifyCampaign.sh: line 2: cd: /home/siteName/www/: No such file or directory
[2017-06-20 14:53:01] Could not open input file: /home/siteName/www/bin/console
[2017-06-20 14:53:01]
[2017-06-20 14:53:01] ## OVH ## END - 2017-06-20 12:53:02.165789 exitcode: 1
我现在要尝试不同的路径。所以问题似乎出在脚本的正确位置
编辑 - 改进答案
正如接受的答案中所说,问题是脚本文件的访问权限。
对于另一个问题,在 ovh 中访问文件夹的正确路径是:
/homez.id/SiteUserName/www/
在我的例子中 id = 76
所以如果你想执行 Symfony3 命令,你必须这样做:
#!/bin/bash
cd /homez.id/siteUserName/www/
/usr/local/php7.0/bin/php /homez.id/siteUserName/www/bin/console your:commandName
就我而言,your:commandName = app:verify-campaign
它告诉您脚本没有设置执行位以允许 运行 它的 cron 用户执行它。你需要使用 chmod 来做到这一点。这可能有点矫枉过正,但是:
chmod ugo+x verifyCampaign.sh
一定会处理的。