当前位置: 首页 > news >正文

如何一键完成20个Oracle实例运维脚本部署

在日常的运维工作中,常常是一个人需要管理维护数个数十个数据库实例,如果是开源类集群如mysql,PG等可能更多;在没有商业的集中管理平台的情况下,如何快速的部署监控或者运维脚本,是一个值得探讨的问题,这里博主以一个简单的示例来演示如何快速一次性给20个实例部署运维脚本。

前面我发布了一个自动检查tablespace空间使用率,并再超过阈值时自动添加数据文件的脚本,具体参考链接如下:

Oracle自动处理表空间不足脚本-CSDN博客

更多的监控脚本可以参考如下:

oracle常用监控脚本(纯干货,没有EMCC,ZABBIX也不怕)_oracle 监控及日常处理脚本-CSDN博客

我这里就来演示如何一次性将这个脚本部署到全部20个数据库实例中

1. 选择一台集中部署服务器

这台部署服务器要和所有数据库实例网络通,ssh端口通,我这里选择了EMCC服务器,为了管理实例EMCC服务器已经和所有数据库实例打通了网络。如何部署EMCC可以参考如下文档
EMCC13.5安装配置手册(详细版)-CSDN博客

2. 配置互联互通

配置互联互通一般有两种方式,一种是类似Oracle11g RAC配置节点间免密登陆;我个人认为比较麻烦一下,但是配置好之后 后期会比较方便;我这里选择使用sshpass,

sshpass 是一个用于在命令行中非交互式提供 SSH 密码的工具,特别适合自动化脚本。它允许用户在 SSH、SCP 等命令中通过参数提供密码,从而省去手动输入的过程。

安装# Ubuntu/Debiansudo apt-get install sshpass# CentOS/RHELsudo yum install sshpass#ssh登陆格式sshpass -p "your_password" ssh user@hostname#ssh传输文件格式sshpass -p "your_password" scp localfile.txt user@hostname:/remote/path

3.配置需要部署的IP列表

#设置需要部署的ip list #格式为ip osuser password sshport10.xxx.xx.xxx oracle xxxxx 22

图片

4.初次部署需要手动scp一下

昨天实验时sshpass一直无法正常传输数据,但是sshpass没有报错,后来发现要先scp 接受一下

#首次部署需要scp接受RSA key,后面再次部署就可以使用sshpass了[oracle@orcoem01 jobs]$  scp  "/home/oracle/jobs/auto_add_dbf.sh" "oracle@10.xxx.xxx.xxx:/home/oracle/jobs/"The authenticity of host '10.219.40.231 (10.219.40.231)' can't be established.RSA key fingerprint is SHA256:RTS5x8jB3sOKNeKwN4jOH+iISwAZfgWf4WmJTT4rXc0.RSA key fingerprint is MD5:c0:06:94:bd:35:1b:f9:4c:b7:d7:10:0a:e7:22:f5:56.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '10.xxx.xxx.xxx' (RSA) to the list of known hosts.oracle@10.xxx.xxx.xxx'auto_add_dbf.sh

5.自动化部署脚本

这里自动化部署自动加tablespace数据库文件脚本,

[oracle@szsplorcoem01 jobs]$ cat deploy_auto_add_dbf.sh #!/bin/bash
# 配置文件路径CONFIG_FILE="list.txt"#需要部署的脚本,SCRIPT_FILE="auto_add_dbf.sh"#设置crontab 参数CRON_SCHEDULE="0 8 * * *"  # 每天早上8点00分执行一次
# 检查 list.txt 和 auto_add_dbf.sh 文件是否存在if [[ ! -f "$CONFIG_FILE" ]]; then    echo "配置文件 $CONFIG_FILE 不存在!"    exit 1fi
if [[ ! -f "$SCRIPT_FILE" ]]; then    echo "脚本文件 $SCRIPT_FILE 不存在!"    exit 1fi
# 将配置文件内容读入数组mapfile -t servers < "$CONFIG_FILE"
# 遍历数组中的每一行 抓取ip和用户信息等for server in "${servers[@]}"; do    # 解析 IP、用户名、密码和端口    IP=$(echo "$server" | awk '{print $1}')    USERNAME=$(echo "$server" | awk '{print $2}')    PASSWORD=$(echo "$server" | awk '{print $3}')    PORT=$(echo "$server" | awk '{print $4}')    PORT=${PORT:-22}  # 如果没有指定端口,则默认为22
    # 使用 sshpass 自动登录并执行命令    echo "连接到 $IP 并部署脚本..."
    # 复制脚本到远程主机 目标路径根据个人需要设定    sshpass -p "$PASSWORD" scp -P "$PORT" "$SCRIPT_FILE" "$USERNAME@$IP:/home/oracle/jobs"
    # 在远程主机上设置 cron 任务    sshpass -p "$PASSWORD" ssh -p "$PORT" "$USERNAME@$IP" "(crontab -l 2>/dev/null; echo \"$CRON_SCHEDULE /bin/bash /home/oracle/jobs/$SCRIPT_FILE\") | crontab -"
    echo "在 $IP 上成功部署并配置了自动任务。"
