如何设置一个cron作业来监控运行相同守护程序脚本(服务)的多个PI(通过SSH)?
我正在考虑使用cron作业监视服务状态,并在服务状态为活动或非活动状态时写入服务器上的文件,然后我可以稍后使用该文件的内容显示结果将Cron作业放到网页上(但这是我后来要弄清楚的)。
如果有人能够使用不同的工具找出更简单的方法,我会接受其他选择,例如。 bash脚本,python脚本,PHP等,
答案 0 :(得分:0)
关于你的问题
如何检查守护程序服务是否正在运行
在RHEL / CentOS v4.x / 5.x / 6.x和Fedora Linux(旧版本)中验证Cron服务 您只需使用以下任一命令查看crond是否正在运行,请输入:
$ pgrep crond
OR
$ service crond status
示例输出:
# crond (pid 4370) is running...
如果没有运行,请键入以下两个命令来启动crond:
$ chkconfig crond on
$ service crond start
通过查看日志文件验证cron是否正在运行,输入:
$ tail -f /var/log/cron
有关CentOS / RHEL v7.x +及最新版Fedora Linux的说明 您需要使用以下命令来确定crond是否正在运行:
$ systemctl status crond.service
示例输出:
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
Active: active (running) since Tue 2015-05-19 14:53:32 EDT; 3min 7s ago
Main PID: 1292 (crond)
CGroup: /system.slice/crond.service
└─1292 /usr/sbin/crond -n
如果没有运行,请将crond服务配置为在启动时自动启动:
$ sudo systemctl enable crond.service
$ sudo systemctl start crond.service
关于Debian / Ubuntu Linux(旧版本)Cron服务的说明 在Debian和Ubuntu Linux上,cron记录其操作记录到syslog工具,即使用/ var / log / messages文件:
$ tail -f /var/log/messages
查看cron守护程序是否正在运行,输入:
$ pgrep cron
如果没有运行,请输入:
$ update-rc.d cron defaults
$ /etc/init.d/cron start
关于Debian Linux v8.x +以及最新版Ubuntu Linux的说明 语法如下,以检查cron服务是否正在运行:
# systemctl status cron
示例输出:
â— cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled)
Active: active (running) since Tue 2015-05-19 11:49:32 IST; 12h ago
Docs: man:cron(8)
Main PID: 1053 (cron)
CGroup: /system.slice/cron.service
├─1053 /usr/sbin/cron -f
└─3020 /usr/bin/atop -a -w /var/log/atop/atop_20150520 600
如果没有运行,请将crond服务配置为在启动时自动启动:
$ sudo systemctl enable cron.service
$ sudo systemctl start cron.service
答案 1 :(得分:0)
我尝试了很多答案(也包括此页面上的内容),但是没有任何代码可用于nginx。
我不知道为什么即使其中一些代码确定Nginx服务已成功关闭,代码也不启动Nginx服务。
我发现唯一正在工作的就是这个。
添加具有以下代码的bash脚本文件:
(我已将代码添加到文件List<ModifiedPartList> PartList = new List<ModifiedPartList>();
List<ModifiedPartList> MpartList= new List<ModifiedPartList>();;
anotherMethode()
{
MpartList = CombinePartListforView(bar, ViewNum);
*
*
*
PartList.Clear();
}
中)
/opt/nginxstartifdown.sh
将其添加到cron作业(#!/bin/bash
service=$@
/bin/systemctl -q is-active "$service.service"
status=$?
if [ "$status" == 0 ]; then
echo "OK"
else
/bin/systemctl start "$service.service"
fi
)
sudo crontab -e
引用来自:(不是我的网站,不是我的内容) https://maslosoft.com/kb/watching-for-service-with-cron/
共享它,以便它可以帮助想要关闭它的人随时打开nginx。