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


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-commonsudo rm -f /usr/bin/docker /usr/bin/dockerd
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/dockersudo 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.xdnf.cn/news/1410647.html

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

相关文章

Java 新手上路常见的5个经典问题,你遇到过吗?

当我们开始学习一门新的编程语言或者开发平台时&#xff0c;经常会遇到一些常见的问题。这些问题不仅是学习过程中的一部分&#xff0c;也是成长和提高的机会。 1. 空指针异常&#xff08;NullPointerException&#xff09; 空指针异常是 Java 开发中最常见的问题之一。它的产…

docker学习笔记3:VmWare CentOS7安装与静态ip配置

文章目录 一、安装CentOS71、下载centos镜像2、安装二、设置静态ip三、xshell连接centos本专栏的docker环境是在centos7里安装,因此首先需要会安装centos虚拟机。 本篇博客介绍如何在vm虚拟机里安装centos7。 一、安装CentOS7 1、下载centos镜像 推荐清华源,下载如下版本 …

OpenCV4.9去运动模糊滤镜(68)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV4.9失焦去模糊滤镜(67) 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目标 在本教程中&#xff0c;您将学习&#xff1a; 运动模糊图像的 PSF 是多少如何恢复运动模…

2024-5-3学习笔记 继承关系拓展

一.继承与友元 友元类不能继承&#xff0c;也就是说基类友元不能访问子类私有和保护成员。简单的理解就是&#xff0c;爸爸的朋友不是儿子的朋友。 二.继承与静态成员 基类定义了static静态成员&#xff0c;则整个继承体系里面只有一个这样的成员。无论派生出多少个子类&…

Mac 更新 Homebrew软件包时提示 zsh: command not found: brew 错误

问题 通过Mac电脑更新Homebrew软件包时出现如下错误&#xff1a; xxxxxxxpiaodeMacBook-Pro ~ % brew update zsh: command not found: brew解决方案 在命令行输入如下指令&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/H…

string(上)

目录 一、string类的简单介绍 二、string类中成员函数介绍 1.构造函数 1&#xff09;string&#xff08;&#xff09; 2&#xff09;string&#xff08;const string& str&#xff09; 3&#xff09;string&#xff08;const string& str&#xff0c;size_t pos&…

cmake的使用方法: 多个源文件的编译

