Java运维?linux脚本赋能自动化

子涵先生其实是一个很“懒”很“懒”的程序员,而且我认为程序员的境界修炼,应该是一个逐渐变“懒”的过程。不卖关子了,这个“懒”指的是我们要提高自己的工作效率,而不是每天都在做重复的事情。程序员至高的境界就是不断封装、封装!

本文给大家分享在工作过程中,子涵先生积累的几个快速部署的脚本。

一键部署脚本

#!/bin/bash

# Author: 子涵先生
# Email: cowboy2014@qq.com
# DESC:  部署

#系统预检
/bin/bash ./scripts/pre_check.sh
if [ $? != 0 ];then
   exit 1
fi

#基础设置
/bin/bash  ./scripts/install_base.sh

#部署nginx
/bin/bash  ./scripts/install_nginx.sh

#部署java环境
/bin/bash  ./scripts/install_java.sh 

#部署mongodb
/bin/bash  ./scripts/install_mongodb.sh

#部署项目
/bin/bash  ./scripts/install_project.sh

#添加开机自启动服务
/bin/bash ./scripts/add_service.sh

#检查系统selinux状态
/bin/bash ./scripts/check_selinux.sh

一键卸载脚本

#!/bin/bash
# DESC:  一键卸载
# Author: 子涵先生
# Email: cowboy2014@qq.com

#基础设置
#/bin/bash  ./scripts/install_base.sh

rm -f /root/Downloads/jsodins.txt

#卸载nginx
systemctl stop nginx
rpm -e nginx-1.10.2-1.el7.ngx.x86_64


#卸载mongodb
/etc/init.d/mongodb stop 
rm -rf /home/mongodb
rm -f /etc/mongod.conf

#卸载项目
ps -ef|grep java|grep -v grep |awk '{print $2}'|xargs kill -9  >/dev/null 2&>1
rm -rf /home/dmp

#卸载java环境
rm -rf /usr/local/jdk1.8.0_181
sed -i '/JAVA_HOME/d' /etc/profile

#删除开机启动
rm -f /etc/init.d/autostart.sh

nginx自动部署脚本

#!/bin/bash

# Author: 子涵先生
# Email: cowboy2014@qq.com
# DESC:  部署nginx

#安装nginx
echo "部署nginx"
rpm -ivh soft/nginx-1.10.2-1.el7.ngx.x86_64.rpm 

#拷贝配置文件
echo "拷贝配置文件"
cp -rf conf/nginx.conf   /etc/nginx/

#启动nginx
echo "启动nginx,并设置为开机自启动"
systemctl start nginx
systemctl enable nginx

java自动部署脚本

#!/bin/bash

# Author: 子涵先生
# Email: cowboy2014@qq.com
# DESC:  部署java

echo "解压源文件"
tar -zxvf soft/jdk-8u181-linux-x64.tar.gz -C /usr/local/

echo "添加JAVA_HOME变量"
cat >> /etc/profile <<EOF
export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=.:\$JAVA_HOME/jre/lib/rt.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

echo "生效JAVA_HOME环境变量"
source  /etc/profile

项目自动部署脚本

#!/bin/bash

# Author: 子涵先生
# Email: cowboy2014@qq.com
# DESC:  部署项目


echo "拷贝文件后端应用程序"
mkdir -p /home/dmp/jar
mkdir -p /home/dmp/scripts
mkdir -p /home/dmp/plugin

cp -f soft/dmp-inner-interface.jar /home/dmp/jar
cp -f soft/dmp-data-config.jar /home/dmp/jar
cp -f soft/inner-single-searcher-1.0.0-SNAPSHOT.jar /home/dmp/plugin

echo "拷贝控制脚本"
cp -f conf/dmp-inner-interface.sh /home/dmp/scripts
cp -f conf/dmp-data-config.sh /home/dmp/scripts

echo "设置脚本权限"
chmod +x /home/dmp/scripts/*.sh

echo "压缩前端包"
tar xzf soft/frontend.tar.gz 

echo "拷贝前端包"
mv frontend  /home/dmp

echo "reload nginx 配置"
systemctl reload nginx

source /etc/profile
echo "启动项目"
/home/dmp/scripts/dmp-data-config.sh start
sleep 10
/home/dmp/scripts/dmp-inner-interface.sh start

更多运维大招

我们开发人员大部分的时间应该花在学习、思考、编码的过程中。然而,中小型的公司里,或者你想单独运营、管理一个项目,我们就不得不面临一些部署的环节。不同的服务器、不同的网络环境、不同的操作系统、不同的应用类型,都会给我们的部署过程添加一些困难。而且,这部分的工作时间也往往被领导忽视。
关于部署规范,子涵建议大家:

  1. 形成自己团队的部署规范,不同的成员都能熟知团队的部署规范,降低沟通成本;
  2. 选择团队自己擅长的技术栈,以及整理团队熟悉的软件版本。
  3. 有一个小册,持续不断地迭代它们,降低排错成本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子涵先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值