Centos7搭建Java环境,并设置项目自启动脚本、定时数据库备份/日志清理脚本

开发环境下载,提供nginx-1.12.2、jdk-8u162、Jenkins下载

建个文件夹,作为开发环境存放路径

cd /usr 
mkdir developmentEnvironment
cd /

一.java

1.解压包

tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/developmentEnvironment

2.配置环境变量

vim /etc/profileexport JAVA_HOME=/usr/developmentEnvironment/jdk1.8.0_162
export JRE_HOME=/usr/developmentEnvironment/jdk1.8.0_162
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/binsource /etc/profile

3.验证

java -version

二.mysql

1.下载mysql官方的yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2.安装mysql官方的yum Repository

yum -y install mysql57-community-release-el7-10.noarch.rpm

3.安装mysql服务器

yum -y install mysql-community-server

4.mysql数据库设置

启动mysql

systemctl start  mysqld.service

查看运行状态

systemctl status mysqld.service

此时mysql已经开始正常运行,不过要想进入mysql还得先找出此时在日志文件中找出root用户的密码

grep 'password' /var/log/mysqld.log

进入数据库,重置密码 111111可以替换成自己的密码

mysql -uroot -p
alter user 'root'@'localhost' identified by '111111';

开启mysql的远程访问

grant all privileges on *.* to 'root'@'%' identified by '111111' with grant option;

然后再输入下面两行命令

flush privileges;
exit;

重启mysql服务使配置生效

systemctl restart mysqld

验证

mysql -V

三.git

1.安装

yum install git

2.验证

git --version

四.maven

下载

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

1.解压包

tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/developmentEnvironment

2.配置环境变量

vim /etc/profileMAVEN_HOME=/usr/developmentEnvironment/apache-maven-3.6.3export MAVEN_HOMEexport PATH=${PATH}:${MAVEN_HOME}/binsource /etc/profile

3.验证

mvn -v

五.nginx

一、安装所需要的环境

1、gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

2、PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

3、zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

4、OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

yum install -y openssl openssl-devel
二、下载并安装Nginx
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

3、解压nginx安装包

tar -zxvf nginx-1.12.2.tar.gz -C /usr/developmentEnvironment

4、使用默认配置(这里推荐使用默认配置)

cd /usr/developmentEnvironment/nginx-1.12.2
./configure

5、编译安装

make
make install

6、验证

nginx -v

7.启动

/usr/local/nginx/sbin/nginx

六.jenkins

java -jar /opt/app/jenkins.war

七.脚本

开始前,先设置nginx自启动,请参考以下链接
Linux(CentOS)下设置nginx开机自动启动(2个办法)
Red Hat NGINX Init Script

1.项目自启动脚本
(1)编写脚本 start.sh

#!/bin/bash# 配置环境,请设置Java环境,即使你在系统中已经设置成功
# 路径改成自己的java路径
JAVA_HOME=/usr/developmentEnvironment/jdk1.8.0_162
JRE_HOME=/usr/developmentEnvironment/jdk1.8.0_162
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH# /opt/app/改成自己的项目路径
echo "====================开始启动====================="
nohup java -jar /opt/app/jenkins.war &
sleep 10s
# /opt/app/改成自己的项目路径,参考鸟叔TODO
list=$(find /opt/app/ -name '*.jar')for i in ${list}doecho "启动"${i}nohup java -jar ${i} &sleep 10sdone
echo "====================启动成功====================="

(2)添加可执行权限

chmod +x /opt/shell/start.sh

(3)在/etc/rc.d/rc.local文件末尾追加如下脚本

/opt/shell/start.sh

(4)将rc.local标记为可执行文件。

chmod +x /etc/rc.d/rc.local

(5)重启服务器,查看脚本执行效果

# 重启
reboot
# 查看运行的项目
ps -ef | grep jar

此时前台通过ip+端口或域名访问运行的项目
因为服务器重启、项目启动需要时间,我测试时用了6个项目,输入reboot命令后,等待约5分钟项目都正常自启动了;若读者项目更多,等待时间会更长些,要有耐心

2.定时数据库备份/日志清理脚本
(1)编写脚本 backup.sh

