#! /bin/bash
ENV_HOME=/usr/local/env
# 安装telnet、rzsz、zip、unzip、lsof、openssl、gcc、wget、vim基本环境
install_gcc() {
if ! type gcc >/dev/null 2>&1; then
echo 'auto install gcc begining...'
# 安装gcc环境
rpm -Uvh $ENV_HOME/gcc/*.rpm --nodeps --force
gcc -v
# 安装g++环境
rpm -Uvh $ENV_HOME/gcc-c++/*.rpm --nodeps --force
g++ -v
echo 'auto install gcc successed!!!'
else
echo 'gcc、g++已安装, 无需再安装'
fi
}
install_telent() {
if ! type telnet >/dev/null 2>&1; then
echo 'auto install telent begining...'
rpm -ivh $ENV_HOME/xinetd-2.3.15-14.el7.x86_64.rpm
rpm -ivh $ENV_HOME/telnet-0.17-65.el7_8.x86_64.rpm
rpm -ivh $ENV_HOME/telnet-server-0.17-65.el7_8.x86_64.rpm
filePath="/etc/xinetd.d/telnet"
if [ ! -f "$filePath" ]; then
touch $filePath
echo "文件创建完成"
else
echo "文件已经存在"
fi
cat >$filePath <<EOF
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server =/usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
EOF
service xinetd restart
echo 'auto install telent successed!!!'
else
echo 'telnet已安装, 无需再安装'
fi
}
install_rzsz() {
if ! type rz >/dev/null 2>&1; then
echo 'auto install rzsz begining...'
# 解压到当前目录下
tar -zxvf $ENV_HOME/lrzsz-0.12.20.tar.gz -C ./
# 安装rzsz
cd lrzsz-0.12.20/ && ./configure && make && make install
# 建立软连接
ln -s /usr/local/bin/lrz /usr/bin/rz
ln -s /usr/local/bin/lsz /usr/bin/sz
# 删除lrzsz-0.12.20
rm -rf lrzsz-0.12.20
echo 'auto install rzsz successed!!!'
else
echo 'rzsz已安装, 无需再安装'
fi
}
install_zip_unzip() {
if ! type zip >/dev/null 2>&1; then
echo 'auto install zip begining...'
rpm -ivh $ENV_HOME/zip-3.0-11.el7.x86_64.rpm
echo 'auto install zip successed!!!'
echo 'auto install unzip begining...'
rpm -ivh $ENV_HOME/unzip-6.0-21.el7.x86_64.rpm
echo 'auto install unzip successed!!!'
else
echo 'zip、unzip已安装, 无需再安装'
fi
}
install_lsof() {
if ! type lsof >/dev/null 2>&1; then
echo 'auto install lsof begining...'
rpm -ivh $ENV_HOME/lsof-4.87-6.el7.x86_64.rpm
echo 'auto install lsof successed!!!'
else
echo 'lsof已安装, 无需再安装'
fi
}
install_openssl() {
if ! type openssl >/dev/null 2>&1; then
echo 'auto install openssl begining...'
# 解压到当前目录
tar -zxvf $ENV_HOME/openssl-1.1.1t.tar.gz -C ./
tar -zxvf $ENV_HOME/perl-5.30.3.tar.gz -C ./
# 安装openssl需要先安装perl5.x
cd perl-5.30.3/ && ./Configure -des -Dprefix=$HOME/localperl && make && make test && make install
cd openssl-1.1.1t/ && ./config --prefix=/usr/local/openssl && ./config -t && make depend && make install
sed -i '2a\/usr/local/openssl/lib' /etc/ld.so.conf
cd openssl-1.1.1t/ && ldconfig
sed -i '73a\export PATH=$OPENSSL:$PATH:$HOME/bin' /etc/profile
sed -i '73a\export OPENSSL=/usr/local/openssl/bin' /etc/profile
sed -i '73a\# OPENSSL_HOME' /etc/profile
source /etc/profile
ldd /usr/local/openssl/bin/openssl
echo 'auto install openssl successed!!!'
else
echo 'openssl已安装, 无需再安装'
fi
}
install_wget() {
if ! type wget >/dev/null 2>&1; then
echo 'auto install wget begining...'
rpm -i $ENV_HOME/wget-1.14-18.el7_6.1.x86_64.rpm
echo 'auto install wget successed!!!'
else
echo 'wget已安装, 无需再安装'
fi
}
install_vim() {
if ! type vim >/dev/null 2>&1; then
echo 'auto install vim begining...'
rpm -i $ENV_HOME/perl/perl* --nodeps --force
rpm -i $ENV_HOME/vim/gpm-libs-1.20.7-6.el7.x86_64.rpm
rpm -i $ENV_HOME/vim/vim-* --nodeps --force
echo 'auto install vim successed!!!'
else
echo 'vim已安装, 无需再安装'
fi
}
install_jdk8() {
if ! type java >/dev/null 2>&1; then
# 安装jdk
echo 'auto install jdk begining...'
tar -zxf $ENV_HOME/jdk-8u202-linux-x64.tar.gz -C $ENV_HOME
sed -i '73a\export PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '73a\export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar' /etc/profile
sed -i '73a\export JAVA_HOME='$ENV_HOME'/jdk1.8.0_202' /etc/profile
sed -i '73a\# JAVA_HOME' /etc/profile
echo 'setup jdk8 successed!!!'
else
echo 'java已安装, 无需再安装'
fi
}
install_mysql8() {
if ! type mysql >/dev/null 2>&1; then
# 安装mysql
echo 'auto install mysql begining...'
# rpm安装mysql
rpm -ivh $ENV_HOME/mysql-community-*.rpm --nodeps --force
# 查看mysql版本
mysql -version
# 开始配置mysql
mysqld --initialize --user=mysql
# 记录临时密码
grep 'temporary password' /var/log/mysqld.log >result.txt
#读取文件中的密码,用于登录MySQL
password_mysql=$(cat result.txt | grep 'localhost' | awk -F ': ' '{print $2}')
# 启动mysql
systemctl start mysqld
# mysql原始密码
echo -e "查看MySQL的原始密码是啥? ${password_mysql}"
#连接MySQL的几个参数
hostname="localhost"
#hostname="192.168.15.12"
username="root"
port="3306"
#进入MySQL的交互模式,修改相应的参数,设置简单的密码为123456,为了以后自己用方便,实际上生产的密码都比较复杂一些
#mysql -h${hostname} -u${username} -P${port} -p${password_mysql} <<EOF
mysql -u${username} -p${password_mysql} --connect-expired-password <<EOF
alter user 'root'@'localhost' identified by 'root';
quit
EOF
new_password="root" #这里是配置远程访问策略
mysql -h${hostname} -u${username} -P${port} -p${new_password} <<EOF
use mysql;
update user set host = '%' where user = 'root'
flush privileges;
quit
EOF
echo 'setup mysql successed!!!'
else
echo 'mysql已安装, 无需再安装'
fi
}
install_tomcat() {
if ! type tomcat >/dev/null 2>&1; then
if type java >/dev/null 2>&1; then
echo 'auto install tomcat begining...'
# linux系统中安装有java才可以安装tomcat
tar -zxvf $ENV_HOME/apache-tomcat-9.0.55.tar.gz -C $ENV_HOME
sed -i '73a\export TOMCAT_HOME='$ENV_HOME'/apache-tomcat-9.0.55' /etc/profile
source /etc/profile
echo 'setup tomcat successed!!'
else
echo '安装tomcat需要jdk, 请先安装jdk'
fi
else
echo 'tomcat已安装, 无需再安装'
fi
}
install_redis() {
if ! type redis >/dev/null 2>&1; then
if type gcc >/dev/null 2>&1; then
echo 'auto install redis begining...'
tar -zxvf $ENV_HOME/redis-7.0.10.tar.gz -C $ENV_HOME
cd $ENV_HOME/redis-7.0.10 && make && make install PREFIX=/usr/local/env/redis-7.0.10/
echo 'setup redis successed!!'
else
echo '安装redis需要gcc环境, 请先安装gcc'
fi
else
echo 'redis已安装, 无需再安装'
fi
}
install_nginx() {
if ! type nginx >/dev/null 2>&1; then
#安装nginx
echo 'auto install nginx begining...'
# 安装gcc环境
echo 'install gcc environment...'
rpm -Uvh $ENV_HOME/gcc/*.rpm --nodeps --force
echo 'detect gcc environment...'
gcc -v
# 安装g++环境
echo 'install g++ environment...'
rpm -Uvh $ENV_HOME/gcc-c++/*.rpm --nodeps --force
echo 'detect g++ environment'
g++ -v
# 对目标目录的压缩包进行解压
for tar in $ENV_HOME/*.tar.gz; do tar xvf $tar; done
# # 安