为什么我会从 CRON 作业中收到该错误?

为什么我会从 CRON 作业中收到该错误?

我正在尝试编写一个 cron 脚本来检查我的 minecraft 服务器是否正在运行,以及是否已关闭以运行启动脚本。

这是我所得到的,这是我运行时得到的错误

/bin/sh: 1: Syntax error: EOF in backquote substitution

我的 CRON 文件中的行:

10,20,,30,,40,,50 * * * * cd /home/jon/FTB/FTBnew; RUNNING=grep minecraft; if [ -n "$RUNNING" ] ;then end ;else Bash ServerStart.sh

答案1

您的 cron 条目和脚本存在各种问题。

首先,您的 cron 字段(表示执行时间)的格式是错误的,您使用了双逗号,而它们应该是单逗号。此外,如果您希望每 10 分钟运行一次,这样做更简单:

*/10 * * * * 

接下来是脚本部分。正确格式化后,您的脚本如下所示:

cd /home/jon/FTB/FTBnew
RUNNING=grep minecraft
if [ -n "$RUNNING" ] ;then
 end
else Bash ServerStart.sh

grep minecraft缺少参数,并且将命令结果分配给变量的语法错误,应该是这样的:

RUNNING=`ps waux | grep minecraft`

但即使这也不完全正确,这只是一个例子。

接下来,如果满足条件if,您要执行不存在的“结束”命令。

此后,该else子句还指定了一个不存在的命令(bash无论如何它都不会存在Bash)。

最后,该if条款没有得到适当终止,所以肯定不会起作用。

您要做的事情相对简单,因此即使您刚刚开始使用 cron 和 shell 脚本,也会很容易,但我建议您先阅读一些文档,这样您就可以了解您必须做什么,并且有一个文档可以参考,以防您需要快速复习这些命令的工作原理。如果阅读本文后您仍然遇到问题,欢迎您提出意见和帮助。

首先,关于如何使用 cron 的教程:

https://help.ubuntu.com/community/CronHowto

然后是 bash 编程教程: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

相关内容