#!/bin/bash# 用户名
username=root
# 密码,替换成自己的数据库密码
password=111111
# 备份路径 替换成自己的数据库备份文件存放路径
cd /opt/cf/backup# mysql排除系统数据库备份,参考鸟叔TODO
list=$(mysql -u$username -p$password -e "show databases;" | grep -Ev "Database|information_schema|mysql|performance_schema|sys";)for i in ${list}doecho "备份数据库"${i}mysqldump -u$username -p$password ${i} > ${i}-`date +%Y-%m-%d`.sqlsleep 60sdone# 删除两天前的数据库备份
find /opt/cf/backup/ -mtime +1 -name "*.sql" -delete;
sleep 10s# 删除两天前的项目日志
find /opt/cf/logs/ -mtime +1 -name "*.log" -delete;
sleep 10s# 删除项目console日志
rm -rf /opt/app/nohup.out    
sleep 10s# 我司服务器差不多每两周内存就到100%,每次都要重启很麻烦,于是加了这行脚本
# 清除服务器缓存(PageCache, dentries and inodes)
sync; echo 3 > /proc/sys/vm/drop_caches

(2)添加可执行权限

chmod +x /opt/shell/backup.sh

(3)编写定时执行 backup.cron

vim /opt/shell/backup.cron
#backup.cron中添加以下脚本,并保存文件
0 6 * * * /opt/shell/backup.sh

(4)随后使用crontab命令定期指令编写的定时脚本

crontab /opt/shell/backup.cron# 再通过命令检查定时任务是否已创建:crontab -l

(5)启动定时任务

service crond restart

(6)定时执行后,查看数据库是否正常备份、日志是否正常清理

ll -ht /opt/cf/backup
ll -ht /opt/cf/logs    
若能看到今天的数据库备份文件,2天前的备份、日志已被清理,脚本即执行成功

第一次从零开始搭建服务器环境,终于把脚本也搞好了。写个博客,留待查看。读者有任何问题,欢迎留言!

参考 :
java 开发人员学Linux(3):CentOS7中安装JDK8和Tomcat8
mysql+git linux(Centos7)配置jdk,jenkins,python3,git,mysql5.7
maven Linux下Maven的安装与使用
jenkins 安装Jenkins
nginx自启动
Linux(CentOS)下设置nginx开机自动启动(2个办法)
Red Hat NGINX Init Script
项目自启动脚本 CentOS 开机启动指定jar包
定时数据库备份/日志清理脚本 MySQL定时备份数据库(全库备份)
清理服务器缓存 How to Clear RAM Memory Cache, Buffer and Swap Space on Linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--参数自动映射篇(6/8)...

文章目录 前情概要 路由、action的扫描、发现、注册搞定之后,后来我发现在我们的action里面获取参数往往都是通过request对象来一个一个获取。同样的一行代码我们不厌其烦的重复写了无数次。遂想着那我们能不能像后端程序一样做得更自动化一些呢? 所以&a…

Java String常用的数据类型转换

