自动安装环境shell脚本使用和运维基础使用讲解

news2024/12/26 13:40:56

title: 自动安装环境shell脚本使用和运维基础使用讲解
tags: [shell,linux,运维]
categories: [开发记录,系统运维]
date: 2024-3-27 14:10:15
description:

准备和说明

  1. 确认有网。
    依赖程序集,官网只提供32位压缩包,手动编译安装后,在64位机上识别不出来,只能用yum包管理从源上拉下来,需要有网

  2. 安装unzip,git,wget,用来解压安装包,如果服务器已有会自动跳过安装

    yum -y install unzip
    yum -y install git 
    yum -y install wget
    
  3. 使用root登录并执行安装脚本,注意安全措施。 (只有root权限才能在脚本内刷新当前的环境变量)

生成安装用配置文件并手动配置

  • 执行0-2脚本在当前目录生成 install_config.txt,第一个参数为redis密码,第二个参数为mysql密码
    这里生成的密码安装之后只能进程序手动修改,不能通过改此配置文件修改密码!!!
    这里生成的密码安装之后只能进程序手动修改,不能通过改此配置文件修改密码!!!
    这里生成的密码安装之后只能进程序手动修改,不能通过改此配置文件修改密码!!!
sh 0-1_generate_config_file.sh  666 7756
  • 用文本编辑器打开生成的 install_config.txt 配置文件,进行ip,端口,密码等相关配置。
  • 默认生成的配置为当前机器的内网IP,如果多个程序装在不同机器上,需要手动配置相关IP

redis配置说明

 "redis": {
        "redis_dir": "/data/work/redis",
        "redis_tar": "redis-6.0.6.tar.gz",
        "redis_bind_ip": "0.0.0.0",    //监听IP地址
        "redis_password" : "123456"   
    },

mysql配置说明

配置root密码,以及配置文件路径

    "mysql": {
      "mysql_dir": "/data/work/mysql",
      "mysql_tar_xz": "mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz",
      "mysql_new_password": "123456",   //配置密码
      "mysql_config_file": "/etc/my.cnf"
    },

nacos 配置说明

  • mysql在本地为内网IP,在其他位置写入ip地址和端口号
  • redis 同上
"nacos": {
      "nacos_dir": "/data/work/nacos",
      "nacos_tar_gz": "nacos-server-1.2.1.tar.gz",
      "mysql_driver": "mysql-connector-java-8.0.20.jar",
      "nacos_mysql_ip": "127.0.0.1:3306",  #mysql在本地为127.0.0.1,在其他位置写入ip地址和端口号   
      "redis_config": {
        "spring.redis.host": "127.0.0.1",  #mysql在本地为127.0.0.1,在其他位置写入ip地址和端口号   
        "spring.redis.port": 6379   #redis端口号
      }
    }

  • 安装完成后需要访问网页版UI手动导入配置文件**
    redis相关配置已经写入 ~/conf/application.properties 文件中,若不生效就手动进WebUI进行配置, ip:8848/nacos

seata配置说明

  • docker 安装1.3.0启动报错,连不上mysql报jdbc错误,用nacos模式启动也失败,需要nacos 2.x 版本以上
  • mysql,redis,nacos 服务若装在非本机上,配置相应ip和端口号。
  • seata_host_ip 配置向注册中心时使用的IP,默认使用机器内网IP
    "seata":{
        "seata_dir": "/data/work/seata",
        "seata_tar": "seata-server-1.3.0.tar.gz",
        "seata_host_ip": "127.0.0.1",  //向注册中心时使用的IP
        "seata_mysql_ip": "127.0.0.1:3306",
        "seata_redis_host": "127.0.0.1",
        "seata_redis_port": "6379",
        "seata_nacos_ip": "127.0.0.1:8848"

    }

docker 配置说明

  • docker_fastdfs_ip : fastdfs ip地址配置
"docker":{
        "docker_work_dir": "/data/work/dockerapps",
        "docker_fastdfs_ip": "127.0.0.1"
    }

安装方法&测试安装结果

