电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

Shell脚本用得好,日常运维不用愁

来源:金蝶云社区作者:金蝶2024-09-237

Shell脚本用得好,日常运维不用愁

在苍穹环境的日常运维中,你是否常常遇到很多重复、冗余、耗时的工作?比如日志满了、中间件异常、需要反复执行中间件的关闭、重启等操作。

灵活应用Shell脚本可以高效解决上述问题。本期文章以三个典型场景为例,为大家详细介绍Shell脚本在日常运维中的应用方法




典型应用场景


01 一个简单的重启脚本


日常运维过程中,当配置参数发生变化,或者确定服务异常原因后,需通过重启来更新环境和恢复环境。


很多服务或者中间件的重启,需找到安装目录,用命令带参数重启。但是各种软件和命令的参数繁多,记不住相关命令参数时,每次需通过help查询,且查找安装目录又特耗时。面对此情况,我们可以将复杂的命令简单化,做封装处理。


我们可以建一个常用的目录,用Shell脚本编写一个简单的脚本,直接执行脚本即可实现对服务的关闭、启动、重启。比如MC的重启,可以使用Shell脚本做进一步封装,放在自己常用的目录。当然,也可注册成系统服务,用service命令重启。脚本示例如下:


#!/bin/sh
source /etc/profile
#脚本发生错误,终止执行
set -e
cd /var/kingdee/newmc/mservice/bin
start()
{
      source ./kdservice.sh start -d
}
stop()
{
      source ./kdservice.sh stop
}
status() {
       source ./kdservice.sh status
}
debug() {
       export ENABLE_JVMDEBUG=true
       source ./kdservice.sh start -d
}
restart() {
       source ./kdservice.sh restart -d
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  debug)
    debug
    ;;
  restart|reload|force-reload)
    restart
    ;;
  status)
    status
    ;;
  *)
esac


后续MC启动的相关命令,只需一步,进入自已常用的目录,执行下述相应命令:


重启MC:sh  mcservice.sh  restart;

关闭MC:sh  mcservice.sh  stop;

查看MC状态:sh  mcservice.sh status。


                                                                              执行命令示例


02 日志清除脚本


在使用服务的过程中,会不断地产生日志,包括运行日志、启动日志、错误日志等等。随着时间的推移,日志的容量会越来越大,导致目录的容量占满,软件无法运行。


以苍穹ELK日志系统举例,当ELK日志容量满了时,该如何解决呢?



用Shell脚本来解决,so easy!


首先,编写相应的Shell脚本,示例如下:


#!/bin/sh
source /etc/profile
#步骤一:杀掉kafka的进程
ID=`ps -ef|grep kafka|grep -v “grep”|awk '{print $2}'`
for  id in $ID
do
   kill -9 $id
   echo "kill $id"
   sleep 5s
done
#步骤二:杀掉elasticsearch的进程
ID=`ps -ef|grep elasticsearch|grep -v “grep”|awk '{print $2}'`
for  id in $ID
do
   kill -9 $id
   echo "kill $id"
   sleep 5s
done
#步骤三:删掉日志
rm -rf  /var/kingdee/data/es_log/data/*
sleep 10s
rm -rf /var/kingdee/esdata/*
sleep 10s
#步骤五:启动elasticsearch
sh /var/kingdee/elk/startelasticsearch.sh
echo "elasticsearch启动成功"



接着,存储Shell脚本文件到自己常用的、熟悉的目录中。


然后,执行sh  es_log_nodes_clear.sh命令即可完成删除日志的操作,一步即可完成,且不需要记住安装目录和启动参数。


执行命令示例


如果不想每次等日志满了后才来删除日志,可以设置一个定时任务,使用crontab命令定时删除。


03 中间件的安装与升级脚本


苍穹中间件的首次安装或者后续升级安装步骤繁多?没关系,Shell脚本助你一臂之力。


比如一年前安装的ZooKeeper已不适配于现在

Shell脚本用得好,日常运维不用愁

在苍穹环境的日常运维中,你是否常常遇到很多重复、冗余、耗时的工作?比如日志满了、中间件异常、需要反复执行中间件的关闭、重启等操作。...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信