男女做特别污污的事情网站,网站更改备案,地方门户网站建站流程,wordpress 好主题哦文章目录 前言一、什么是脚本化安装二、使用步骤1.物理磁盘脚本挂载#xff08;离线#xff09;2.yum脚本化安装#xff08;离线#xff09;3.nfs脚本化安装#xff08;离线#xff09;4.pg数据库脚本化安装#xff08;离线#xff09;5.nginx脚本化安装#xff08;离… 文章目录 前言一、什么是脚本化安装二、使用步骤1.物理磁盘脚本挂载离线2.yum脚本化安装离线3.nfs脚本化安装离线4.pg数据库脚本化安装离线5.nginx脚本化安装离线 总结 前言
在Linux中Shell脚本是一种强大的工具用于自动化任务和管理系统。编写Shell脚本时需要遵循一定的格式和规范以确保脚本的可读性和可维护性。 提示以下是本篇文章正文内容下面案例可供参考
一、什么是脚本化安装
Linux脚本是一种可以在Linux或其他类Unix操作系统上运行的脚本语言。它可以用于自动化系统管理任务、软件开发、数据处理等各种任务。脚本通常是以文本文件的形式编写其中包含一系列命令和语句这些命令和语句可以在终端或脚本解释器中执行。
底层原理是当用户运行脚本时操作系统会将其交给解释器解释执行。解释器会逐行读取脚本文件将每一行转化为对应的操作系统命令进行执行。因为Linux脚本语言是一种解释型语言所以它可以在不同的平台和系统上运行而不需要进行编译。这使得脚本编写和调试更加容易。
脚本语言的优点是它具有易读性、易维护性、易于使用的特点。Linux脚本可以处理多种文本格式包括CSV、XML、JSON等。此外它还具有强大的系统管理功能如文件管理、进程管理、网络管理等。因此它在自动化运维、软件开发、数据处理等领域广泛应用。
二、使用步骤
1.物理磁盘脚本挂载离线
使用方法 将代码保存为.sh格式
dos2unix 物理盘挂载.sh ----转载为linux可识别的语言
sh 物理盘挂载.sh ----根据提示填写信息即可代码
#!/bin/bash# 检查是否以root用户运行
if [ $EUID -ne 0 ]; thenecho 请以root用户或使用sudo运行此脚本exit 1
fi# 列出所有块设备
echo 当前块设备列表
lsblk# 提示用户输入设备路径
read -p 请输入要格式化的磁盘设备路径例如 /dev/vdb DEVICE_PATH# 检查设备是否存在
if [ ! -e $DEVICE_PATH ]; thenecho 设备 $DEVICE_PATH 不存在请检查路径是否正确exit 1
fi# 提示用户确认设备路径
echo 您选择的设备是$DEVICE_PATH
read -p 请确认是否继续格式化此设备(y/n): CONFIRMif [ $CONFIRM ! y ]; thenecho 操作已取消。exit 0
fi# 提示用户选择文件系统类型
echo 请选择要使用的文件系统类型
echo 1. ext3
echo 2. ext4
echo 3. xfs
echo 4. btrfs
read -p 输入选项1-4 FILESYSTEM_OPTION# 根据用户选择设置文件系统类型
case $FILESYSTEM_OPTION in1) FILESYSTEMext3;;2) FILESYSTEMext4;;3) FILESYSTEMxfs;;4) FILESYSTEMbtrfs;;*) echo 无效选项默认使用 ext3; FILESYSTEMext3;;
esac# 格式化磁盘
echo 格式化 $DEVICE_PATH 为 $FILESYSTEM 文件系统...
if [ $FILESYSTEM xfs ]; thenmkfs.xfs $DEVICE_PATH
elif [ $FILESYSTEM btrfs ]; thenmkfs.btrfs $DEVICE_PATH
elsemkfs.$FILESYSTEM $DEVICE_PATH
fi# 提示用户输入挂载点路径
read -p 请输入挂载点路径例如 /vdb MOUNT_POINT# 创建挂载点目录
echo 创建挂载点目录 $MOUNT_POINT...
mkdir -p $MOUNT_POINT# 挂载设备到挂载点
echo 挂载 $DEVICE_PATH 到 $MOUNT_POINT...
mount $DEVICE_PATH $MOUNT_POINT# 编辑 /etc/fstab 文件以确保系统重启后自动挂载
echo 编辑 /etc/fstab 文件以确保系统重启后自动挂载...
echo $DEVICE_PATH $MOUNT_POINT $FILESYSTEM defaults 0 0 /etc/fstab# 检查挂载是否成功
echo 检查挂载是否成功...
mount -a# 列出所有块设备确认挂载
echo 当前块设备列表
lsblk# 重启系统
echo 系统将在5秒后重启...
sleep 5
reboot2.yum脚本化安装离线
使用方法和上面差不多
dos2unix yum.sh
sh yum.sh#!/bin/bash# 检查是否以root用户运行
if [ $EUID -ne 0 ]; thenecho 请以root用户或使用sudo运行此脚本exit 1
fi# 提示用户输入挂载点路径默认为 /media/cdrom
read -p 请输入挂载点路径默认为 /media/cdrom MOUNT_POINT# 如果用户未输入挂载点路径则使用默认值
if [ -z $MOUNT_POINT ]; thenMOUNT_POINT/media/cdrom
fi# 创建挂载点目录
echo 创建挂载点目录 $MOUNT_POINT...
mkdir -p $MOUNT_POINT# 显示磁盘使用情况
echo 当前磁盘使用情况
df -h# 备份原有yum仓库配置
echo 备份原有yum仓库配置...
cp -rf /etc/yum.repos.d /etc/yum.repos.d_bak# 清除原有yum仓库配置
echo 清除原有yum仓库配置...
rm -rf /etc/yum.repos.d/*# 创建新的yum仓库配置文件
echo 创建新的yum仓库配置文件...
cat EOF /etc/yum.repos.d/Media.repo
[iso]
nameMedia
baseurlfile://${MOUNT_POINT}/
gpgcheck0
enabled1
EOF# 编辑fstab文件以自动挂载光驱
echo 编辑 /etc/fstab 文件以自动挂载光驱...
echo /dev/sr0 ${MOUNT_POINT} iso9660 defaults 0 0 /etc/fstab# 重新加载systemd配置
echo 重新加载systemd配置...
systemctl daemon-reload# 挂载所有文件系统
echo 挂载所有文件系统...
mount -a# 停止并禁用防火墙
echo 停止并禁用防火墙...
systemctl stop firewalld
systemctl disable firewalld# 清除yum缓存并重建
echo 清除yum缓存并重建...
yum clean all
yum makecache# 列出可用的软件包
echo 列出可用的软件包...
yum list# 确认挂载成功
echo 挂载点 $MOUNT_POINT 的挂载状态
mount | grep $MOUNT_POINT# 完成提示
echo 配置完成挂载点已设置为 $MOUNT_POINTyum仓库已配置。3.nfs脚本化安装离线
使用方法
dos2unix nfs.sh
sh nfs.sh代码
#!/bin/bash# 安装nfs-utils和rpcbind
echo 安装nfs-utils和rpcbind...
yum install -y nfs-utils rpcbind# 提示用户输入共享路径的目录
read -p 请输入NFS共享目录的路径例如 /home/nfs: SHARE_DIR# 如果用户没有输入则使用默认值 /home/nfs
if [ -z $SHARE_DIR ]; thenSHARE_DIR/home/nfsecho 未输入共享目录路径使用默认值 $SHARE_DIR
fi# 创建NFS共享目录
echo 创建NFS共享目录 $SHARE_DIR...
mkdir -p $SHARE_DIR
chmod -R 777 $SHARE_DIR # 将权限改为777# 配置exports文件
echo 配置 /etc/exports...
cat /etc/exports EOF
$SHARE_DIR *(rw,sync,no_root_squash)
EOF# 重新加载exports配置
echo 重新加载exports配置...
exportfs -ra# 启动并启用nfs服务
echo 启动nfs服务...
systemctl start nfs-serverecho 设置nfs服务开机自启动...
systemctl enable nfs-serverecho NFS服务器配置完成。# 提示用户是否在本地安装NFS客户端
read -p 是否在本地安装NFS客户端(y/n, 默认n): INSTALL_LOCALif [[ $INSTALL_LOCAL y ]]; then# 安装nfs客户端echo 安装nfs客户端...yum install -y nfs-utilsecho NFS客户端安装完成。
fi# 提示用户输入目标服务器的IP地址支持多个IP地址
read -p 请输入目标服务器的IP地址多个IP地址用逗号分隔留空跳过: TARGET_IPS# 如果用户没有输入目标IP地址则跳过分发步骤
if [ -z $TARGET_IPS ]; thenecho 未输入目标服务器IP地址跳过分发步骤。
else# 将逗号分隔的IP地址转换为数组IFS, read -r -a TARGET_IP_ARRAY $TARGET_IPS# 定义目标服务器的用户名默认 rootTARGET_USERroot# 定义目标服务器上的目标路径TARGET_DIR/root/# 定义脚本文件名SCRIPT_FILEsetup_nfs.sh# 将当前脚本内容保存到临时文件echo 将当前脚本保存为临时文件 $SCRIPT_FILE ...cat $SCRIPT_FILE EOF
#!/bin/bash# 安装nfs-utils和rpcbind
echo 安装nfs-utils和rpcbind...
yum install -y nfs-utils rpcbind# 提示用户输入共享路径的目录
read -p 请输入NFS共享目录的路径例如 /home/nfs: SHARE_DIR# 如果用户没有输入则使用默认值 /home/nfs
if [ -z \$SHARE_DIR ]; thenSHARE_DIR/home/nfsecho 未输入共享目录路径使用默认值 \$SHARE_DIR
fi# 创建NFS共享目录
echo 创建NFS共享目录 \$SHARE_DIR...
mkdir -p \$SHARE_DIR
chmod -R 777 \$SHARE_DIR # 将权限改为777# 配置exports文件
echo 配置 /etc/exports...
cat /etc/exports EOL
\$SHARE_DIR *(rw,sync,no_root_squash)
EOL# 重新加载exports配置
echo 重新加载exports配置...
exportfs -ra# 启动并启用nfs服务
echo 启动nfs服务...
systemctl start nfs-serverecho 设置nfs服务开机自启动...
systemctl enable nfs-serverecho NFS服务器配置完成。
EOF# 设置脚本权限chmod x $SCRIPT_FILE# 遍历所有目标服务器发送并执行脚本for TARGET_IP in ${TARGET_IP_ARRAY[]}; doecho 处理目标服务器 $TARGET_IP...# 确保目标路径存在echo 在目标服务器 $TARGET_IP 上创建目标路径 $TARGET_DIR ...ssh $TARGET_USER$TARGET_IP mkdir -p $TARGET_DIR# 将脚本发送到目标服务器echo 将脚本 $SCRIPT_FILE 发送到目标服务器 $TARGET_IP ...scp $SCRIPT_FILE $TARGET_USER$TARGET_IP:$TARGET_DIR# 在目标服务器上执行脚本echo 在目标服务器 $TARGET_IP 上执行脚本...ssh $TARGET_USER$TARGET_IP chmod x $TARGET_DIR/$SCRIPT_FILE $TARGET_DIR/$SCRIPT_FILEdone# 删除本地的临时脚本文件echo 删除本地的临时脚本文件 $SCRIPT_FILE ...rm $SCRIPT_FILEecho NFS配置脚本已成功发送并在所有目标服务器上执行。
fi4.pg数据库脚本化安装离线
使用方法
dos2unix pg.sh
sh pg.sh代码
#!/bin/bashset -e # 出现错误时退出脚本function setup_logging {log_file/var/log/pg_install.logtouch $log_fileexec (tee -i $log_file) 21echo 日志文件$log_file
}function install_postgresql {# 引入日志记录setup_logging# 提示用户输入源码包的存放路径echo 请输入 PostgreSQL 源码包的存放路径例如 /data/sourcesread -r source_path# 在指定路径下查找 .tar.gz 或 .tar 文件source_file$(find $source_path -type f \( -name *.tar.gz -o -name *.tar \) -print -quit)# 检查是否找到文件if [ -z $source_file ]; thenecho 未在路径 $source_path 下找到 .tar.gz 或 .tar 文件。请检查路径并重新运行脚本。exit 1fi# 解压找到的源码包echo 正在解压 $source_file...tar -zxvf $source_file# 获取解压后的目录名tar_dir$(tar -tf $source_file | head -1 | cut -f1 -d/)# 进入解压后的目录cd $tar_dir || { echo 无法进入目录 $tar_dir。请检查解压结果。; exit 1; }# 添加 PostgreSQL 用户useradd postgresql# 提示用户是否要手动设置密码echo 是否要手动设置 PostgreSQL 用户的密码 (y/n)read -r answerif [[ $answer y ]]; then# 提示用户手动输入密码passwd postgresqlelse# 使用默认密码 root1234echo postgresql:root1234 | chpasswdecho 默认密码 root1234 已设置。fi# 提示用户是否已经手动创建了数据目录echo 是否已经手动创建了 PostgreSQL 数据目录 (y/n)read -r data_dir_answerif [[ $data_dir_answer ! y ]]; then# 提示用户输入数据目录路径echo 请输入 PostgreSQL 数据目录的路径例如 /data/postgresql/dataread -r data_dir_path# 创建 PostgreSQL 数据目录mkdir -p $data_dir_pathchown -R postgresql:postgresql $data_dir_pathchmod 750 $data_dir_pathelse# 提示用户输入现有的数据目录路径echo 请输入现有的 PostgreSQL 数据目录的路径例如 /data/postgresql/dataread -r data_dir_pathfi# 提示用户是否已经手动创建了安装路径echo 是否已经手动创建了 PostgreSQL 安装路径例如 /data/postgresql/pgsql (y/n)read -r install_dir_answerif [[ $install_dir_answer ! y ]]; then# 提示用户输入 PostgreSQL 安装路径echo 请输入 PostgreSQL 安装路径例如 /data/postgresql/pgsqlread -r install_path# 创建 PostgreSQL 安装路径mkdir -p $install_pathchown -R postgresql:postgresql $install_pathchmod 750 $install_pathelse# 提示用户输入现有的安装路径echo 请输入现有的 PostgreSQL 安装路径例如 /data/postgresql/pgsqlread -r install_pathfi# 更新 yum 缓存yum makecache fast# 定义依赖包列表dependencies(readline-develsystemtapsystemtap-sdt-develperl-ExtUtils-Embedpampam-devellibxml2libxml2-devellibxsltlibxslt-develpython3-devellibicu-develzlib-devel)# 检查并安装缺失的依赖包for pkg in ${dependencies[]}; doif ! rpm -q $pkg /dev/null; thenecho 未安装依赖包 $pkg正在安装...yum install -y $pkgfidone# 特殊处理 python2-develif ! rpm -q python2-devel /dev/null; thenecho 未找到 python2-devel尝试安装 python3-devel 替代...yum install -y python3-develfi# 配置 PostgreSQL 的安装选项./configure --prefix$install_path --with-pgport5432 --with-libraries$install_path/lib --with-includes$install_path/include --with-perl --with-python --with-openssl --with-pam --with-libxml --with-libxslt# 编译并安装 PostgreSQLmake make install# 设置安装目录权限chown -R postgresql:postgresql $install_pathchmod 750 $install_path# 初始化数据库su - postgresql -c $install_path/bin/initdb -D $data_dir_path# 启动 PostgreSQL 服务su - postgresql -c $install_path/bin/pg_ctl -D $data_dir_path -l $data_dir_path/logfile start# 修改环境变量cat EOF /etc/profile
export PATH$install_path/bin:\$PATH
export PGHOME$install_path
export PGDATA$data_dir_path
export LD_LIBRARY_PATH\$LD_LIBRARY_PATH:\$PGHOME/lib
EOF# 使环境变量生效source /etc/profile# 创建 systemd 服务单元文件cat EOF /etc/systemd/system/postgresql.service
[Unit]
DescriptionPostgreSQL database server
Afternetwork.target[Service]
Typeforking
Userpostgresql
Grouppostgresql
EnvironmentPGPORT5432
EnvironmentPGDATA$data_dir_path
ExecStart$install_path/bin/pg_ctl start -D \$PGDATA -l \$PGDATA/logfile
ExecStop$install_path/bin/pg_ctl stop -D \$PGDATA -m fast
ExecReload$install_path/bin/pg_ctl reload -D \$PGDATA
TimeoutSec300[Install]
WantedBymulti-user.target
EOF# 重新加载 systemd 配置systemctl daemon-reload# 询问用户是否设置开机自启动echo 是否设置 PostgreSQL 为开机自启动 (y/n)read -r enable_answerif [[ $enable_answer y ]]; then# 启用 PostgreSQL 服务systemctl enable postgresqlecho PostgreSQL 已设置为开机自启动。elseecho PostgreSQL 未设置为开机自启动。fi# 启动 PostgreSQL 服务systemctl start postgresqlecho PostgreSQL 数据库安装并启动成功。# 修改 postgresql.conf 文件modify_postgresql_conf $data_dir_path# 修改 pg_hba.conf 文件modify_pg_hba_conf $data_dir_path
}function modify_postgresql_conf {local data_dir_path$1# 编辑 postgresql.conf 文件echo 正在修改 $data_dir_path/postgresql.conf 文件...# 修改第60行 listen_addresses 的值为 *sed -i 60s/^#//; 60s/localhost/*/ $data_dir_path/postgresql.conf# 修改第64行 port 的值为 5432sed -i 64s/^#// $data_dir_path/postgresql.confecho postgresql.conf 文件修改完成。
}function modify_pg_hba_conf {local data_dir_path$1# 编辑 pg_hba.conf 文件echo 正在修改 $data_dir_path/pg_hba.conf 文件...# 在匹配行后添加新的配置行sed -i /# IPv4 local connections:/ a \
host all all 0.0.0.0/0 md5 $data_dir_path/pg_hba.confecho pg_hba.conf 文件修改完成。
}# 执行 PostgreSQL 安装
install_postgresql问题
开机自启可提供选择如果选择启用可能会报错或者安装好后会报错看一下之前创建的数据路径底下的logfile5.nginx脚本化安装离线
使用方法
dos2unix nginx.sh
sh nginx.sh代码
#!/bin/bash# 检查并创建目录
check_and_create_dir() {local dir$1if [ ! -d $dir ]; thenread -p 目录 $dir 不存在是否现在创建(y/n): choiceif [ $choice y ]; thenmkdir -p $direcho 目录 $dir 已创建elseecho 跳过创建目录 $dir这可能导致后续操作失败exit 1fielseecho 目录 $dir 已存在跳过创建fi
}# 检查文件是否存在
check_file() {local file$1if [ ! -f $file ]; thenecho 文件 $file 不存在请下载后再运行此脚本exit 1fi
}# 解压缩文件到指定目录
unzip_file() {local file$1local dir$2check_file $fileunzip -o $file -d $direcho 文件 $file 已解压缩到 $dir
}# 解压 .tar.gz 文件到指定目录
untar_file() {local file$1local dir$2check_file $filetar -xvf $file -C $direcho 文件 $file 已解压到 $dir
}# 检查 RPM 包是否已安装如果未安装且 RPM 文件存在则安装
check_and_install_rpm() {local rpm_file$1local package_name$2if rpm -q $package_name /dev/null; thenecho 包 $package_name 已安装跳过elseif [ -f $rpm_file ]; thenrpm -ivh $rpm_file --nodepsecho RPM 包 $rpm_file 已安装elseecho RPM 包 $rpm_file 不存在尝试使用 yum 安装yum install -y $package_nameif [ $? -ne 0 ]; thenecho yum 安装 $package_name 失败请手动安装exit 1fififi
}# 获取用户指定的解压目录路径默认为 /data/nginxzip
read -p 请输入文件解压目录默认为 /data/nginxzip: dir
dir${dir:-/data/nginxzip}# 获取 nginx.zip 的具体路径默认为 /data/nginx.zip
read -p 请指定 nginx.zip 的完整路径例如/data/nginx.zip: nginx_zip_path
nginx_zip_path${nginx_zip_path:-/data/nginx.zip}# 提示用户创建目录
echo 请确保以下目录已创建在您的系统中否则脚本将自动为您创建它们
echo $dir# 暂停以允许用户手工创建目录
read -p 按 Enter 键继续或者退出脚本后手工创建... -rs
echo# 检查并创建目录
check_and_create_dir $dir# 检查文件是否存在
check_file $nginx_zip_path# 解压 nginx.zip
unzip_file $nginx_zip_path $dir# 检查并解压其他文件
files(nginx-1.20.2.tar.gz pcre-8.41.zip openssl-1.1.1j.tar.gz zlib-1.3.1.tar.gz)
for file in ${files[]}; docheck_file $dir/$file
doneunzip_file $dir/pcre-8.41.zip $dir
untar_file $dir/nginx-1.20.2.tar.gz $dir
untar_file $dir/openssl-1.1.1j.tar.gz $dir
untar_file $dir/zlib-1.3.1.tar.gz $dir# 安装所需的 RPM 包
rpms(cpp-4.8.5-44.el7.x86_64.rpm gccgcc-4.8.5-44.el7.x86_64.rpm gccgcc-c-4.8.5-36.el7.x86_64.rpm gcc-cglibc-2.17-317.el7.x86_64.rpm glibcglibc-common-2.17-317.el7.x86_64.rpm glibc-commonglibc-devel-2.17-317.el7.x86_64.rpm glibc-develglibc-headers-2.17-317.el7.x86_64.rpm glibc-headerslibstdc-devel-4.8.5-36.el7.x86_64.rpm libstdc-devel
)for rpm in ${rpms[]}; dorpm_file$(echo $rpm | cut -d -f1)package_name$(echo $rpm | cut -d -f2)check_and_install_rpm $rpm_file $package_name
doneecho 所有解压和依赖包安装已完成开始编译和安装组件...# 第一步编译安装 OpenSSL
echo 编译安装 OpenSSL...
cd $dir/openssl-1.1.1j/
./config
if [ $? -eq 0 ]; thenmakeif [ $? -eq 0 ]; thenmake installif [ $? -eq 0 ]; thenecho OpenSSL 安装成功elseecho OpenSSL make install 失败exit 1fielseecho OpenSSL make 失败exit 1fi
elseecho OpenSSL 配置失败exit 1
fi
cd -# 第二步编译安装 pcre
echo 编译安装 pcre...
cd $dir/pcre-8.41/
./configure
if [ $? -eq 0 ]; thenmakeif [ $? -eq 0 ]; thenmake installif [ $? -eq 0 ]; thenecho pcre 安装成功elseecho pcre make install 失败exit 1fielseecho pcre make 失败exit 1fi
elseecho pcre 配置失败exit 1
fi
cd -# 第三步编译安装 zlib
echo 编译安装 zlib...
cd $dir/zlib-1.3.1/
./configure
if [ $? -eq 0 ]; thenmakeif [ $? -eq 0 ]; thenmake installif [ $? -eq 0 ]; thenecho zlib 安装成功elseecho zlib make install 失败exit 1fielseecho zlib make 失败exit 1fi
elseecho zlib 配置失败exit 1
fi
cd -# 第四步编译安装 Nginx
echo 编译安装 Nginx...
cd $dir/nginx-1.20.2/
./configure --prefix/usr/local/nginx --with-http_ssl_module --with-pcre../pcre-8.41 --with-openssl../openssl-1.1.1j --with-stream
if [ $? -eq 0 ]; thenmakeif [ $? -eq 0 ]; thenmake installif [ $? -eq 0 ]; thenecho Nginx 安装成功elseecho Nginx make install 失败exit 1fielseecho Nginx make 失败exit 1fi
elseecho Nginx 配置失败exit 1
fi
cd -# 复制 nginx 到 /usr/bin 目录
if [ -f /usr/local/nginx/sbin/nginx ]; thencp /usr/local/nginx/sbin/nginx /usr/bin/if [ $? -eq 0 ]; thenecho nginx 已成功复制到 /usr/bin 目录elseecho 复制 nginx 到 /usr/bin 目录失败exit 1fi
elseecho /usr/local/nginx/sbin/nginx 文件不存在请检查 Nginx 是否正确安装exit 1
fi# 检查 nginx 是否可执行
if [ -x /usr/bin/nginx ]; thenecho nginx 在 /usr/bin 目录下已可用
elseecho nginx 在 /usr/bin 目录下不可执行请检查文件权限exit 1
fi# 修改 nginx.conf 文件中的端口号
echo 修改 nginx.conf 文件中的端口号...
sed -i 36s/listen 80;/listen 8088;/ /usr/local/nginx/conf/nginx.conf# 验证修改是否成功
if grep -q listen 8088; /usr/local/nginx/conf/nginx.conf; thenecho nginx.conf 文件中的端口号已成功修改为 8088
elseecho nginx.conf 文件中的端口号修改失败请手动检查文件exit 1
fi# 定义 Nginx 服务文件内容
nginx_service_content[Unit]
DescriptionThe NGINX HTTP and reverse proxy server
Afternetwork.target[Service]
Typeforking
PIDFile/usr/local/nginx/logs/nginx.pid
ExecStartPre/usr/local/nginx/sbin/nginx -t
ExecStart/usr/local/nginx/sbin/nginx
ExecReload/usr/local/nginx/sbin/nginx -s reload
ExecStop/bin/kill -s QUIT $MAINPID
PrivateTmptrue[Install]
WantedBymulti-user.target# 创建 Nginx 服务文件
echo 创建 Nginx 服务文件 /etc/systemd/system/nginx.service
echo $nginx_service_content | sudo tee /etc/systemd/system/nginx.service /dev/nullif [ $? -ne 0 ]; thenecho 创建 Nginx 服务文件失败exit 1
fi# 重新加载 systemd 配置
echo 重新加载 systemd 配置
sudo systemctl daemon-reloadif [ $? -ne 0 ]; thenecho 重新加载 systemd 配置失败exit 1
fi# 启用 Nginx 服务
echo 启用 Nginx 服务
sudo systemctl enable nginxif [ $? -ne 0 ]; thenecho 启用 Nginx 服务失败exit 1
fi# 启动 Nginx 服务
echo 启动 Nginx 服务
sudo systemctl start nginxif [ $? -ne 0 ]; thenecho 启动 Nginx 服务失败exit 1
fi# 检查 Nginx 服务状态
echo 检查 Nginx 服务状态
sudo systemctl status nginxif [ $? -ne 0 ]; thenecho 检查 Nginx 服务状态失败exit 1
fiecho 所有操作已完成总结
脚本就是无脑话和不动手安装本文不存在抄袭都是自己平时觉得步骤繁琐根据经验写的可能有不足大家多多包涵后续会更新k8s脚本化安装。我已经把脚本上传到资源脚本.zip