[工具] Shell LNMP 没运行则重启系统 (systemctl 版)

介绍

基本信息

作者:朱明宇
名称:LNMP 没运行则重启系统
作用:LNMP 没运行则重启系统

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本

#!/bin/bash
  
systemctl status nginx | grep 'active (running)'
if [ $? -ne 0 ];then
        /usr/sbin/reboot
fi

systemctl status mariadb | grep 'active (running)'
if [ $? -ne 0 ];then
        /usr/sbin/reboot
fi

systemctl status php-fpm | grep 'active (running)'
if [ $? -ne 0 ];then
        /usr/sbin/reboot
fi

[命令] Linux 命令 curl (测试网页访问)

内容一:测试网页可以被访问的案例

# curl -v -k https://eternalcenter.com

(补充:这里以直接访问 https://eternalcenter.com 网页为例)

内容二:测试网页访问速度的案例

2.1 案例一:显示测试过程

# curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} https://eternalcenter.com

(补充:这里以访问并测试 https://eternalcenter.com,并显示测试过程为例)

2.2 案例二:不显示测试过程

# curl -o /dev/null -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} https://
eternalcenter.com

(补充:这里以访问并测试 https://eternalcenter.com,并不显示测试过程为例)

内容三:测试使用代理访问网页的案例

3.1 案例一:使用代理

# curl -v --proxy proxy.example.com:8080 https://eternalcenter.com

(补充:这里以通过 proxy.example.com:8080 代理访问 https://eternalcenter.com 网页为例)

3.2 案例二:使用代理并使用用户进行验证

# curl -v --<proxy user> user:<password> --proxy proxy.example.com:8080 https://eternalcenter.com

(补充:这里以通过 proxy.example.com:8080 代理并使用 proxy user 和 password 进行验证访问 https://eternalcenter.com 网页为例)

内容四: 测试使用证书访问网页的案例

# curl -v -k https://eternalcenter.com --cacert /eternalcenter.com.pem

(补充:这里以通过 eternalcenter.com.pem 证书访问 https://eternalcenter.com 网页为例)

内容五:其他测试访问网页的案例

5.1 案例一:将网页下载后另存为别的文件

# curl -v https://eternalcenter.com -o eternalcentre.com

(补充:这里以下载 https://eternalcenter.com 并另存为 eternalcentre.com 为例)

5.2 案例二:静默下载的案例

# curl -v https://eternalcenter.com -o eternalcentre.com --silent

(补充:这里以静默下载 https://eternalcenter.com 为例)

5.3 案例三:不使用安全证书访问网页

# curl -k https://eternalcenter.com

或者:

# curl https://eternalcenter.com --insecure

(补充:这里以不使用安全证书访问 https://eternalcenter.com 网页为例)

[步骤] Linux Nginx 源码安装包的管理 (通过 systemd 实现)

注意:

在通过 systemd 管理源码安装的软件或自制 rpm 包安装的软件(以 Nginx 为例)之前,先要源码安装 Nginx 或者自制 rpm 包安装 Nginx

正文:

步骤一:创建 Nginx 的 systemd 文件

# vim /etc/systemd/system/nginx.service 

创建以下内容:

[Unit]

Description=nginx server daemon

Documentation=man:nginx(8)

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

步骤二:导入新创建的 Nginx systemd 配置文件

# systemctl daemon-reload

步骤三:使用 systemd 管理 Nginx

3.1 使用 systemd 启动 Nginx

# systemctl start nginx.service

3.2 使用 systemd 开机自启 Nginx

# systemctl enable nginx.service

3.3 使用 systemd 显示 Nginx 的状态

# systemctl status nginx.service

[步骤] Nginx 日志的切割

注意:

在设置 Nginx 自动化日志切割并保存之前要先安装 Nginx

正文:

内容一:切割 Nginx 日志的原理

# mv access.log access2.log
# kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

内容二:切割 Nginx 日志的 Shell 脚本

# mkdir -p /usr/local/nginx/
# vim /usr/local/nginx/nginxlog.sh

创建以下内容:

#!/bin/bash
date=$(date +%Y%m%d)
logpath=/usr/local/nginx/logs
mv $logpath/access.log $logpath/access-$date.log
mv $logpath/error.log   $logpath/error-$date.log
kill -USR1 $(cat $logpath/nginx.pid)

内容三:设置 Nginx 日志切割的自动化任务

# crontab -e
03 03 * * 5 /usr/local/nginx/nginxlog.sh

(补充:这里以每周五的 3 点 3 分执行 /usr/local/nginx/nginxlog.sh 命令为例)

[实验] Nginx 模块的设置 (监控模块)

软件准备:

在 Nginx 官网上下载搭建集群所需软件 Nginx:

http://nginx.org/en/download.html

正文:

步骤一:系统环境要求

1) 所有服务器的系统都需要是 CentOS 7 版本
2) 所有服务器系统都需要有 yum 源

步骤二:安装带有状态信息监控模块的 Nginx

# yum -y install gcc pcre-devel openssl-devel
# tar -xvf nginx-1.16.1.tar.gz
# cd nginx-1.16.1
# ./configure \
>--with-http_stub_status_module
# make && make install

(补充:这里以安装 nginx-1.16.1 为例)

步骤三:修改 Nginx 的配置文件

# vi /usr/local/nginx/conf/nginx.conf

将部分内容修改如下:

......
location /status {
stub_status on;
#allow IP address;
#deny IP address;
}
......

步骤四:启动 Nginx

# /usr/local/nginx/bin/nginx

步骤五:显示监控模块

通过浏览器访问以下网址:

http://127.0.0.1/status