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/profile

export 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/bin

source /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/profile

  MAVEN_HOME=/usr/developmentEnvironment/apache-maven-3.6.3
  export MAVEN_HOME
  export PATH=${PATH}:${MAVEN_HOME}/bin
  
source /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}
    do
        echo "启动"${i}
        nohup java -jar ${i} &
        sleep 10s
    done
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}
    do
        echo "备份数据库"${i}
        mysqldump -u$username -p$password ${i} > ${i}-`date +%Y-%m-%d`.sql
        sleep 60s
    done

# 删除两天前的数据库备份
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

你可能感兴趣的:(Java)