运行 每 15 分钟一个 crontab 在 linux redhat 上不工作
Running a crontab every 15 minutes not working on linux redhat
我想 运行 每 15 分钟执行一次 crontab。我试过这个:
0 */15 * * * ./usr/My_PATH/run.sh
但是我得到这个错误:
0 command not found
语法有问题吗?
非常感谢。
更新:
我更正了脚本并尝试了这个:
*/15 * * * * /My_Path/run.sh
还有这个
0,15,30,45 * * * * /My_Path/run.sh
在这两种情况下我都会出错。
#1 bash: */15: No such file or directory
#2 bash: 0,15,30,45 command not found
是的。
第一个字段是分钟。第二个字段是小时。您将在每 15 个小时的整点零分将其关闭。所以基本上 - 15:00 每天。
你想要:
*/15 * * * * /some_script
此外 - ./
- 这是一个相对路径,这对于 cron 来说可能是个坏主意,因为它没有 chdir
到 运行 的东西。使用绝对路径以避免混淆。如果您绝对需要在特定目录中才能使脚本工作,您可以尝试:
cd /path/to/script && ./this_script
所以很可能您的权限已损坏,或者只是没有找到您正在使用的相对路径。
如果这样:
0 */15 * * * ./usr/My_PATH/run.sh
失败并出现此错误:
0 command not found
那么您正在尝试 运行 它作为 shell 命令。您需要将其提供给 crontab
命令。有几种方法可以做到这一点。
crontab -l
将列出您的 crontab 的当前内容;它不会修改它。
crontab -e
将在文本编辑器中打开您的 crontab(的副本)并让您对其进行修改。这可能是最简单的更新方法。
crontab filename
读取指定的文件并用它的内容替换 你当前的 crontab。 (如果你已经有一个 crontab,这会悄悄地破坏它。)
我推荐的方法是保留一个包含您的 crontab 的单独文件(例如,crontab.txt
)。
首先,如果你已经有一个非空的crontab(检查crontab -l
),将它保存到文件:
crontab -l > crontab.txt
对该文件进行任何添加或其他更改,然后使用
crontab crontab.txt
安装更新的 crontab。
你可以保留备份副本(我在源代码控制系统中维护我的副本)这样你就可以在你搞砸的时候恢复。如果你想测试一些东西,你可以快速 crontab -e
,然后重新 运行 crontab crontab.txt
恢复到存储的 crontab。
你问题中 crontab 行的语法:
0 */15 * * * ./usr/My_PATH/run.sh
是正确的,但是路径./usr/My_PATH/run.sh
看起来可能不正确。 Cron jobs 运行 从你的主目录,所以只有当 usr
目录直接在你的主目录下时路径才有效(在这种情况下 ./
是不必要的)。最好指定完整路径,可以以 $HOME/
.
开头
我想 运行 每 15 分钟执行一次 crontab。我试过这个:
0 */15 * * * ./usr/My_PATH/run.sh
但是我得到这个错误:
0 command not found
语法有问题吗?
非常感谢。
更新:
我更正了脚本并尝试了这个:
*/15 * * * * /My_Path/run.sh
还有这个
0,15,30,45 * * * * /My_Path/run.sh
在这两种情况下我都会出错。
#1 bash: */15: No such file or directory
#2 bash: 0,15,30,45 command not found
是的。
第一个字段是分钟。第二个字段是小时。您将在每 15 个小时的整点零分将其关闭。所以基本上 - 15:00 每天。
你想要:
*/15 * * * * /some_script
此外 - ./
- 这是一个相对路径,这对于 cron 来说可能是个坏主意,因为它没有 chdir
到 运行 的东西。使用绝对路径以避免混淆。如果您绝对需要在特定目录中才能使脚本工作,您可以尝试:
cd /path/to/script && ./this_script
所以很可能您的权限已损坏,或者只是没有找到您正在使用的相对路径。
如果这样:
0 */15 * * * ./usr/My_PATH/run.sh
失败并出现此错误:
0 command not found
那么您正在尝试 运行 它作为 shell 命令。您需要将其提供给 crontab
命令。有几种方法可以做到这一点。
crontab -l
将列出您的 crontab 的当前内容;它不会修改它。
crontab -e
将在文本编辑器中打开您的 crontab(的副本)并让您对其进行修改。这可能是最简单的更新方法。
crontab filename
读取指定的文件并用它的内容替换 你当前的 crontab。 (如果你已经有一个 crontab,这会悄悄地破坏它。)
我推荐的方法是保留一个包含您的 crontab 的单独文件(例如,crontab.txt
)。
首先,如果你已经有一个非空的crontab(检查crontab -l
),将它保存到文件:
crontab -l > crontab.txt
对该文件进行任何添加或其他更改,然后使用
crontab crontab.txt
安装更新的 crontab。
你可以保留备份副本(我在源代码控制系统中维护我的副本)这样你就可以在你搞砸的时候恢复。如果你想测试一些东西,你可以快速 crontab -e
,然后重新 运行 crontab crontab.txt
恢复到存储的 crontab。
你问题中 crontab 行的语法:
0 */15 * * * ./usr/My_PATH/run.sh
是正确的,但是路径./usr/My_PATH/run.sh
看起来可能不正确。 Cron jobs 运行 从你的主目录,所以只有当 usr
目录直接在你的主目录下时路径才有效(在这种情况下 ./
是不必要的)。最好指定完整路径,可以以 $HOME/
.