gpt4 book ai didi

linux - Crontab 以不同方式执行脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:45 24 4
gpt4 key购买 nike

我有一个脚本可以检查 MySQL 服务是否正在我的 Linux 服务器上运行。如果我手动运行脚本它工作正常,但是当 crontab 运行脚本时它会得到不同的结果..

这是我的脚本:

#! /bin/sh

TODAY=$(/bin/date)

UP=$(/sbin/service mysql status| /bin/grep 'SUCCESS' | /usr/bin/wc -l);
if [ "$UP" -ne 1 ];
then
echo "mysql not working, Date: $TODAY" >> /scripts/sql_log.txt;
sudo /bin/mail -s "MySql is DOWN" mail@mail.com < /dev/null
sudo /sbin/service mysql start

else
echo "mysql is working, Date: $TODAY" >> /scripts/sql_log.txt;
fi

我正在使用命令的完整路径..我 100% 不理解的唯一部分是:

if [ "$UP" -ne 1 ];

这是什么-ne 1?

所以在这种情况下 MySQL 正在运行:如果我手动运行脚本,它会在日志文件中显示 MySQL 正在运行。但是crontab只是在日志文件中写明MySQL没有运行(即使它正在运行)并且它不发送任何邮件或其他东西

如果 mysql 服务停止并且我手动运行脚本,它会给我发送一封电子邮件并按预期启动服务...

有什么想法吗?

最佳答案

现在可以用了..看起来问题是因为我没有写命令的完整路径..这是我现在使用的脚本,它正在运行:

#! /bin/sh
UP=$(/sbin/service mysql status| /bin/grep 'SUCCESS' | /usr/bin/wc -l);
if [ "$UP" -ne 1 ];
then
sudo /bin/mail -s "MySql is DOWN" mail@mail.com < /dev/null
sudo /sbin/service mysql start
fi

关于linux - Crontab 以不同方式执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29627404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com