配置Systemd的定时器-timer

今天排查一台麒麟V10服务器故障,使用sar命令查看内存的历史使用数据,发现采样间隔是10分钟,

采样间隔太大,需要调整成2分钟。发现原来在CentOS中的方法不能用了。在CentOS 7中,修改配置文件“/etc/cron.d/sysstat”即可,

在CentOS中配置采样间隔

查询文档发现麒麟V10使用了systemd的定时器(即timer)来控制采样的间隔。要在麒麟V10中修改采样间隔,更新文件“/usr/lib/systemd/system/sysstat-collect.timer”,

 修改完成后,执行下面命令,

systemctl daemon-reload
systemctl restart sysstat-collect.timer

修改后,达到预期,

 什么是Systemd定时器?

它是 Systemd 单元文件的一种,其名称以“ .timer”结尾,用于控制 “.service ”文件或触发事件。定时器可以作为 cron 的替代方案。定时器内置对基于日历时间的事件和基于单调时间的事件的支持,并且可以异步运行。

如果一个服务“myapp.service”需要定期执行,只需要在目录“/etc/systemd/system”下创建一个同名但以“.timer”结尾的文件即可,这里要创建的定时器Unit文件就是“myapp.timer”,这样它们就可以自动绑定。

我们还是以sysstat为例,收集服务器性能参数的服务为“sysstat-collect.service”,

# /usr/lib/systemd/system/sysstat-collect.service
# /usr/lib/systemd/system/sysstat-collect.service
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-12.2.1 systemd unit file:
#        Collects system activity data
#        Activated by sysstat-collect.timer unit

[Unit]
Description=system activity accounting tool
Documentation=man:sa1(8)
After=sysstat.service

[Service]
Type=oneshot
User=root
ExecStart=/usr/lib64/sa/sa1 1 1

这里注意,服务的单元文件不需要“[Install]”部分,它的“[Install]”定义在定时器单元文件中。

控制服务“sysstat-collect.service”的定时器单元文件为“sysstat-collect.timer”,

# /usr/lib/systemd/system/sysstat-collect.timer
# /usr/lib/systemd/system/sysstat-collect.timer
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-12.2.1 systemd unit file:
#        Activates activity collector every 2 minutes

[Unit]
Description=Run system activity accounting tool every 2 minutes

[Timer]
OnCalendar=*:00/02

[Install]
WantedBy=sysstat.service

使用systemd的定时器,就可以方便的配置定时任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值