systemd定时器Timer的实现

systemd定时器的作用及使用场景

通过一个计时器和一个服务进行关联,达到每分钟调用的目的
1、创建一个监控nginx进程cpu利用率的服务

[root@web1 ~]# cd /usr/lib/systemd/system
[root@web1 system]# vim nginx_cpu.service
[Unit]
Description=monitor the cpu utilization of nginx process

[Service]
Type=forking
ExecStart=/root/nginx_cpu.sh

[Install]
WantedBy=multi-user.target
#################################################################################
[root@web1 ~]# vim nginx_cpu.sh			//监控nginx进程cpu利用率脚本
#!/bin/bash
#monitorthe cpu utilization of nginx process
date=`date +"%Y-%m-%d %H:%M:%S"`
nginx_cpu=`ps -aux|grep nginx|awk '/worker process/{print $3}'`
result=`echo "$nginx_cpu > 0.5"|bc`
if [ $result -eq 1 ]; then
     #nginx进程cpu利用率高于0.5时发送告警邮件给root
     echo "At $date, the cpu utilization of nginx is greater than 0.5"|mail -s "nginx_cpu" root		
fi

2、创建计时器

[root@web1 system]# vim nginx_cpu.timer
[Unit]
Description=run nginx_cpu.sh every one minutes

[Timer]
OnCalendar=*-*-* *:00/01:00		//每日整点后每隔1分钟调用服务
Unit=nginx_cpu.service		//关联systemd服务

[Install]
WantedBy=timers.target

3、daemon-reload重新加载

[root@web1 system]# systemctl daemon-reload

4、启动计时器

[root@web1 system]# systemctl start nginx_cpu.timer
[root@web1 system]# systemctl is-active nginx_cpu.timer
active
[root@web1 system]# systemctl enable nginx_cpu.timer
[root@web1 system]# systemctl is-enabled nginx_cpu.timer
enabled

5、结果确认

[root@web1 ~]# mail -u root
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/mail/root": 44 messages 2 new 14 unread
 U 41 root                  Thu Jul  4 22:30  19/648   "nginx_cpu"
 U 42 root                  Thu Jul  4 22:31  19/648   "nginx_cpu"
>N 43 root                  Thu Jul  4 22:32  18/638   "nginx_cpu"
 N 44 root                  Thu Jul  4 22:33  18/638   "nginx_cpu"
&

补充:OnCalendar的设定格式示例
格式一:
systemd定时器Timer的实现_第1张图片
格式二:
systemd定时器Timer的实现_第2张图片
格式三:
systemd定时器Timer的实现_第3张图片

你可能感兴趣的:(linux,systemd,nginx)