done

6.脚本执行结果
有部分IP 或者端口不通或者用户名密码不对 导致失败

图片

到目标主机检查部署情况
确认脚本文件被传输到目标主机

图片

确认crontab 已经正常添加,并确认脚本可以正常执行

批量化执行的脚本需要有普适性,也就是不需要修改脚本,这里auto_add_dbf.sh 通过抓取/home/oracle/.bash_profile来获取sid和oracle home信息等

图片

这里只是一个范例,如果脚本需要定制化修改,也可以通过抓取主机上的信息来自动修改脚本实现批量部署,希望能帮助到大家。

相关文章:

如何一键完成20个Oracle实例运维脚本部署

在日常的运维工作中&#xff0c;常常是一个人需要管理维护数个数十个数据库实例&#xff0c;如果是开源类集群如mysql&#xff0c;PG等可能更多&#xff1b;在没有商业的集中管理平台的情况下&#xff0c;如何快速的部署监控或者运维脚本&#xff0c;是一个值得探讨的问题&…...

【C++刷题】力扣-#598-区间加法 II

题目描述 给你一个 m x n 的矩阵 M和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] [ai, bi] 意味着当所有的 0 < x < ai 和 0 < y < bi 时&#xff0c; M[x][y] 应该加 1。 在 执行完所有操作后 &#xff0c;计算并返回 矩阵中最大整数的个数 。 示…...

优雅的LUA数据记录方法-serpent序列化+LUA Table

目录 简述如何集成&#xff1f;如何使用序列化 反序列化 参考 简述 项目里需要使用LUA脚本将数据记录到文件&#xff0c;要方便的增加、查找、删除&#xff0c;要方便的加载与存回。 使用序列化/反序列化 lua table可以很容易实现这些功能。 序列化将table转换为字符串 反序列…...

初始JavaEE篇——多线程(4):wait、notify,饿汉模式,懒汉模式,指令重排序

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 wait、notify 方法 多线程练习 单例模式 饿汉模式 懒汉模式 指令重排序 wait、notify 方法 wait 和 我们前面学习的sleep…...

Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)

0x01 产品简介 Apache Solr是一个开源的搜索平台,基于流行的Apache Lucene库构建。它提供了一个强大的全文搜索功能,能够快速处理大量数据,并支持复杂的搜索操作。并且是一个独立的企业级搜索应用服务器,它采用Java开发,并基于Apache Lucene实现。Solr提供了类似于Web-Se…...

C#整合Ollama实现本地LLMs调用

前言 近两年AIGC发展的非常迅速&#xff0c;从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型&#xff0c;再到后来的小参数模型&#xff0c;从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化&#xff0c;还有模型的使用方式。…...

C++基于opencv的视频质量检测--图像抖动检测

文章目录 0.引言1. 原始代码分析2. 优化方案3. 优化后的代码4. 代码详细解读 0.引言 视频质量图像抖动检测已在C基于opencv4的视频质量检测中有所介绍&#xff0c;本文将详细介绍其优化版本。 1. 原始代码分析 首先&#xff0c;我们来看图像抖动检测的原始代码&#xff1a; …...

Cuda By Example - 11 (Texture Memory 2-D)

跟1D一样&#xff0c;2D的代码也没有运行过。旧的方法看看就好。 声明二维Texture texture<float, 2> texConstSrc; texture<float, 2> texIn; texture<float, 2> texOut; 访问二维Texture 使用2D的Texture的便利性体现在blend_kernel函数里。不再需要通…...

Go匿名结构体使用场景

