shell和ansible自动化运维实例

news2024/11/25 4:44:04

目录

1、找到java进程并kill

2、nohup启动jar包,并按日期写入log日志

3、vscode上传服务器

4、ansible-playbook的copy模块

 5、ansible-playbook的cron模块

6、ansible将文件批量推送至其他服务器的指定目录


将N台电脑上的java程序定时重启,不用每隔一段时间手工重启jar程序,同时减少在多台电脑多次部署,我使用shell和ansible配合使用,实现批量定时重启程序的自动给运维。

1、找到java进程并kill

#!/bin/bash
echo '正在关闭应用'
name="java"
PID=`ps aux|grep ${name} |grep -v "grep" | awk '{print $2}'`
echo $PID
#判断是否为空 ,为空的判断是 ["$PID"];
#此处注意都需要空格,不然会有语法错误
if [ ! -z "$PID" ]; then
    kill -9 $PID
fi

2、nohup启动jar包,并按日期写入log日志

# 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上);
# 2>&1的意思
#   这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的.
#   这就是为什么有人会写成: nohup ./command.sh >output 2>output出错的原因了
echo "启动应用"
log_dir="/usr/local/"
nohup java -jar $log_dir/api-mysql.jar > $log_dir/nohup`date -d yesterday +%Y%m%d`.log 2>&1 &

3、vscode上传服务器

注:vscode安装sftp插件。ctrl+shift+p键,打开面板,并选择sftp.config

 配置远程服务的参数

{
    "name": "My Server",
    "host": "192.168.1.1",
    "protocol": "sftp",
    "port": 22,
    "username": "root",
    "password": "root",
    "remotePath": "/usr/local/bin/",
    "uploadOnSave": false,
    "useTempFile": false,
    "openSsh": false
}

最后需要上传的文件上,右键点击 upload file,就可以上传至服务器了。

4、ansible-playbook的copy模块

---
#/etc/ansible/hosts配置sever的ip地址
- hosts: server
  remote_user: root
  gather_facts: false
  tasks:
    - name: "复制主机上的文件到目标服务器上"
      copy:
        src: "/usr/local/bin/restart.sh" #文件或文件夹
        dest: "/usr/local/" #文件夹
        owner: root
        group: root
        mode: 755

ansible的免密配置见ansible入门学习及案例_一个高效工作的家伙的博客-CSDN博客

 5、ansible-playbook的cron模块

- hosts: server
  remote_user: root
  gather_facts: false
  tasks:
    - name: cron examples
      cron: backup=true name=autobackup minute=0 hour=6 user=root job="/usr/local/magicapi/java_restart.sh"

6、ansible将文件批量推送至其他服务器的指定目录

/usr/local/bin#  ansible-playbook copy_java_restart.yml


PLAY [server] ****************************************************************************************************************************************

TASK [复制主机上的文件到目标服务器上] *******************************************************************************************************************************
ok: [192.168.1.1]
ok: [192.168.1.2]
ok: [192.168.1.3]

PLAY RECAP *******************************************************************************************************************************************
192.168.1.1              : ok=1    changed=0    unreachable=0    failed=0
192.168.1.2              : ok=1    changed=0    unreachable=0    failed=0
192.168.1.3              : ok=1    changed=0    unreachable=0    failed=0

至此shell和ansible的配合使用,自动化运维 批量定时重启程序结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

霍尔电流传感器的注意事项及其在直流列头柜中的应用

安科瑞虞佳豪 霍尔电流传感器​注意事项 (1)电流传感器必须根据被测电流的额定有效值适当选用不同的规格的产品。被测电流长时间超额,会损坏末极功放管(指磁补偿式),一般情况下,2倍的过载电流…

清华开源图文对话大模型!表情包解读有一手,奇怪的benchmark增加了

丰色 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 什么,最懂表情包的中文开源大模型出现了??! 就在最近,来自清华的一个叫VisualGLM-6B的大模型在网上传开了来,起因是网友们发现,它连表情包似乎…

物联协议整理——蓝牙BLE

最近公司很多物联设备都使用BLE蓝牙和ZigBee通信,中间对设备功耗要求很高,补充下相关知识。 蓝牙协议栈 PHY层(Physical layer物理层)。PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。PHY层做得好不好&#…

编译原理之词法分析实验(附完整C/C++代码与总结)

一、实验内容 通过完成词法分析程序,了解词法分析的过程。编制一个读单词程序,对PL/0语言进行词法分析,把输入的字符串形式的源程序分割成一个个单词符号,即基本保留字、标识符、常数、运算符、分界符五大类。 对PL/0语言进行词法…

关于VSCODE的插件 一

官方API文档 1. 要学好TypeScript。 官方教程 1.1TypeScript是一门弱类型语言。 强类型和弱类型主要是站在变量类型处理的角度进行分类的。这些概念未经过严格定义,它们并不是属于语言本身固有的属性,而是编译器或解释器的行为。主要用以描述编程语言…

IT知识百科:三大云计算模型IAAS、PAAS、SAAS

引言 云计算已经成为现代IT架构的核心组成部分,而云服务模型是构建和交付云计算服务的关键概念。在云服务模型中,IAAS、PAAS和SAAS是最常见的三种模型。 本文将深入介绍这三种模型,探讨它们的特点、优势以及在不同场景下的适用性。 IAAS&am…