工作写代码经常遇到string的数据类型转换,每次都去搜索如何转换很不方便。写篇博客做个总结,以后看这篇就好了。 1.string-bigDecimal 2.string-date Testpublic void StringToDate() throws ParseException {Date date new SimpleDateFormat("yy…

深度学习之Batch Normalization

1、Batch Normalization的引入 在机器学习领域有个很重要的假设:IID独立同分布假设,也就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集上获得好的效果的一个基本保障。在深度学习网络中,后一…

[css] 为什么说css的选择器一般不要超过三级?

[css] 为什么说css的选择器一般不要超过三级? CSS的解析过程,在解析选择器的时候,是从右向左,从上到下及逆行解析的。 超过三级会使的css解析树复杂度呈指数级增加,降低css加载性能个人简介 我是歌谣,欢迎…

调用支付宝接口 alipay.data.bill.accountlog.query,提示:ISV权限不足

使用环境:正式环境 接口名称:alipay.data.bill.accountlog.query(支付宝商家账户账务明细查询) 提示:ISV权限不足,建议在开发者中心检查签约是否已经生效 参考: 支付宝商家账户账务明细查询接口文档 自己按照支付宝官…

工作309:uni-获取vuex里面的值

marketId:this.vuex_user.market_id

vue给同一元素绑定单击click和双击事件dblclick,执行不同逻辑

在做项目过程中,需求是点击孔位单击弹出对话框查看产品总数,双击弹出对话框查看详情。一开始直接click和dblclick写在标签里面,但是不管怎么样,总是执行单击事件 解决办法:利用计时器,在大概时间模拟双击事…

CentOS7 1.搭建环境脚本

公司没有专职运维,搭建服务器全部都是程序员操作。以前手动搭建需要1天时间,搭建过程很慢、很无聊,于是自己总结了如下脚本,执行完需要18分钟,以后再也不用苦逼的搭建环境了。 build.sh #!/bin/bashecho "新建de…

工作310:uni-初始获取数据onload

/* 第一步定义onload方法 */onLoad(){/* 调用市场信息的接口 分别 vuex获取 其他三项 */this.$u.api.getpartyList({marketId:this.vuex_user.market_id,type:"通知公告",pageNo:1,pageSize :20}).then(res>{if(res.data.code200){this.tableDatares.data.data.re…

LeetCode 258 Add Digits

leetcode 上做了一题比较有意思,记录一下,传送门:https://leetcode.com/problems/add-digits/description/ 题目意思是:给一个正整数a,让其个位,十位,百位一直到最高位加起来得到另一个数字b&am…

工作311:uni-携带当前参数跳转页面传值

第一步 <view v-for"(item,index) in tableData" click"getDetail(item.id)" class" box"><view class"u-line-1 u-m-b-24 u-font-30 color-3">{{item.title}}&#xff01;</view><view class"u-flex u-ro…

web自动化测试(java)---测试过程中遇到的错误合集

摸索测试&#xff0c;不管是安装、调测第一个用例都会遇到各种各样的问题&#xff0c;或是自己的问题或是程序本身设置问题 只有把所有问题记录下来&#xff0c;才对得起自己的经历 1、设置firefox的执行文件错误 Exception in thread "main" org.openqa.selenium.We…

CentOS7 3.项目持续交付脚本

#停止原有工程 ps -ef | grep demo | grep -v grep | awk {print $2} | xargs kill#删除原有工程 rm -rf /opt/app/demo.jar#解压压缩包指定文件&#xff0c;并存入指定路径 #tar -zxf 压缩包 -C 解压到的路径 压缩包中指定文件名 tar -zxf /opt/app/demo.tgz -C /opt/app .…

工作312:uni-弹出框显示数据

<template><view class"wrap"><u-form :model"form" :rules"rules" ref"uForm" :errorType"errorType"><u-form-item label"标题" label-width"140" style"margin-left:30rp…

运算符和编码

格式化输出 现在有以下需求,让用户输入name, age, job,hobby 然后输出如下所⽰示:------------ info of Alex Li -----------Name : Alex LiAge : 22job : TeacherHobbie: girl------------- end -----------------你怎么实现呢&#xff1f;你会发现&#xff0c;用字符拼接的方…

CentOS7 2.新项目上线脚本

我司一个客户项目对应代码仓库的一个分支&#xff0c;每次新项目上线总是要从master复制一个分支&#xff0c;接着git clone到本地&#xff0c;在IDEA里面替换配置文件内容&#xff0c;上传到代码仓库&#xff0c;启动项目&#xff0c;配置nginx.conf&#xff0c;每次新项目上线…

工作312:uni-时间戳处理

第一步 <u-form-item label"结束时间" prop"endDate" label-width"200"><u-input type"select" v-model"form.endDate" placeholder"请选择" click"end_time_show true"></u-input>…

informix如何查询第一条记录

1.select first 1 * from shop;    正序查询第一条数据 2.select first 1 * from shop order by create_time desc;    按创建时间倒序查询第一条数据 3.select first 1 shopid from shop;    正序查询第一条数据中的shopid字段 4.select first 1 shopid from shop…

工作314:uni-提交成功加入表单验证

增加验证规则 <u-form :model"form" :rules"rules" ref"uForm" :errorType"errorType"><navigator url"../LevineHua-editor/LevineHua-editor" class"single"><u-form-item label"荣誉照片&…

HDOJ 1233 (克鲁斯卡尔+并查集)

还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 58011 Accepted Submission(s): 26354 Problem Description 某省调查乡村交通状况&#xff0c;得到的统计表中列出了任意两村庄间的距离。省政府“…