记录一下Linux 执行sh 文件遇到的问题

本文介绍如何编写一个shell脚本来重启MySQL服务,包括添加sudo权限、避免误导计数的命令,并处理启动失败和日志记录。重点在于正确检查mysqld进程并根据状态采取相应措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我写好了一个shell 文件,目的是重启MYSQL 服务的,设置定时任务 死活都不启动,原因执行命令前面没有 增加 sudo,还有一个 就是 千万千万 不要 echo ps -C mysqld --no-heading|wc -l,因为永远输出的都是 1,你会怀疑人生,正确的是直接出入该命令即可。

[root@iZwz9awp0ba3zv4nee3q1gZ check_mysqld]# ps -C mysqld --no-heading|wc -l
1
[root@iZwz9awp0ba3zv4nee3q1gZ check_mysqld]# 
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算mysqld进程数量
n=`ps -C mysqld --no-heading|wc -l`
echo "hahaha $n" >> /home/text.txt
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        sudo service mysqld start  # 注意这里 如果不加 sudo 是无法执行命令的,会导致启动服务失败
        n2=`ps -C mysqld --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d mysqld down,mysql will stop" >> /usr/local/check_mysqld/log/mysqld_start_up.log
        fi
fi

记得在shell 脚本中。需要执行命令时候,一定要加 sudo

定时任务 日志 cat /var/log/cron

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值