在当前会话中更新环境变量使环境变量生效,或者重启。

source /etc/profile

用screen会话无人值守安装

  • 安装Screen
yum install -y screen
  • 创建和使用screen 会话/窗口
screen -S 1_install
screen -r <会话名> #恢复会话
screen ls #列出当前所有会话

分离和恢复会话:当需要暂时离开会话时,可以使用快捷键Ctrl+a d(即按住Ctrl键,然后依次按a和d键)来分离当前会话,此时会话中的程序仍将继续运行。当需要恢复会话时,可以使用screen -r <会话名>命令,其中<会话名>是之前创建的会话的名称。如果只有一个会话,可以简化为screen -r。

  • 退出会话
screen -X -S 1_install quit
# screen -X -S <session name> quit

自动下载并安装到本机

修改数据库密码,复制到控制台粘贴,回车即可,注意不要中断安装过程
cd ~ 进入用户主目录

sudo yum -y install unzip #安装unzip
sudo yum -y install wget #安装wget
sudo yum -y install git  # 安装git
# 下载安装包
git clone https://gitee.com/dvaloveu/install_env.git
cd install_env
sudo wget http://v.dihuait.com/install_env/jdk-8u231-linux-x64.tar.gz
sudo wget http://v.dihuait.com/install_env/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
# 生成安装用配置文件json
sh 0-1_generate_config_file.sh qwe.1 asd!  #这里修改密码
sudo sh 0-2_excute_all.sh 
#执行所有脚本安装到本机↑

手动安装所有程序在本机

将 install_config.txt ,安装脚本,安装包,放在相同目录下,然后执行各个安装脚本,文件结构如下

执行 0-2_excute_all.sh 将一次执行所有脚本安装在本机

sudo sh 0-2_excute_all.sh 

多主机安装&同时执行多个命令

多个命令用分号隔开,然后一次执行,举例如下

sudo sh 1_install_jdk.sh; sudo sh 2_install_maven.sh; sudo sh 3_install_docker-compose.sh;sudo sh 4_install_nginx.sh; sudo sh 5_install_redis.sh
sudo sh 7_install_nacos.sh; sudo sh 8_install_seata.sh; sudo sh 9_install_dockers.sh

多主机安装需要把相应安装包和安装脚本和 install_config.txt 放在同一目录下,如果缺少相关文件会提示。

开机延迟逐个重启docker所有容器

待更新

1. jdk

需要手动更新环境变量在当前会话中生效,或重启

source /etc/profile  
java -version
javac -version

2. Maven

source /etc/profile
mvn -v

3. docker-compose

docker-compose -version

4. nginx

echo "sudo ps aux|grep nginx"
echo "sudo netstat -tulpn | grep :80"

5. redis

在4G以下内存安装过程如果报错,为内存不足导致,请务必重启机器以释放内存,然后重新执行本脚本。

  • 查看剩余内存
free -m
# 重启 
sudo reboot
  • 获取redis进程
netstat -tuln | grep 6379
sudo ps aux | grep redis-server

7. Nacos

echo "sudo ps aux|grep nacos"
echo "sudo netstat -tulpn | grep :8848"
echo "web访问 ip:8848/nacos"

8. seata

echo "sudo ps aux|grep seata"
echo "sudo netstat -tulpn | grep :8091"
echo "访问nacos web页面查看seata服务"

运维命令

systemctl系统服务相关

  • service 文件目录
    /etc/systemd/system
    cd /etc/systemd/system
    ls /etc/systemd/system
  • 查看服务启动状态
systemctl status redis
  • 查看服务是否启用
systemctl start redis
systemctl stop redis
systemctl restart redis
  • 刷新服务,启动服务
systemctl daemon-reload 
systemctl enable mysql
systemctl daemon-reload 
systemctl enable nacos
systemctl daemon-reload 
systemctl enable nginx
systemctl daemon-reload 
systemctl enable redis
  • 服务单元是否存在
systemctl list-unit-files |grep mysql
systemctl list-unit-files |grep redis
systemctl list-unit-files |grep nacos
systemctl list-unit-files |grep nginx
systemctl list-unit-files |grep seata

