【Jenkins稳定运维】服务器频繁崩溃?资深管理员的应对策略

简介: 本文分享了作者作为管理员在面对服务器频繁崩溃时的应对策略,包括使用Shell脚本优化运维工作、学习Jenkins Pipeline插件以及一些运维技能扩展,强调了在运维工作中不断学习和实践的重要性。
一、背景

最近工作的五年,无论何时何地工作,总之测试已经离不开干运维的工作,或许也是没有界定测试和运维的工作部分,比如说:在linux服务器需要操作某些文件或服务时,总是习惯性的写出一长穿命令来偷懒,结果如下:

. /etc/profile.d/java11.sh && for dir in `ll |grep ^d|awk '{print $9}'`;do cd $dir; mvn -s "/usr/local/maven/conf/xxxx-test.xml"   clean  package  -Dmaven.test.skip=true -Plockin-test; if [ $? -eq 0 ]; then cd ..; else exit 0; fi ; done
AI 代码解读

这要是放在别人眼里,没有编程基础或者是没有储备多少linux指令的同学来说,看起来有些费劲,那么如何优雅的体现呢?为什么又要写成一长串呢?

二、分析&实现

原因竟然是:当前脚本属于一次性的,那么如何优雅,唯shell脚本而已,将上面一长串linux命令优化如下:

#!/bin/sh
# 引申环境变量
. /etc/profile.d/maven.sh 
. /etc/profile.d/java11.sh
# 遍历目录 ^d 匹配
for dir in `ll |grep ^d|awk '{print $9}'`
  do 
    cd $dir
    # 进入目录构建服务
    mvn -s "/usr/local/maven/conf/xxxx-test.xml"   clean  package  -Dmaven.test.skip=true -Plockin-test
    # 如果构建成功则继续返回上层,否则退出
    if [ $? -eq 0 ]; then 
      # 成功叫jar包传输到服务器上
      rsync -avz target/*.jar xxxx@192.168.12.11:/home/xxxx/jar_server_java/
      cd ..
    else 
      exit 0
    fi
    # 循环、条件结束符
  done
AI 代码解读
三、苦恼又暗自欣喜

相比之前工作,通过靠兼职运维而涨薪,需要负责公司的运维工作,不管是本地环境还是云服务器,总是要忙忙碌碌,四处救火,有时呢也是清闲,所以能明白环境问题带来的忙碌,有时可能是一周,当然有人会说了,为啥需要这么久时间?呵,这个也没法解释,如果要怪就怪自己手贱,或者是没有做好备份策略。

好在现在的工作,有运维岗位了,只是可能不太熟练这些项目的部署方式和意义,所以在恢复环境过程中遇到无法解决的问题,同时需要开发和测试来协助,所以这时候题主又携带着运维技能上场了。

四、学会了新技能

题主部署过java项目、python项目,当然还有前端vue项目,不管是node管理器还是mvn构建工具,也会遇到一个个不曾见过的难题,好在都能一一找到解决方案。

学习插件:Pipeline Stage View
在这里插入图片描述
如上图所示,在没有写流水线之前,咱们一直在说CI/CD,实现的也很低级:单个服务实现git仓库与jenkins之间相互调用,但是咱们并没有直接上线,不能说开发提交代码了,然后就直接部署生产,至少中间需要经过一轮测试验证,所以题主认为正确的思路就是:开发提交代码(单元测试)–测试环境拉取代码部署–测试验证环节(接口/UI自动化)–上线生产环境–验收测试(接口/UI自动化)

pipeline {
   
   
    agent any

    environment {
   
   
        GITURL = '全局git地址'
    }

    stages {
   
   
        stage('第一个job') {
   
   
            steps {
   
   
                build job: 'test-a', parameters: [
                    [$class: 'BooleanParameterValue', name: 'confirm', value: 'true'],
                    [$class: 'GitParameterValue', name: 'commit_id', value: "${commit_id}"]
                ]
            }
        }
        stage('第二个job') {
   
   
            steps {
   
   
                build job: 'test-b', parameters: [
                    [$class: 'BooleanParameterValue', name: 'confirm', value: 'true'],
                    [$class: 'GitParameterValue', name: 'commit_id', value: "${commit_id}"]
                ]
            }
        }
    }
}
AI 代码解读

Pipeline这个流水线插件,在这次工作中学习了,突然发现它并高深,大道至简,所以工具还是工具,永远都要服从人的思想工作。

五、技能扩展
  • 系统服务service找出来,批量执行stop && start
find /lib/systemd/system -name "xxxx*"|awk -F "/" '{print $5}'|xargs systemctl stop
AI 代码解读
  • 查找文件,批量删除
 find ./xxxx*/log/*  -name "*202*" |xargs rm -rf {
   
   }/;
AI 代码解读
  • 过滤文件内容
 grep -R  xxxx-s5 */config.xml
