【问题标题】:How to fix crontab issue with end of file unexpected in script如何解决脚本中意外文件结尾的 crontab 问题
【发布时间】: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?只需使用*

标签: linux bash cron


【解决方案1】:

所以我想通了 而不是 #!/bin/bash 我使用 #!/usr/bin/env bash 是不是很奇怪?

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 2016-11-24
    • 2017-08-02
    • 2015-04-18
    • 2018-09-01
    • 2020-04-14
    • 1970-01-01
    • 2017-08-06
    • 2023-03-14
    相关资源
    最近更新 更多