docker相关

docker配置参考

https://www.cnblogs.com/chuyiwang/p/17577020.html

卸载清理docker
sudo systemctl stop docker
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo yum remove docker-common

sudo rm -f /usr/bin/docker /usr/bin/dockerd
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker

sudo rm -rf /var/run/docker
sudo rm -rf /var/log/docker

记录

docker composer 没有找到 1.22版本,github只有1.20版,运维提供本地文件
https://github.com/docker/compose/releases?page=21

https://blog.csdn.net/chaogaoxiaojifantong/article/details/128028769

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

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

相关文章

动态数据结构中的表扩张性:摊还分析、伪代码与C语言实现

动态数据结构中的表扩张性&#xff1a;摊还分析、伪代码与C语言实现 引言表扩张性的概念摊还分析在表扩张性中的应用伪代码示例&#xff1a;TABLE-INSERT操作C语言实现结论 引言 在处理数据结构时&#xff0c;尤其是表&#xff08;或数组&#xff09;&#xff0c;我们经常面临…

STM32标准库编译前置条件配置

本文基于stm32f104系列芯片&#xff0c;记录编程代码前需要的操作&#xff1a; 添加库文件 在ST官网下载标准库STM32F10x_StdPeriph_Lib_V3.5.0&#xff0c;解压后&#xff0c;得到以下界面 启动文件 进入Libraries&#xff0c;然后进入CMSIS&#xff0c;再进入CM3&#xff…

CUDA内存模型

核函数性能并不只与线程束的执行有关。 CUDA内存模型概述 GPU和CPU内存模型的主要区别是&#xff0c;CUDA编程模型能将内存层次结构更好地呈现给用户&#xff0c;能让我们显示的控制它的行为。 对程序员来说&#xff0c;一般有两种类型的存储器&#xff1a; 可编程的&#x…

【Qt QML】用CMake管理Qt工程

CMake是一个开源、跨平台的工具系列&#xff0c;用于构建、测试和打包软件。CMake使用简单的独立配置文件来控制软件编译过程。与许多跨平台系统不同&#xff0c;CMake被设计为与本地构建环境结合使用。 下面我们在CMake项目中使用Qt的最基本方法。首先&#xff0c;创建一个基本…

向量体系结构:向量执行时间

看《计算机体系结构 量化研究方法》做的笔记&#xff0c;接着上一篇写 计算机体系结构&#xff1a;向量体系结构介绍-CSDN博客 向量处理器工作的示例 SAXPY或DAXPY循环。 aXY SAXPY代表“单精度aX加Y”&#xff0c;进行单精度浮点数的运算&#xff0c;其中a是一个标量&#x…

测试开发工具开发 -JMeter 函数二次开发

在JMeter中开发自定义函数是一个常见的需求&#xff0c;允许我们扩展JMeter的功能以适应特定的测试需求。自定义函数可以用来处理数据&#xff0c;生成输出&#xff0c;或者执行特定的运算。通过JMeter函数二次开发可以帮我们解决实际测试过程中造数难的问题 用过JMeter的同学…

搭建vue3组件库(三): CSS架构之BEM

文章目录 1. 通过 JS 生成 BEM 规范名称1.1 初始化 hooks 目录1.2 创建 BEM 命名空间函数1.3 通过 SCSS 生成 BEM 规范样式 2. 测试 BEM 规范 BEM 是由 Yandex 团队提出的一种 CSS 命名方法论&#xff0c;即 Block&#xff08;块&#xff09;、Element&#xff08;元素&#xf…

WORD排版常见问题与解决方案

前言 近期使用word软件进行论文排版工作&#xff0c;遇到了一些常见的问题&#xff0c;记录一下&#xff0c;避免遗忘。 基本配置 系统环境&#xff1a;win10/win11 word版本&#xff1a;Microsoft Office LTSC 专业增强版 2021 问题与解决方案 问题1&#xff1a;页眉显示内…

C——双向链表