AI 代码解读
  • 批量替换
grep -R  xxxx-s5 */config.xml |awk -F ":" '{print$1}'|xargs sed -i 's/xxxx-s5/xxxx-test/g'
AI 代码解读
目录
打赏
0
0
0
0
14
分享
相关文章
阿里云服务器实例经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i详解与选择策略
在阿里云现在的活动中,可选的云服务器实例规格主要有经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例,虽然阿里云在活动中提供了多种不同规格的云服务器实例,以满足不同用户和应用场景的需求。但是有的用户并不清楚他们的性能如何,应该如何选择。本文将详细介绍阿里云服务器中的经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例的性能、适用场景及选择参考,帮助用户根据自身需求做出更加精准的选择。
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
阿里云操作系统控制台提供了便捷的服务器监控与管理功能,简化了运维工作。通过将多台服务器纳入统一监控平台,用户可以快速查看CPU、内存、磁盘和网络等关键资源的使用情况,避免了逐一远程连接查询的繁琐操作。此外,该工具支持自动化数据汇总,极大地方便了日报、周报和月报的编写。测试过程中,系统展示了良好的稳定性和响应速度,尤其在网络抖动和大文件健康状态测试中表现出色。整体体验流畅,显著提升了运维效率。 操作系统控制台地址:[点击访问](https://alinux.console.aliyun.com/)
64 26
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
63 14
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
389 79
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
55 1
新手小白购买阿里云服务器省钱策略、配置选型与注意事项
针对初次使用阿里云服务器的用户,本文提供系统化的指导方案以优化成本并满足业务需求。首先介绍配置选型,包括实例类型(通用型、计算型、内存型)与基础配置建议;其次阐述省钱策略,如企业认证、合理选择计费模式及批量购买;最后提醒注意事项,涵盖带宽存储规划、地域网络优化及安全管理。新手可通过明确需求、选择配置、优化购买和持续监控四步快速上手,实现高效稳定的云端部署。 注:推荐配置基于2025年阿里云产品体系,具体信息请参考官网。
基于AI的自动化服务器管理:解锁运维的未来
基于AI的自动化服务器管理:解锁运维的未来
98 0
|
3月前
|
阿里云服务器批量执行命令(系统运维管理oos)
阿里云【系统运维管理oos】批量执行详情
81 5
使用阿里云服务器自动搭建WordPress网站流程,超简单by系统运维管理OOS
本教程介绍如何使用阿里云服务器(ECS)和系统运维管理OOS自动搭建WordPress网站,支持Ubuntu、CentOS及Alibaba Cloud Linux等操作系统。前提条件包括ECS实例处于运行中、有公网IP且安全组已开启80端口。安装步骤简单:进入ECS快速购买控制台选择预装WordPress,确认下单后通过管理控制台查看实例详情并开放安全组端口。最后,通过实例公网IP访问,出现WordPress登录页即表示安装成功。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等