每日shell脚本之超级整合程序3.0

每日shell脚本之超级整合程序3.0

本期带来之前的升级版2.0整合脚本程序,学习工作小利器,同时模块化构建方便二次开发。

上图

在这里插入图片描述

上源码

#!/usr/bin/bash
# *******************************************#
# * CDDN          : M乔木                    #
# * qq邮箱        : 2776617348@qq.com        #
# * 创建时间      : 2023-12-29 11:40:59      #
# * 解释器        : 这是一个shell脚本         #
# ******************************************##声明函数
function make_ZBA() {clearecho "开始部署Agent..."sleep 1read -p "请输入Server端服务器IP:" AG_IPrpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm &>/dev/nullyum clean all &>/dev/null && yum makecache fast &>/dev/nullyum -y install zabbix-agent &>/dev/nullsed -i '/^Server=127.0.0.1/d' /etc/zabbix/zabbix_agentd.confecho "Server=${AG_IP}" >>/etc/zabbix/zabbix_agentd.confsed -i '/^ServerActive=127.0.0.1/d' /etc/zabbix/zabbix_agentd.confecho "ServerActive=${AG_IP}" >>/etc/zabbix/zabbix_agentd.confagent_H=$(hostname)sed -i '/^Hostname=Zabbix server/d' /etc/zabbix/zabbix_agentd.confecho "Hostname=${agent_H}" >>/etc/zabbix/zabbix_agentd.confecho 'zabbix  ALL=(ALL)  NOPASSWD: ALL' >>/etc/sudoersecho 'EnableRemoteCommands=1' >>/etc/zabbix/zabbix_agentd.confecho 'LogRemoteCommands=1' >>/etc/zabbix/zabbix_agentd.confsystemctl restart zabbix-agent &>/dev/nullsystemctl enable zabbix-agent &>/dev/nullecho "Agent端已部署完成!Server端为:${AG_IP}"
}
function make_ZBS() {#环境检测clearecho "--------------------------------------------------------"echo "[1]开始检测防火墙Selinux..."f_w=$(systemctl status firewalld | awk '/Active:/{print $2}')s_l=$(getenforce)#判断是否关闭 没关闭就结束运行if [ ${f_w} = "inactive" -a ${s_l} = "Disabled" ]; thenecho "[2]防火墙SeLinux已关闭..."sleep 1echo "[3]正在飞速安装zabbix中..."sleep 1elseecho "[2]防火墙SeLinux未关闭..."systemctl disable firewalld &>/dev/nullsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsleep 1echo "[3]正在关闭..."sleep 1echo "[4]防火墙SeLinux已关闭 请重启机器生效..."echo "--------------------------------------------------------"exit 0fi#安装zabbix源rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm &>/dev/null#安装数据库并清理缓存echo '[4]准备安装数据库,全程20秒左右,请耐心等待...'sleep 1echo '[5]开始清理环境...'yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y &>/dev/nulluserdel -r mysql &>/dev/nullrm -rf /etc/my* &>/dev/nullrm -rf /var/lib/mysql &>/dev/nullrm -rf /usr/bin/mysql &>/dev/nullyum -y erase $(rpm -qa | egrep "mysql|mariadb") &>/dev/nullecho '[6]正在下载mysqlyum源...'yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm &>/dev/nullecho '[7]正在安装mysql...'yum install -y mysql-community-server --enablerepo mysql57-community --disablerepo mysql80-community &>/dev/nullyum -y groupinstall "Development Tools" &>/dev/nullecho '[8]正在配置mysql...'yum -y install yum-utils &>/dev/nullyum-config-manager --disable mysql80-community &>/dev/nullyum-config-manager --enable mysql57-community &>/dev/nullecho '[9]正在启动mysql...'systemctl start mysqld &>/dev/nullecho '[10]正在设置密码,请稍后...'num_az=$(awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log)echo 'validate-password=OFF' >>/etc/my.cnfsystemctl restart mysqld &>/dev/nullread -p '请输入新密码:' passwdxmysqladmin -uroot -p"$num_az" password "$passwdx" &>/dev/nullecho "[11]安装完成,密码已设置完成为:$passwdx"echo "[12]密码已保存到/mysql_passwd.txt目录下"echo $passwdx >/mysql_passwd.txtyum clean all &>/dev/null && yum makecache fast &>/dev/null#安装zabbix模块echo "[13]开始安装zabbix..."yum -y install zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender centos-release-scl &>/dev/nullyum -y install yum-utils &>/dev/nullrpm -qa | grep yum-utils &>/dev/nullif [ $? -eq 1 ]; thensleep 1yum -y install yum-utils &>/dev/nullfiyum-config-manager --enable zabbix-frontend &>/dev/nullyum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl centos-release-scl &>/dev/null#建立运行数据库echo "[14]正在建立运行数据库..."mysql -p"${passwdx}" -e 'create database zabbix character set utf8 collate utf8_bin;' &>/dev/nullmysql -p"${passwdx}" -e "create user zabbix@localhost identified by 'admin';" &>/dev/nullmysql -p"${passwdx}" -e 'grant all privileges on zabbix.* to zabbix@localhost;' &>/dev/nullmysql -p"${passwdx}" -e 'set global log_bin_trust_function_creators = 1;' &>/dev/nullmysql -p"${passwdx}" -e 'flush privileges;' &>/dev/nullecho "[15]zabbix登录数据库密码为:admin"echo "zabbix登录数据库密码为:admin" >>/zabbix-mysql.txtzcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p"admin" zabbix 2>/dev/null#关联数据库echo "[16]正在改写相关配置文件..."mysql -p"${passwdx}" -e 'set global log_bin_trust_function_creators = 0;' &>/dev/nullecho "DBHost=localhost" >>/etc/zabbix/zabbix_server.confecho "DBPassword=admin" >>/etc/zabbix/zabbix_server.confecho "DBPort=3306" >>/etc/zabbix/zabbix_server.conf#关联phpsed -i '2s/^#//;3s/^#//' /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.confsed -i '38,118d' /etc/opt/rh/rh-nginx116/nginx/nginx.confsed -i 's/listen.acl_users = apache/listen.acl_users = apache,nginx/' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.confsed -i '25d' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.confecho 'php_value[date.timezone] = Asia/Shanghai' >>/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf#重启服务echo "[17]正在重启相关服务..."systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm &>/dev/nullsystemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm &>/dev/nullecho "[18]zabbix已部署 后续请登录浏览器安装..."echo "--------------------------------------------------------"
}
function Az_docker() {clear#检测防火墙selinuxecho "------------------------------------------------------------"echo "[1]开始检测防火墙SeLinux是否关闭..."sleep 1f_w=$(systemctl status firewalld | awk '/Active:/{print $2}')s_l=$(getenforce)#判断是否关闭 没关闭就结束运行if [ ${f_w} = "inactive" -a ${s_l} = "Disabled" ]; thenecho "[2]防火墙SeLinux已关闭..."sleep 1echo "[3]正在飞速安装docker中..."sleep 1elseecho "[2]防火墙SeLinux未关闭..."systemctl disable firewalld &>/dev/nullsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsleep 1echo "[3]正在关闭..."sleep 1echo "[4]防火墙SeLinux已关闭 请重启机器生效..."echo "------------------------------------------------------------"exit 0fi#防火墙关了的话就继续开启路由转发echo "[4]正在开启路由转发虚拟网桥..."echo 'net.ipv4.ip_forward =1' >>/etc/sysctl.confecho 'net.bridge.bridge-nf-call-iptables =1' >>/etc/sysctl.confecho 'net.bridge.bridge-nf-call-ip6tables =1' >>/etc/sysctl.confsysctl -p &>/dev/nullsleep 1#防火墙关闭的话就清理docker环境echo "[5]正在清理环境中..."yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine &>/dev/nullsleep 1echo "[6]开始安装docker依赖..."yum install -y yum-utils device-mapper-persistent-data lvm2 &>/dev/nullsleep 1echo "[7]开始配置阿里docker源..."yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo &>/dev/nullyum clean all &>/dev/null && yum makecache fast &>/dev/nullsleep 1echo "[8]开始安装docker..."yum -y install docker-ce doker-ce-cli containerd.io &>/dev/nullsleep 1echo "[9]开始配置开机自启..."systemctl start docker &>/dev/nullsystemctl enable docker &>/dev/nullsystemctl restart docker &>/dev/nullsleep 1echo "[10]开始配置阿里云镜像加速器..."clearecho "[11]开始建立docker加速器放置目录..."mkdir -p /etc/dockersleep 1echo "[12]开始写入配置..."tee /etc/docker/daemon.json &>/dev/null <<-'EOF'
{"registry-mirrors": ["https://2zwkpj0m.mirror.aliyuncs.com"]
}
EOFsleep 1echo "[13]重新加载system工具..."systemctl daemon-reload &>/dev/nullsleep 1echo "[14]重新启动docker..."systemctl restart docker &>/dev/nullsleep 1echo "[15]阿里云镜像加速器配置完毕!"sleep 1echo "[16]开始拉取基础镜像centos:7..."docker pull centos:7 &>/dev/nullsleep 1echo "[17]已部署docker及第一个基础镜像centos7已配置完毕!"sleep 1echo '[18]开始使用你的一个docker命令体验激动人心的docker吧!'sleep 1echo '[19]docker images:查看已下载镜像'sleep 1echo '[20]docker info:查看docker基本信息'sleep 1echo '[21]docker run -it centos:7 /bin/bash  启动容器'echo "------------------------------------------------------------"
}
function jq_z() {jq_id=$(cat /opt/QMOSjQ/jQ${idjqw}/* | head -1)if [ -z $jq_id ]; then:elseread -p "该资产已注册 是否覆盖[y|n]" jq_numcase $jq_num iny):;;n)echo "重新加载注册界面..."sleep 1jqzh;;*)Rr_QMjqzh;;esacfi
}
function jq_d() {if [ $? -eq 0 ]; then:elseclearecho "该资产还没有注册..."sleep 1echo "请在资产注册信息以后再使用!"sleep 1jqfunfi
}
function jq_f() {jq_fQ=$(ls /opt/ | grep QMOSjQ &>/dev/null && echo 1 || echo 2)case $jq_fQ in1):;;2)clearecho "---------------------------"echo " 检测到环境不支持运行堡垒机"sleep 1echo " 前往堡垒机主界面使用[环境部署]"echo "---------------------------"sleep 1jqfun;;esac
}
function Qc_QM() {clearcat <<EOF
============="已退出程序!"
=============
EOFexit 0
}
function Rr_QM() {clearcat <<EOF
============================="序列号输入错误 稍后将重新运行!"
=============================
EOFsleep 1
}
function w_djs() {cleara=0echo "-------------------------------"read -p "休息一会吧!身体最重要[单位s/秒]:" w_numwhile [ $a -lt $w_num ]; dolet a++echo "[${a}]已休息:${a}秒"sleep 1doneecho "-------------------------------"echo "本次共休息:${a}秒"
}
function make_redis() {#自动化部署Redisclearecho "----------------------------------------------------------------------------"DATA=$(ls / | grep data)if [ -z $DATA ]; thenecho "[1]检查是否下载wget..."yum -y install wget &>/dev/nullecho "[2]创建放置redis目录..."mkdir -p /data/appecho "[3]进入工作目录..."cd /data/appecho "[4]下载redis..."wget http://download.redis.io/releases/redis-5.0.10.tar.gz &>/dev/nullecho '[5]解压redis...'tar xzf redis-5.0.10.tar.gz &>/dev/nullecho '[6]重命名redis...'mv redis-5.0.10/ redisecho '[7]下载编译工具...'cd redis/ && yum install -y gcc make &>/dev/nullecho "[8]安装redis..."make &>/dev/nullcd /data/app/redisecho "[9]备份redis配置文件..."cp redis.conf redis.conf.backupecho "[10]开始修改配置文件..."sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' redis.confsed -i '/^dir/d' redis.confecho 'dir /data/app/redis/data' >>redis.confsed -i '/^logfile/d' redis.confecho 'logfile /var/log/redis.log' >>redis.confsed -i '/^daemonize/d' redis.confecho 'daemonize yes' >>redis.confmkdir /data/app/redis/datatouch /var/log/redis.logecho "[11]开始配置全局启用reids..."echo 'export PATH=/data/app/redis/src:$PATH' >>/etc/profilesource /etc/profile &>/dev/nullecho "[12]开始配置system工具管理redis..."cd /lib/systemd/system/cat >redis.service <<EOF
[Unit]
Description=Redis
After=network.target[Service]
ExecStart=/data/app/redis/src/redis-server /data/app/redis/redis.conf  --daemonize no
ExecStop=/data/app/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown[Install]
WantedBy=multi-user.target
EOFcd - &>/dev/nullsystemctl daemon-reloadsystemctl start redis.servicecd /data/app/redisecho "[13]安装完毕!"sleep 1echo "请使用./data/app/redis/src/redis-cli -h localhost -p 6379 命令登录使用redis!"echo "如果环境变量不生效,请手动执行命令:sourece /etc/profile"echo "----------------------------------------------------------------------------"sleep 2elseecho "[1]安装失败..."sleep 1echo "[2]原因根目录下存在冲突目录..."sleep 1echo "[3]请在删除/data目录或重命名后重新运行本程序...!"echo "----------------------------------------------------------------------------"exit 2fi
}
function make_MGR() {

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

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

相关文章

社区分享|中华保险基于MeterSphere开展接口自动化测试

中华联合保险集团股份有限公司&#xff08;以下简称为“中华保险”&#xff09;始创于1986年&#xff0c;是全国唯一一家以“中华”冠名的国有控股保险公司。截至2022年12月底&#xff0c;中华保险总资产为1006.06亿元&#xff0c;在全国拥有超过2900个营业网点&#xff0c;员工…

06 分频器设计

分频器简介 实现分频一般有两种方法&#xff0c;一种方法是直接使用 PLL 进行分频&#xff0c;比如在 FPGA 或者 ASIC 设计中&#xff0c;都可以直接使用 PLL 进行分频。但是这种分频有时候受限于 PLL 本身的特性&#xff0c;无法得到频率很低的时钟信号&#xff0c;比如输入 …

Windows安装PHP及在VScode中配置插件,使用PHP输出HelloWorld

安装PHP PHP官网下载地址(8.3版本)&#xff1a;PHP For Windows&#xff1a;二进制文件和源代码发布 点击下载.zip格式压缩包&#xff1a; 历史版本在Old archives中下载。推荐在Documentation download中下载官方文档&#xff0c;方便学习。 下载完成后在一个顺眼的地方解压压…

Point.java

Point.java 让我们来找茬&#xff0c;(⊙o⊙)看看哪里不一样咯&#xff01;&#xff01;&#xff01; package algorithm_graphics_2;/** Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject t…

Zabbix 6.2.1 安装

目录 1、监控介绍 监控的重要性 网站的可用性 监控范畴 如何监控 2、Zabbix 介绍 zabbix 简介 zabbix 主要功能 zabbix 监控范畴 Zabbix 监控组件 zabbix 常见进程 zabbix agentd 工作模式 zabbix 环境监控中概念 3、搭建LNMP 拓扑规划 安装MySQL 安装 Nginx …

【视频编解码】M-JPEG压缩、H.264压缩 对比

简介 参考这篇文章&#xff1a;https://blog.csdn.net/qq_41248872/article/details/83590337 写的比较好&#xff0c;这里就不赘述了。 我们在视频传输的时候&#xff0c;需要压缩&#xff0c;常见的压缩包括: jpeg 压缩h264 压缩 当然使用最多的还是 264, 毕竟他的压缩比…

【Flink经济】Flink 内存管理

面临的问题 目前&#xff0c; 大数据计算引擎主要用 Java 或是基于 JVM 的编程语言实现的&#xff0c;例如 Apache Hadoop、 Apache Spark、 Apache Drill、 Apache Flink 等。 Java 语言的好处在于程序员不需要太关注底层内存资源的管理&#xff0c;但同样会面临一个问题&…

【快速搞定Webpack5】修改输出文件目录及自动清理上次打包文件(五)

介绍 默认情况下webpack打包后&#xff0c;我们的图片和js等文件都会被打包到dist目录下&#xff0c;文件多了混淆在一起一方面不利于文件的查找和管理&#xff0c;另外一方面看上去也不美观。 所以今天我们学习的内容就是控制输出后的文件进入不同的目录。 一、配置 新增4…

小米标准模组+MCU 快速上手开发(二)——之模组串口调试

小米标准模组MCU 开发笔记之固件调试 背景技术名词简介● 小米IoT开发者平台● 小米IoT 模组● 固件● OTA● CRC32 固件双串口调试● MHCWB6S-IB 模组资料下载● MHCWB6S-IB 模组管脚图● 上电调试 背景 小米标准模组MCU的开发过程中&#xff0c;由于部分官方资料较为古早&am…

压缩感知常用的重建算法

重建算法的基本概念 在压缩感知&#xff08;Compressed Sensing, CS&#xff09;框架中&#xff0c;重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩&#xff0c;因此重建算法的目标是找到最符合…

MATLAB 导出可编辑的eps格式图像

任务描述&#xff1a;部分期刊要求提交可编辑的eps格式图像&#xff0c;方便美工编辑对图像进行美化 我试了直接print或者在figure窗口导出&#xff0c;发现导出的文件放到Adobe AI中并不能编辑&#xff0c;经Google找到解决办法&#xff1a; %EPS exportgraphics(gcf,myVect…

微信小程序 ---- 慕尚花坊 项目初始化

目录 项目介绍 01. 项目概述 02. 项目演示 03. 项目技术栈 04. 接口文档 申请开发权限 项目初始化 01. 创建项目与项目初始化 02. 自定义构建 npm 集成Sass 03. 集成项目页面文件 04. VsCode 开发小程序项目 项目介绍 01. 项目概述 [慕尚花坊] 是一款 同城鲜花订购…

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

【C++初阶】类和对象(中)

目录 一.类的6个默认成员函数 1.知识引入 ​编辑 2.构造函数 (1)概念 (2)语法特性 (3)特征 ①问题引入1 ②问题引入2 &#xff08;缺少默认构造函数&#xff09; 3.析构函数 (1)概念 (2)特性 4.拷贝构造函数 (1)概念 (2)特征 ①拷贝构造函数是构造函数的一…

pclpy SOR去除异常值(统计滤波)

pclpy SOR去除异常值-统计滤波 一、算法原理1.背景2.原理 二、代码三、结果1.原点云2.sor处理后的点云&#xff08;内点&#xff09;3.sor处理后的点云&#xff08;外点&#xff09; 四、相关数据 一、算法原理 1.背景 激光扫描通常会生成不同点密度的点云数据集。此外&#…

【OpenSSH+Jenkins搭建项目自动化部署】

OpenSSHJenkins搭建项目自动化部署 一、Windows安装OpenSSH1.下载2.解压3.安装4.启停服务5.SSH免密登录 二、Jenkins安装1.下载2.安装启动3.登录 三、项目自动化部署1.SSH配置2.项目配置3.权限控制 一、Windows安装OpenSSH 1.下载 https://github.com/PowerShell/Win32-0penS…

常见的排序算法整理

1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始&#xff0c;然后依次和剩余的元素进行比较&#xff0c;若小于相邻元素&#xff0c;则交换两者位置&#xff0c;同时将较大元素作为下一个比较的基准元素&#xff0c;继续将该元素与其相邻的元素进行比…

用于扫描机密的开源解决方案

TruffleHog 最初是在 2016 年独立创作的一个研究工具。当发布它时&#xff0c;没有工具扫描 Git 修订历史记录以获取秘密。我的预感是旧版本的代码中隐藏着很多秘密&#xff0c;但没有工具可以查找它们。 我的预感是对的。该工具迅速流行并变得非常流行。如今&#xff0c;它在…

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05&#xff08;20240221&#xff09;1 Oracle Vector的其他特性示例1&#xff1a;示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错&#xff1a; 解决方案&#xff1a; 将监听端口改成3000或者其他 修改后结果&#xff1a; 参考原文&#xff1a; Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客