一.链表的概念及结构 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。什么意思呢&#xff1f;意思就是链表在物理结构上不一定是连续的&#xff0c;但在逻辑结构上一定是连续的。链表是由一个一个的节点连…

使用递归函数,将一串数字每位数相加求和

代码结果&#xff1a; #include<stdio.h> int DigitSum(unsigned int n) {if (n > 9)return DigitSum(n / 10) (n % 10);elsereturn n; } int main() {unsigned int n;scanf("%u", &n);int sum DigitSum(n);printf("%d\n", sum);return 0; …

持续更新|UNIAPP适配APP遇到的问题以及解决方案

在使用UNIAPP开发APP的时候遇到的一些奇奇怪怪问题记录 组件样式丢失 问题&#xff1a;组件引入界面中&#xff0c;在小程序和H5环境下样式正常&#xff0c;而在APP中却出现高度异常问题 解决&#xff1a;增加view标签将组件包裹起来即可正常显示 解决前&#xff1a; 解决后…

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测(Matlab)

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现MFO-CNN…

JAVA第二周学习笔记

文章目录 JAVA第二周学习笔记IDEA方法格式带参数及返回值的方法方法的重载方法的内存 二维数组静态初始化动态初始化 面向对象类和对象如何定义类如何得到对象注意 封装封装的优点private关键字成员变量和局部变量 this关键字构造方法作用类型特点执行时机定义重载 标准javabea…

Linux进程——进程的创建(fork的原理)

前言&#xff1a;在上一篇文章中&#xff0c;我们已经会使用getpid/getppid函数来查看pid和ppid,本篇文章会介绍第二种查看进程的方法&#xff0c;以及如何创建子进程&#xff01; 本篇主要内容&#xff1a; 查看进程的第二种方法创建子进程系统调用函数fork 在开始前&#xff…

什么是哈希表(HashTable)?

目录 一、概念 二、哈希冲突 减少哈希冲突的办法&#xff1a; 1、设计合理的哈希函数 哈希函数设计原则&#xff1a; 常用的哈希函数&#xff1a; 2、降低负载因子&#xff08;必须重点掌握&#xff09; 哈希冲突的解决 第一类&#xff1a;闭散列 第二类&…

实时监控RTSP视频流并通过YOLOv5-seg进行智能分析处理

在完成RTSP推流之后&#xff0c;尝试通过开发板接收的视频流数据进行目标检测&#xff0c;编写了一个shell脚本实现该功能&#xff0c;关于视频推流和rknn模型的部署请看之前的内容或者参考官方的文档。 #!/bin/bash # 设置脚本使用的shell解释器为bashSEGMENT_DIR"./seg…

【模板】前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和模板题。 前缀和中数组下标为1~n。 前缀和&#xff1a;pre[i]pre[i-1]a[i]; 某段区间 [l,r]的和&#xff1a;pre[r]-pre[l-1] 3.…

【数学建模】2024五一数学建模C题完整论文代码更新

最新更新&#xff1a;2024五一数学建模C题 煤矿深部开采冲击地压危险预测&#xff1a;建立基于多域特征融合与时间序列分解的信号检测与区间识别模型完整论文已更新 2024五一数学建模题完整代码和成品论文获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/gyoz9ou5upv…

unity制作app(2)--主界面

1.先跳转过来&#xff0c;做一个空壳&#xff01;新增场景main为4号场景&#xff01; 2.登录成功跳转到四号场景&#xff01; 2.在main场景中新建canvas&#xff0c;不同的状态计划用不同的panel来设计&#xff01; 增加canvas和底图image 3.突然输不出来中文了&#xff0c;浪…

【19-文本数据处理:Scikit-learn中的自然语言处理技术】

文章目录 前言理解文本数据文本预处理文本清洗分词停用词去除向量化文本数据词袋模型TF-IDF变换构建文本分类模型模型评估与调优结论前言 欢迎回到我们的Scikit-learn系列,在这篇文章中,我们将探讨如何使用Scikit-learn来处理文本数据,这是自然语言处理(NLP)的基础。你将学…