一. 简介 前面一篇文章学习了针对只有一个 .c源文件&#xff0c;如何编写 CMakeLists.txt内容&#xff0c;从而使用 cmake工具如何编译工程。文章如下&#xff1a; cmake的使用方法: 单个源文件的编译-CSDN博客 本文学习针对 多个 .c源文件&#xff0c; CMakeLists.txt文件如…

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1 1、 Dev.step(4)2、 Dev.step(-4) Dev.step(8)3、 Dev.turnLeft() Dev.step(4)4、 Dev.step(3) Dev.turnLeft() Dev.step(-1) Dev.step(4)5、 Dev.step(-1) Dev.step(3) Dev.step(-2) Dev.turnLeft() Dev.step(…

ICode国际青少年编程竞赛- Python-1级训练场-路线规划

ICode国际青少年编程竞赛- Python-1级训练场-路线规划 1、 Dev.step(3) Dev.turnLeft() Dev.step(4)2、 Dev.step(3) Dev.turnLeft() Dev.step(3) Dev.step(-6)3、 Dev.step(-2) Dev.step(4) Dev.turnLeft() Dev.step(3)4、 Dev.step(2) Spaceship.step(2) Dev.step(3)5、…

笔试强训-day17_T3 比那名居的桃子

一、题目链接 比那名居的桃子 二、题目描述 小红有一天看到了一只桃子&#xff0c;由于桃子看上去就很好吃&#xff0c;小红很想把它吃掉。 已知吃下桃子后&#xff0c;每天可以获得 &#x1d44e;&#x1d456;的快乐值&#xff0c;但是每天会获得b&#x1d456;的羞耻度。桃…

AnaTraf网络流量分析仪:全面把控网络运行现状,智慧诊断网络性能瓶颈

背景 在当今瞬息万变的数字时代,网络流量的高效监控和精准分析已成为企业、学校等各个行业不可或缺的基本需求。作为专业的网络流量分析设备,AnaTraf网络流量分析仪凭借其优异的性能,正成为网络管理者的得力助手。 全流量回溯分析,全方位掌握网络运行现状 网络是一个复杂的有…

[Linux][网络编程][HTTPS]详细讲解

目录 1.HTTPS介绍2.HTTP与HTTPS3."加密"是什么&#xff1f;1.加密相关术语2.为什么需要HTTPS&#xff0c;为什么需要加密&#xff1f; 4.常见的加密方式1.对称加密2.非对称加密3.数据摘要 && 数据指纹4.数字签名 5.深入探究HTTPS工作方案1.方案一&#xff1a…

CAE组件CEETRON SDK的应用价值与功能更新趋势

为什么要在应用程序中使用CAE组件&#xff1f; 常见的CAE工作流程涉及一系列阶段&#xff0c;所有阶段都需要复杂的专用工具才能产生有意义的结果。 此标准工作流程的设置阶段围绕为求解器提供生成有用的模拟所需的数据。为此&#xff0c;应用程序需要支持将CAD数据转换为…

(十六)Servlet教程——Servlet文件下载

Servlet文件下载 文件下载是将服务器上的资源下载到本地&#xff0c;可以通过两种方式来下载服务器上的资源。第一种是使用超链接来下载&#xff0c;第二种是通过代码来下载。 超链接下载 在HTML或者JSP页面中使用超链接时&#xff0c;可以实现页面之间的跳转&#xff0c;但是…

【Web】CTFSHOW 新手杯 题解

目录 easy_eval 剪刀石头布 baby_pickle repairman easy_eval 用script标签来绕过 剪刀石头布 需要赢100轮&#x1f914; 右键查看源码拿到提示 一眼session反序列化 打PHP_SESSION_UPLOAD_PROGRESS 脚本 import requestsp1 a|O:4:"Game":1:{s:3:"log…

Vitis HLS 学习笔记--MAXI手动控制突发传输

目录 1. 简介 2. MAXI 突发传输详解 2.1 突发传输的前置条件 2.2 hls::burst_maxi 详解 2.2.1 基本知识 2.2.2 hls::burst_maxi 构造函数 2.2.3 hls::burst_maxi 读取方法 2.2.4 hls::burst_maxi 写入方法 2.3 示例一 2.4 示例二 3. 总结 1. 简介 这篇文章探讨了在…

ESP32-C3模组上跑通MQTT(1)

本文内容参考&#xff1a; 《ESP32-C3 物联网工程开发实战》 特此致谢&#xff01; 一、远程控制的介绍 什么是远程控制&#xff1f;顾名思义&#xff0c;远程控制就是远距离控制&#xff0c;是指控制设备&#xff08;如智能手机、计算机等网络设备&#xff09;通过广域网控制…

[笔试训练](十一)

目录 031&#xff1a;游游的水果大礼包 032&#xff1a;买卖股票的最好时机&#xff08;二&#xff09; 033&#xff1a;倒置字符串 031&#xff1a;游游的水果大礼包 游游的水果大礼包 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 枚举&#xff1a;依次枚举1号礼…

windows驱动开发-电源状态(一)

在windows设备驱动开发中&#xff0c;随着笔记本电脑的普及&#xff0c;低功耗要求的增加&#xff0c;设备电源状态越来越重要&#xff0c;和之前不一样&#xff0c;在以前&#xff0c;驱动仅仅只处理PNP的电源状态而已&#xff0c;现在需要处理非常多的电源状态和请求。 系统…

python中的self是什么

你对Python编程中的self真的了解吗? 当我们在Python编程的时候,尤其是写一个方法的时候,会自动补齐括号中的self,那么我们对它真的了解吗? Self 是什么?有什么作用? self指的是调用该函数的对象&#xff08;是一个实例&#xff09;,首先明确的是self只有在类中的方法中才…