1. 定义 在 Go 语言中&#xff0c;匿名结构体&#xff08;Anonymous Struct&#xff09;是一种没有显式命名的结构体类型。你可以直接在代码中定义并使用匿名结构体&#xff0c;而不需要为其定义一个单独的类型名称。匿名结构体通常用于临时数据结构或一次性使用的场景。 匿名…...

Vue 发布十年了!你知道我这十年是怎么过的吗?

2014 年 2 月 3 日&#xff0c;Vue 在 Hacker News 上首次亮相。十年后的今天&#xff0c;Vue 已经成为使用最广泛的前端框架之一&#xff0c;拥有了一个非常丰富的生态系统。本文来梳理一下 Vue.js 十年以来的重要里程碑&#xff01; 尤雨溪&#xff0c;无疑是 Vue.js 背后的灵…...

Unity 6 来袭

这里写自定义目录标题 1.提升渲染性能1.1 降低CPU开销 Lower CPU overhead1.2.减少内存带宽1.3.高档低分辨率帧2.多人游戏创作3.扩大多平台覆盖范围3.1.增进Android平台开发4.使用Runtime AI解锁各种可能性4.1.Unity Muse4.2.Unity Sentis5.实现更具吸引力的视觉效果5.1.自适应…...

SpringMVC课时1

一:SpringMVC Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,负责表述层(控制层)实现简化。 由于 Spring MVC 本身就是 Spring 框架的一部分,和 Spring 框架是无缝集成。 二:SSM的主要作用 三:SpringMVC的原理架构图 …...

【小白学机器学习30】样本统计的核心参数:均值/期望,方差,标准差,标准值。

目录 1 为什么我们要搞出来这么多指标/参数&#xff1f; 1.1 描述统计学为啥要搞出来这么多复杂的参数&#xff1f;什么平均值等 1.2 所以&#xff0c;需要用少数几个关键数据代表1群数据 1.2.1 平均值 1.2.2 平均值的问题&#xff1a;方差 2 代表性的数据1&#xff1a;…...

flink1.17.2安装和使用

版本&#xff1a;flink1.17.2 单机模式 配置 # 为了在别处连接flink-web rest.bind-address: 0.0.0.0命令 # 启动集群 bin/start-cluster.sh # 关闭集群 bin/stop-cluster.sh使用 使用浏览器连接 ip:8081 使用flink-web...

C向C++入门-- C语言填坑

1.c参考文档 我们在学习c中需要查找参照信息到是从这些文档中得到。 https://legacy.cplusplus.com/reference/ 标准只更新到C11&#xff0c;但是以头⽂件形式呈现&#xff0c;内容⽐较易看好懂。 https://zh.cppreference.com/w/cpp https://en.cppreference.com/w/ 后两…...

扫雷游戏(C语言详解)

扫雷游戏&#xff08;C语言详解&#xff09; 放在最前面的1、前言&#xff08;扫雷游戏的简介&#xff09;2、扫雷游戏的规则&#xff08;简易版&#xff09;3、代码实现&#xff08;3.1&#xff09;提醒一下&#xff1a;( i ) 提醒1&#xff1a;( ii ) 提醒2&#xff1a; &…...

信刻全自动光盘摆渡系统

随着各种数据传输、储存技术、信息技术的快速发展&#xff0c;保护信息安全是重中之重。各安全领域行业对跨网数据交互需求日益迫切。针对于业务需要与保密规范相关要求&#xff0c;涉及重要秘密信息&#xff0c;需做到安全的物理隔离&#xff0c;并且保证跨网数据高效安全传输…...

计算机网络的数据链路层

计算机网络的数据链路层 数据链路层是OSI参考模型中的第二层&#xff0c;它位于物理层之上&#xff0c;网络层之下。数据链路层的主要功能是在物理层提供的服务的基础上向网络层提供服务&#xff0c;其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。…...

从0开始搭建一个生产级SpringBoot2.0.X项目(三)SpringBoot接口统一返回和全局异常处理

前言 最近有个想法想整理一个内容比较完整springboot项目初始化Demo。 SpringBoot接口统一返回和全局异常处理&#xff0c;使用ControllerAdvice ExceptionHandler 的组合来实现。 一、pom文件新增依赖 <dependency><groupId>com.alibaba</groupId><ar…...

Mybatis-plus-扩展功能

Mybatis-plus-扩展功能 一&#xff1a;代码生成器 AutoGenerator 是 MyBatis-Plus 的代码生成器&#xff0c;通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码&#xff0c;极大的提升了开发效率。 功能的演示&#xff1a…...

