开发环境下载,提供nginx-1.12.2、jdk-8u162、Jenkins下载
cd /usr
mkdir developmentEnvironment
cd /
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
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
1.安装
yum install git
2.验证
git --version
下载
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
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
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
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