我目前有一个脚本设置为每6小时运行一次(0000,0600,1200,1800),重新启动在分离的GNU屏幕中运行的Minecraft服务器。
我想创建一个小时运行的脚本,它将显示下次重启的剩余时间。
I.E。:重新启动后,脚本每隔一小时将剩余时间发送到屏幕会话,该会话将解释并将其打印到服务器。
目前每小时的脚本看起来像这样,但我有一种感觉,我会在下午6点后遇到问题:
HOUR=`echo $(($(date +%H) - 6))`
tleft=`echo $((12 % $HOUR))`
screen -X setenv remain "$tleft"
screen -X readbuf $remain
screen -x minecraft -X eval 'stuff "say The Server will restart in $remain hours"\015'
screen -x minecraft -X eval 'stuff "save-all"\015'
感谢任何帮助,谢谢
答案 0 :(得分:0)
不知道为什么我之前没有想到这个,但是简单的if语句解决了我的问题:
hour=`echo $(date +%I)`
if [[ $hour -lt 6 ]];
then
tleft=$((6 - $hour))
else
tleft=$((12 - $hour))
fi
screen -X setenv saystring "Server will restart in $tleft hour(s)"
screen -X readbuf $saystring
screen -x minecraft -X eval 'stuff "say $saystring"\015'
screen -x minecraft -X eval 'stuff "save-all"\015'