ComfyUI Manager完全指南:AI绘画插件管理从未如此简单

ComfyUI Manager完全指南&#xff1a;AI绘画插件管理从未如此简单 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custo…...

AD导出Gerber文件时,单位选英寸格式选2:5?一文讲透这些‘祖传’设置背后的原因

为什么PCB工程师至今仍在使用英寸和2:5格式导出Gerber文件&#xff1f; 在PCB设计领域&#xff0c;有一个看似奇怪却普遍存在的现象&#xff1a;即使全球绝大多数国家采用公制单位&#xff0c;工程师们在导出Gerber文件时却坚持使用英制单位&#xff08;英寸&#xff09;&#…...

不知道怎么挖漏洞?吐血整理40个网络安全漏洞挖掘姿势,看完不信你还挖不到

各位靓仔&#xff0c;搞网络安全&#xff0c;就像在雷区蹦迪&#xff0c;一不小心就BoomShakalaka&#xff01;Web漏洞这玩意儿&#xff0c;说白了就是信任危机 验证掉链子。开发者们啊&#xff0c;总是对用户输入、权限边界和系统交互爱的太深&#xff0c;结果翻车了&#xf…...

OpenWrt opkg配置进阶:手把手教你设置代理、跳过证书检查,解决国内下载慢问题

OpenWrt opkg高效配置指南&#xff1a;突破网络限制的实战技巧 每次在OpenWrt上安装软件时&#xff0c;看着缓慢的下载进度条或者突如其来的连接错误&#xff0c;是不是感觉既熟悉又无奈&#xff1f;作为一款强大的路由器操作系统&#xff0c;OpenWrt的opkg包管理器本该是我们的…...

告别‘偏科’模型:用CAST双流架构搞定视频动作识别,兼顾时空理解

时空双流协同&#xff1a;CAST架构如何重塑视频动作识别的平衡之道 视频动作识别正面临一个关键瓶颈——现有模型往往在时空理解上"偏科"。就像人类大脑需要左右半球协同工作才能完整理解世界一样&#xff0c;理想的视频理解模型也需要同时具备敏锐的空间感知和精准的…...

如何用LizzieYzy围棋AI分析工具快速提升棋力:新手完整指南

如何用LizzieYzy围棋AI分析工具快速提升棋力&#xff1a;新手完整指南 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 如果你正在寻找一款能够真正帮助提升围棋水平的AI分析工具&#xff0c;那么Li…...

保姆级教程:用PlatformIO给ESP32刷Marlin固件,搞定WiFi配置和Web界面

从零构建3D打印机无线中枢&#xff1a;ESP32刷写Marlin固件全流程解析 当你的3D打印机突然摆脱数据线的束缚&#xff0c;通过手机就能随时监控打印进度、调整参数时&#xff0c;那种科技带来的愉悦感会瞬间抵消所有配置过程的艰辛。本文将带你用ESP32开发板打造专属无线控制模块…...

用FPGA的DDS IP核做个信号发生器:从Vivado配置到ILA抓波形实战

基于FPGA的DDS信号发生器实战&#xff1a;从IP核配置到硬件调试全解析 在数字信号处理领域&#xff0c;直接数字频率合成(DDS)技术因其频率分辨率高、切换速度快和相位连续可调等优势&#xff0c;已成为现代电子系统中不可或缺的核心技术。本文将带领读者完成一个完整的FPGA-ba…...

STM32F407 HAL库驱动42步进电机:从CubeMX配置到代码调试的完整避坑指南

STM32F407 HAL库驱动42步进电机&#xff1a;从CubeMX配置到代码调试的完整避坑指南 在嵌入式开发领域&#xff0c;步进电机控制一直是工业自动化、3D打印和机器人控制等应用中的核心技术。对于刚接触STM32系列微控制器的开发者来说&#xff0c;使用HAL库驱动42步进电机可能会遇…...

深入解析PyTorch-FCN架构:FCN32s、FCN16s、FCN8s模型对比分析

深入解析PyTorch-FCN架构&#xff1a;FCN32s、FCN16s、FCN8s模型对比分析 【免费下载链接】pytorch-fcn PyTorch Implementation of Fully Convolutional Networks. (Training code to reproduce the original result is available.) 项目地址: https://gitcode.com/gh_mirro…...