我正在尝试编写一个 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