一个客户端一键安装环境和服务的shell脚本

#!/bin/bash

basepath=$(cd `dirname $0`; pwd)
SHELL_DIR="${basepath}/shell"
PACKAGE_DIR="${basepath}/package"


##############################install rpm##########################
#关闭不必要的软件并禁止开机启动
systemctl stop firewalld
systemctl disable firewalld

#关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#开启转发
if [ `grep -v '^\s*#' /etc/sysctl.conf |grep -c 'net.ipv4.ip_forward\s\+=\s\+1'` -eq 0 ];then
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
fi

echo "start install RPMs"

rpm -ivh $PACKAGE_DIR/autossh-1.4e-1.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/net-tools-2.0-0.17.20131004git.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/sysstat-10.1.5-7.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/traceroute-2.0.19-5.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/telnet-0.17-59.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/tcpdump-4.5.1-3.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/lrzsz-0.12.20-36.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/iptables-services-1.4.21-16.el7.x86_64.rpm
rpm -ivh $PACKAGE_DIR/ntpdate-4.2.6p5-22.el7.centos.x86_64.rpm
yum install -y nfs-utils rpcbind

#校准系统时间
ntpdate "time1.aliyun.com"

#ssh登陆时不提示yes/no
echo 'StrictHostKeyChecking no' > /root/.ssh/config

#清空iptables,并保存
iptables -F
iptables -F -t nat
iptables-save > /etc/sysconfig/iptables
systemctl enable iptables

echo "success!"
##############################Deploy process01########################
echo "start deploy process01"

process01_DIR="/data/website"


if [ ! -e $process01_DIR ];then
mkdir -p $process01_DIR
fi


rm -rf $process01_DIR/*
cp -r $basepath/package/process01-beta $process01_DIR
cp -r $basepath/package/process02Anal $process01_DIR
chmod +x $process01_DIR/*

if [ ! -e /data/socket/ ];then
mkdir -p /data/socket/
fi

rm -rf /data/socket/*
cp -r $basepath/package/jiankong_start.sh /data/socket/
chmod +x /data/socket/jiankong_start.sh

cat $basepath/package/rc.local > /etc/rc.local
chmod +x /etc/rc.d/rc.local

process01pid=`ps aux|grep process01|grep -v "grep"|awk '{print $2}'`

if [ "$process01pid" ];then

kill -9 $process01pid
echo "old process01 is killed"
fi


process02pid=`ps aux|grep process02Anal|grep -v "grep"|awk '{print $2}'`

if [ "$process02pid" ];then
kill -9 $process02pid
echo "old process02Anal is killed"
fi

jiankongpid=`ps aux|grep jiankong|grep -v "grep"|awk '{print $2}'`

if [ "$jiankongpid" ];then
kill -9 $jiankongpid
echo "jiankong process is killed"
fi


nohup /data/socket/jiankong_start.sh &

if [ $? -ne 0 ]; then
echo "new jiankong process starting failed"
exit 1
fi


sleep 5
process01pid=`ps aux|grep process01|grep -v "grep"|awk '{print $2}'`

if [ "$process01pid" ];then
echo "success! process01 is running now"
fi

process02pid=`ps aux|grep process02Anal|grep -v "grep"|awk '{print $2}'`

if [ "$process02pid" ];then
echo "success ! process02Anal is running now"
fi

rm -rf /data/socket/public/
cp -r $basepath/package/public /data/socket/
chmod +x /data/socket/public/*
##############################Deploy nfs########################
echo "start deploy nfs-server"

cat $basepath/package/exports > /etc/exports

systemctl restart rpcbind
systemctl enable rpcbind

systemctl restart nfs
systemctl enable nfs

rm -rf /root/wendang/
cp -r $basepath/package/wendang /root/
cd /root/wendang/
chmod 777 Private/
chmod +x Program/
chmod +x Program/*

rpcbindpid=`ps aux|grep rpcbind|grep -v "grep"|awk '{print $2}'`

if [ "$rpcbindpid" ];then
echo "success ! rpcbind is running now"
fi

nfspid=`ps aux|grep nfs|grep -v "grep"|awk '{print $2}'`

if [ "$nfspid" ];then
echo "success ! nfs-server is running now"
fi

 

posted @   Oops!#  阅读(337)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示