1

我在我的红帽服务器上制作了一个 shell 脚本,需要每分钟运行一次。我的脚本位于/media. 我已经像这样编辑了 crontab:

* * * * * /media/statusshellscript.sh

我的脚本肯定在上面的位置,我知道 5 星意味着每分钟运行一次。

哦..我的脚本肯定有效!因为当我做一个 ./statusshellscript 它工作正常。无论如何,这是我的脚本,它基本上只是运行我制作的一个让生活更轻松的 php 脚本。

#!/bin/bash
# Script to execute the PHP Script

cd ~
cd /media/PHPServerTest
php -f index.php

Crontab 目前完全没有做任何事情。不确定接下来要尝试什么?

另外..权限不应该像我所做的那样成为问题chmod 777 statusshellscript

4

3 回答 3

1

如果它不是通过cronjob运行,而是通过命令运行正常,那么可能有两个原因

1)你从来没有让你的文件可执行,你可以使用命令解决我的问题

sudo chmod +x filename 

2)您的路径不正确,要查找绝对路径,您可以使用命令

realpath(filename)

如果尚未安装realpath,它将向您提及如何安装它的命令

通过检查这些点,它应该可以正常工作。

于 2012-09-18T14:20:36.733 回答
0

PATHcrontab 与 shell 中的不同。

确保PATH在 crontab 中定义了包含脚本所需的所有内容的 a。

此外,请确保脚本以#!指向所需外壳的有效标记开头。

或者,使用脚本中所有命令的完整路径。

于 2012-09-18T14:14:50.900 回答
0

正如其他人所说,我敢打赌 PATH 配置错误。尝试将其放入您的路径中:

“* * * * * /media/statusshellscript.sh”

运行脚本时检查该输出文件以查看 PATH。与其在 crontab 中定义 PATH,不如在脚本中定义它。

于 2012-09-18T14:51:31.387 回答