MySQL学习教程

目录 一、数据库操作 1.查看数据库版本号 2.创建数据库 3.查看指定的数据库 4.查看所有的数据库 5.删除指定的数据库 6.使用指定的数据库 7.数据库存储引擎介绍 二、数据库表说明 1.数据库表常见的列类型 2.数据库表的字段属性 三、数据库表操作 1.创建数据库表 2…

APlayer MetingJS 音乐播放器使用指南

文章目录 1.引用2.安装3.APlayer 原生用法4.MetingJS 的用法 1.引用 APlayer 是一个简洁漂亮、功能强大的 Html5 音乐播放器,GitHub地址:https://github.com/DIYgod/APlayer MetingJS 是为 APlayer 添加网易云、QQ音乐等支持的插件,GitHub地…

Servlet的使用与部署

目录 Servlet概念 创建一个Servlet程序 1、创建项目 2、导入依赖 3、创建目录 4、编写代码 5、打包程序 6、部署程序 7、验证程序 Servlet概念 Servlet 是一种实现动态页面的技术 . 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app. S…

喜讯!热烈祝贺安科瑞DJSF1352-RN/D直流电能表取得UL证书

安科瑞虞佳豪 UL认证是由美国安全实验室(Underwriters Laboratories)提供的安全性认证服务。UL认证虽然不是强制的,但它是北美市场的保证,有UL标志的产品具有很高的市场认可度。 2安科瑞导轨式直流电能表 安科瑞导轨式直流电能…

visualgo学习与使用

前言:在反反复复学习数据结构和算法的过程中“邂逅”了visualgo----这款超级棒的学习网站。喜悦之情不亚于我以前玩前端时发现codepen时的快乐。 地址:https://visualgo.net/en visualgo是新加坡国立大学计算机学院一位很棒的博士老师Dr. Steven Halim …

基于M1芯片的Mac的k8s搭建

基础环境 centos8 macbook pro M1 vm vm安装centos8参考:MacBook M1芯片 安装Centos8 教程(无界面安装)_m1安装centos 8.4_Mr_温少的博客-CSDN博客 步骤 参考: MacOS M1芯片CentOS8部署搭建k8s集群_Liu_Shihao的博客-CSDN博客 所有机器前置配置 …

SSH登录和SSH免密登录

在了解ssh的时候产生了概念混淆,发现ssh登录和ssh免密登录是两码事。 可以从目的和过程对比这两个概念: 1.目的 1.1 SSH登录 简单来说就是:建立客户端和服务器之间安全的远程连接,登录远程服务器,以访问文件系统 。…

C语言——经典面试题

哈喽&#xff0c;大家好&#xff0c;今天我们来学习一道面试过程中可能会出现的一道笔试题 有这样一段代码&#xff0c;分析在VS编译器的运行结果 #include<stdio.h> int main() {int i 0;int arr[10] { 1,2,3,4,5,6,7,8,9,10 };for (i 0; i < 12; i){arr[i] 0;pr…

线性回归预测

目录 1、线性回归 2、R-Squared 1、线性回归 在机器学习和统计建模中&#xff0c;这种关系用于预测未来事件的结果 线性回归使用数据点之间的关系在所有数据点之间画一条直线 这条线可以用来预测未来的值 在机器学习中&#xff0c;预测未来非常重要。比如房价、股票等预测 …

Docker核心组件

Docker核心组件 -镜像 Docker Registry 镜像仓库 (Docker Registry) 负责存储、管理和分发镜像&#xff0c;并且提供了登录认证能力&#xff0c;建立了仓库的索引。 镜像仓库管理多个 Repository&#xff0c; Repository 通过命名来区分。每个 Repository 包含一个或多个镜像…

UI自动化测试用例管理平台搭建

用到的工具&#xff1a;python3 django2 mysql RabbitMQ celery selenium python3和selenium这个网上很多教程&#xff0c;我不在这一一说明&#xff1b; 平台功能介绍&#xff1a; 项目管理&#xff1a;用于管理项目。每个项目可以设置多个环境&#xff0c;例如开发环境…

winpcap 发包工具

本工具主要用来进行网络协议的调试&#xff0c;主要方法是&#xff0c;对现场数据抓包&#xff0c;然后将数据包带回交给开发人员&#xff0c;开发人员将该数据包重新发送和处理&#xff0c;模拟现场环境以便于调试和分析。 &#xff08;一&#xff09;使用方法 命令行下输入s…

linux0.12-10-chr_drv

[466页] 第10章 字符设备驱动程序 466–10-1-总体功能 466–10-1-1-终端驱动程序基本原理 467–10-1-2-Linux支持的终端设备类型 468–10-1-3-终端基本数据结构 472–10-1-4-规范模式和非规范模式 473–10-1-5-控制台终端和串行终端设备 476–10-1-6-终端驱动程序接口 476–…

【微信小程序】如何获取用户手机号授权登录

一. 前置条件 目前该接口针对非个人开发者&#xff0c;且完成了认证的小程序开放&#xff08;不包含海外主体&#xff09;&#xff0c;也就是说只针对企业认证小程序开放。若用户举报较多或被发现在不必要场景下使用&#xff0c;微信有权永久回收该小程序的该接口权限。在使用…