#!/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

一个客户端一键安装环境和服务的shell脚本的更多相关文章

  1. socket小程序写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回

    写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回 本机id是192.168.xx.xy 服务端 import socket soc = socket.soc ...

  2. 一个统计 CPU 内存 硬盘 使用率的shell脚本

    一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Uti ...

  3. Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务

    文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...

  4. telnet登录路由器启动服务的shell脚本

    因为在测试中经常要telnet登录到路由器中去配置环境启动路由器,每次都输入一遍命令太麻烦了,想着写一个shell脚本实现自动登录.配置环境.启动服务的过程. 脚本实现是使用expect来实现的,所以 ...

  5. 监测NGINX服务的shell脚本

    Nginx 虽然处理并发量比 apache 确实要强点,但它这种 php-cgi 模式不是太稳定,这点网上也有朋友总结了,我在实现项目中也感受到了. 偶尔会出现以下情况的:php-cgi 进程突然消失 ...

  6. 监控Nginx服务的Shell脚本

    Nginx 虽然处理并发量比 apache 确实要强点,但它这种 php-cgi 模式不是太稳定,这点网上也有朋友总结了,我在实现项目中也感受到了. 我们一台支付机,偶尔会出现以下情况的:php-cg ...

  7. 自己主动下载源代码_并编译_打包_部署_重新启动服务的Shell脚本

    这里面Shell的各个操作含义,可參考我三年前的这篇文章:http://blog.csdn.net/jadyer/article/details/7960802 #!/bin/sh APP_NAME= ...

  8. 一个简单的同步集群的shell脚本

    编写一个xsync文件 然后放在/usr/local/bin 目录下面 xsync文件如下: #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pco ...

  9. 一个导出redis有序集合sorted-sets的shell脚本

    通过keys匹配需要导出的有序集合名称,这些集合命名格式为:*_010_09/Dec/2015 依次通过zscan导出有序集合中的数据,并分别保存 #/bin/shzset_pattern=”*_01 ...

随机推荐

  1. Asp.net Core 跨域配置

    一般情况WebApi都是跨域请求,没有设置跨域一般会报以下错误 No 'Access-Control-Allow-Origin' header is present on the requested ...

  2. python_斐波那契数列

    什么是斐波那契数列? -- 一组第从第三个值开始,每个值都等于前两个值之和的一种有意思的数列 如[1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 如何用程序进行实现? -- 逻辑整 ...

  3. 基于jsmpeg库下使用ffmpeg创建视频流连接websocket中继器传输视频并播放

    这个功能的基本工作是这样的: 1.使用node运行jsmpeg库下的websocket-relay.js文件,这个文件的作用是创建一个websocket视频传输中继器 2.运行ffmpeg,将输出发送 ...

  4. android adapter 中添加OnClickListener事件

    public class SearchAutoAdapter extends BaseAdapter { private OnClickListener mOnClickListener; publi ...

  5. docker基础及安装

    Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  6. C语言预处理 编译 汇编 链接四个阶段

    c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接. 编译过程 编译过程又可以分成两个阶段:编译和会汇编. 编译 编译是读取源程序(字符流),对之进行词法和语法的分析,将高 ...

  7. Call to undefined function mysql_connect()错误原因

    从PHP5.0开始就不推荐使用mysql_connect()函数,到了php7.0则直接废弃了该函数,替代的函数是: mysqli_connect();

  8. c# 类属性和方法

    属性 public 类字段 就相当于c#里面暴露给外面的属性 类似nodejs的 module.exports 但是属性又不同于普通的字段,属性只是外部包装字段 没有自己的任何含量 类似退换后的方法. ...

  9. Designing Data-Intensive Applications

    下面是这本书序言中的大部分内容,本人的英文水平有限,有理解不到位的地方还请大家指教,这算是自己对这本书的读书笔记和总结. 数据是当今系统设计中许多挑战的中心,一些难以解决的问题如系统的可扩展性,一致性 ...

  10. Android+TensorFlow+CNN+MNIST 手写数字识别实现

    Android+TensorFlow+CNN+MNIST 手写数字识别实现 SkySeraph 2018 Email:skyseraph00#163.com 更多精彩请直接访问SkySeraph个人站 ...