前言

前些天我买了一台Virmach的大盘鸡,1核512MB内存,500G硬盘,4T流量。这个配置做NextCloud还行,但LAMP环境比较消耗内存,而且Virmach的资源监控很严格,VPS不能在5分钟以上的时间内达到95-100%的使用率,在2小时内的平均使用率不能超过50%,一旦违反就会直接关机,让我经常看到NextCloud的“同步失败”提示。所以我要写个脚本来监控VPS,并且在VPS下线时自动开机。

实现

监控

使用nmap,扫描80端口是否开放,未开放即为服务器下线。

rt=`nmap $ip -p 80 | grep "open" | wc -l`
if [ $rt == 1 ]; then
        # Do something...
fi

启动服务器

SolusVM提供了API,所以我们用curl发送GET请求调用API开机就好了。
API地址http(s)://SolusVM面板地址/api/client/command.php?key=你的API Key&hash=你的API HASH&action=操作

SolusAPI 操作列表

Action目标
boot开机
reboot重启
shutdown关机
info服务器信息
status服务器状态

curl $boot_url; # boot_url是API开机地址。

完整脚本

#!/bin/bash

ip="你服务器IP"
svm_url="你服务器SolusVM面板地址"
api_key="你的API Key"
api_hash="你的API HASH"

boot_url=""${svm_url}"/api/client/command.php?key="${api_key}"&hash="${api_hash}"&action=boot"

while true; do
        rt=`nmap $ip -p 80 | grep "open" | wc -l`
        echo "Checked.";
        if [ $rt == 0 ]; then
                echo "Booting."
                curl $boot_url;
                if [ $? == 1 ]; then
                        echo "Error:Cannot Boot Server";
                        exit;
                else
                        echo "Successful booted server.";
                fi
        fi
        sleep 5;
done

使用方法

生成API Key和API HASH

打开SolusVM,找到你的服务器,然后点击API-Generate。
SolusVM-API
记好API Key和API HASH。

修改脚本

把脚本里面的内容修改,填入服务器IP/SolusVM后台地址/API Key/API HASH,保存。

修复权限

chmod +x 脚本文件名

注册服务

新建/etc/systemd/system/服务名称.service,在里面写入这些内容。

[Unit]
Description=Monitor the status of the SolusVM panel-Based VPS and enable it when the server is offline.

[Service]
ExecStart=/bin/bash 脚本文件路径

[Install]
WantedBy=multi-user.target

保存,执行以下命令载入服务。

systemctl daemon-reload
systemctl enable 服务名
systemctl start 服务名

最后,你就可以享受它了!

本文作者:博主:     文章标题:写个脚本监控你的VPS SolusVM面板适用
本文地址:https://www.allenyou.wang/tutorial/looking-your-vps-based-on-solusvm.html     
版权说明:若无注明,本文皆为Allenyou's Blog原创,转载请保留文章出处。
最后修改:2020 年 03 月 09 日 10 : 34 AM
如果觉得我的文章对你有用,请随意赞赏