【发布时间】:2021-09-06 08:09:59
【问题描述】:
我编写了一个脚本来检查某些服务是否处于活动状态并重新启动服务。 该脚本在手动运行时有效,但当添加到 crontab 时它不起作用,当我检查我得到的日志时
/bin/sh: 1: Syntax error: end of file unexpected
这是我的脚本
#!/bin/bash
echo "Checking odoo services"
sudo service odoo13 status | grep 'active (running)' > /dev/null 2>&1
if [ $? != 0 ]
then
echo "Odoo not running restarting..."
sudo service odoo13 restart > /dev/null
fi
echo "Checking nginx services"
sudo service nginx status | grep 'active (running)' > /dev/null 2>&1
if [ $? != 0 ]
then
echo "Nginx inactive restarting"
sudo service nginx restart > /dev/null
fi
我将 crontab 设置为每分钟运行一次
*/1 * * * * /opt/check_services.sh > /dev/null 2>
我不知道,似乎是什么问题?
【问题讨论】:
-
删除
> /dev/null 2>。 -
或将
2>更改为2>&1,就像在您的脚本中一样。 -
顺便说一句,如果您不想打印
grep的输出,请使用-q选项而不是重定向到/dev/null。 -
为什么最后是
2>? -
为什么是
*/1?只需使用*