#!/bin/sh #安装插件 cd /root/mysql if test -e ./sharutils-4.6.1-2.x86_64.rpm then echo 'sharutils开始安装...' rpm -ivh sharutils-4.6.1-2.x86_64.rpm echo 'sharutils安装完成...' else echo 'sharutils文件不存在!' exit fi #安装msql8 if test -e ./mysql8.0.19_64-636.sh then if test -e ./mysql8.0.19_64-636.sh.sha256 then echo '准备安装mysql8' sh ./mysql8.0.19_64-636.sh else echo 'mysql8.sha256文件不存在!' exit fi else echo 'mysql8.sh文件不存在!' exit fi if [ $? -eq 0 ]; then echo 'mysql安装完成...' else echo 'mysql安装失败!' exit fi #执行重启不需验证 /topwalk/baseapp/bin/mysqld restart --skip_grant_tables #安装tcl sh ./tcl-install.sh if [ $? -eq 0 ]; then echo 'tcl安装完成...' else echo 'tcl安装失败!' exit fi #安装expect sh ./expect-install.sh if [ $? -eq 0 ]; then echo 'expect安装完成...' else echo 'expect安装失败!' exit fi #创建mysql用户,授权 sh ./initdb.sh if [ $? -eq 0 ]; then echo 'mysql用户创建,授权完成...' else echo 'mysql用户创建,授权失败!' exit fi ln -s /topwalk/baseapp/bin/mysqld /etc/init.d/ sed -i '/MYSQL_HOME/d' /etc/profile echo "export MYSQL_HOME=/topwalk/baseapp/mysql" >>/etc/profile echo 'export PATH=$PATH:$MYSQL_HOME/bin' >>/etc/profile systemctl enable mysqld source /etc/profile service mysqld restart #初始化库 /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPBASIC.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPDMS.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPUIS.sql #初始化表 /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPBASIC < topsql/TOPBASIC.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPDMS < topsql/TOPDMS.sql /topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPUIS < topsql/TOPUIS.sql #安装nginx cp -dpRf ./nginx /usr/local/ useradd nginx -m -d /usr/local/nginx/ -s /bin/bash chown -R nginx.nginx /usr/local/ngi
时间: 2023-09-17 08:13:44 浏览: 61
这段脚本是一个安装脚本,用于安装一些软件和配置一些服务。
首先,脚本会检查是否存在 `sharutils-4.6.1-2.x86_64.rpm` 文件,如果存在,则安装 sharutils 插件。
接下来,脚本会检查是否存在 `mysql8.0.19_64-636.sh` 文件和 `mysql8.0.19_64-636.sh.sha256` 文件。如果两个文件都存在,则执行 `mysql8.0.19_64-636.sh` 安装 MySQL 8。
安装 MySQL 之后,脚本会执行 `/topwalk/baseapp/bin/mysqld restart --skip_grant_tables` 命令来重启 MySQL 服务,并跳过权限验证。
然后,脚本会执行安装 tcl 和 expect 的脚本,分别是 `tcl-install.sh` 和 `expect-install.sh`。
接下来,脚本会执行 `initdb.sh` 脚本来创建 MySQL 用户并授权。
然后,脚本会创建符号链接 `/etc/init.d/mysqld`,并在 `/etc/profile` 中添加 `MYSQL_HOME` 环境变量。
之后,脚本会启用 `mysqld` 服务,并重新加载 `/etc/profile` 文件,并重启 `mysqld` 服务。
最后,脚本会执行一些 SQL 语句来初始化库和表,并安装 Nginx 服务器。
这就是整个脚本的流程。如果有任何问题,请随时告诉我。
相关问题
将上面的shell脚本重构,增加每行执行结果的判断,如果执行失败及时退出
好的,我可以帮您重构脚本,增加每行执行结果的判断,并在执行失败时及时退出。以下是重构后的脚本:
```shell
#!/bin/sh
set -e
# 安装插件
cd /root/mysql
if [ ! -e ./sharutils-4.6.1-2.x86_64.rpm ]; then
echo 'sharutils文件不存在!'
exit 1
fi
echo 'sharutils开始安装...'
rpm -ivh sharutils-4.6.1-2.x86_64.rpm
echo 'sharutils安装完成...'
# 安装 MySQL 8
if [ ! -e ./mysql8.0.19_64-636.sh ]; then
echo 'mysql8.sh文件不存在!'
exit 1
fi
if [ ! -e ./mysql8.0.19_64-636.sh.sha256 ]; then
echo 'mysql8.sha256文件不存在!'
exit 1
fi
echo '准备安装mysql8...'
sh ./mysql8.0.19_64-636.sh || { echo 'mysql安装失败!'; exit 1; }
echo 'mysql安装完成...'
# 执行重启不需验证
/topwalk/baseapp/bin/mysqld restart --skip_grant_tables
# 安装 tcl
sh ./tcl-install.sh || { echo 'tcl安装失败!'; exit 1; }
echo 'tcl安装完成...'
# 安装 expect
sh ./expect-install.sh || { echo 'expect安装失败!'; exit 1; }
echo 'expect安装完成...'
# 创建 mysql 用户,授权
sh ./initdb.sh || { echo 'mysql用户创建,授权失败!'; exit 1; }
echo 'mysql用户创建,授权完成...'
ln -s /topwalk/baseapp/bin/mysqld /etc/init.d/
sed -i '/MYSQL_HOME/d' /etc/profile
echo "export MYSQL_HOME=/topwalk/baseapp/mysql" >> /etc/profile
echo 'export PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile
systemctl enable mysqld
source /etc/profile
service mysqld restart
# 初始化库
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPBASIC.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPDMS.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPUIS.sql
# 初始化表
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPBASIC < topsql/TOPBASIC.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPDMS < topsql/TOPDMS.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPUIS < topsql/TOPUIS.sql
# 安装 nginx
cp -dpRf ./nginx /usr/local/
useradd nginx -m -d /usr/local/nginx/ -s /bin/bash
chown -R nginx.nginx /usr/local/nginx
echo '脚本执行完成!'
```
在这个重构后的脚本中,我们使用了 `set -e` 来设置在任何命令失败时立即退出脚本。并且,在每个关键步骤后都加入了判断,如果命令执行失败,就会输出错误信息并退出脚本。
希望这次的重构能满足您的需求。如果有任何问题,请随时告诉我。
linux下encode要下载
您可以通过以下命令安装encode:
在Ubuntu或Debian上:
sudo apt-get install uuencode
在CentOS或Red Hat上:
sudo yum install sharutils
在Fedora上:
sudo dnf install sharutils
如果您使用的是其他Linux发行版,请查看该发行版的软件包管理器或官方网站,以了解如何安装encode。