17.4 【Linux】systemctl 针对 timer 的配置文件

简介: 17.4 【Linux】systemctl 针对 timer 的配置文件

有时候,某些服务你想要定期执行,或者是开机后执行,或者是什么服务启动多久后执行等等的。在过去,我们大概都是使用 crond 这个服务来定期处理, 不过,既然现在有一直常驻在内存当中的 systemd 这个好用的东西,加上这 systemd 有个协力服务,名为 timers.target的家伙,这家伙可以协助定期处理各种任务。


systemd.timer 的优势


为什么要使用systemd.timer呢?


由于所有的 systemd 的服务产生的信息都会被纪录 (log),因此比 crond 在 debug 上面要更清楚方便的多;


各项 timer 的工作可以跟 systemd 的服务相结合;


各项 timer 的工作可以跟 control group (cgroup,用来取代 /etc/secure/limit.conf 的功能) 结合,来限制该工作的资源利用


任务需求


基本上,想要使用 systemd 的 timer 功能,你必须要有几个要件:


系统的 timer.target 一定要启动


要有个 sname.service 的服务存在 (sname 是你自己指定的名称)


要有个 sname.timer 的时间启动服务存在


sname.timer 的设置值


可以到 /etc/systemd/system 下面去创建这个 *.timer 档,那这个文件的内容要项有哪些东西呢?基本设置主要有下面这些: (man systemd.timer & man systemd.time)

使用于 OnCalendar 的时间

如果你想要从 crontab 转成这个 timer 功能的话,那么对于时间设置的格式就得要了解了解,基本上的格式如下所示:


常用的间隔时间单位有:


us 或 usec:微秒 (10-6 秒)

ms 或 msec:毫秒 (10-3 秒)

s, sec, second, seconds

m, min, minute, minutes

h, hr, hour, hoursd, day, days

w, week, weeksmonth, months

y, year, years

此外,你也可以使用英文常用的口语化日期代表,例如 today, tomorrow 等!假设今天是2015-08-13 13:50:00 的话,那么:


17.5 CentOS 7.x 默认启动的服务简易说明


17.6 重点回顾

早期的服务管理使用 systemV 的机制,通过 /etc/init.d/*, service, chkconfig, setup 等指令来管理服务的启动/关闭/默认启动;


从 CentOS 7.x 开始,采用 systemd 的机制,此机制最大功能为平行处理,并采单一指令管理 (systemctl),开机速度加快!


systemd 将各服务定义为 unit,而 unit 又分类为 service, socket, target, path, timer 等不同的类别,方便管理与维护


启动/关闭/重新启动的方式为: systemctl [start|stop|restart] unit.service


设置默认启动/默认不启动的方式为: systemctl [enable|disable] unit.service


查询系统所有启动的服务用 systemctl list-units --type=service 而查询所有的服务 (含不启动) 使用 systemctl list-unit-files --type=service


systemd 取消了以前的 runlevel 概念 (虽然还是有相容的 target),转而使用不同的target 操作环境。常见操作环境为 multi-user.targer 与 graphical.target。 不重新开机而转不同的操作环境使用 systemctl isolate unit.target,而设置默认环境则使用 systemctlset-default unit.target


systemctl 系统默认的配置文件主要放在 /usr/lib/systemd/system,管理员若要修改或自行设计时,则建议放在 /etc/systemd/system/ 目录下。


管理员应使用 man systemd.unit, man systemd.service, man systemd.timer 查询/etc/systemd/system/ 下面配置文件的语法, 并使用 systemctl daemon-reload 载入后,才能自行撰写服务与管理服务。


除了 atd 与 crond 之外,可以 通过 systemd.timer 亦即 timers.target 的功能,来使用systemd 的时间管理功能。


一些不需要的服务可以关闭。


相关文章
|
4月前
|
网络协议 Ubuntu Linux
linux网络配置文件
Linux网络配置文件因发行版不同而异:Ubuntu使用`/etc/network/interfaces`,Red Hat系列采用`/etc/sysconfig/network-scripts/ifcfg-ethX`,CentOS用`/etc/sysconfig/network`设置主机名和网关,`/etc/resolv.conf`配置DNS。其他文件如`/etc/hostname`和`/etc/nsswitch.conf`也影响网络设置。编辑这些文件时,记得先备份,并可能需重启网络服务以应用更改。具体操作应参考相应Linux发行版的文档。
48 1
|
26天前
|
存储 Ubuntu Linux
在Linux中,如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配置文件?
在Linux中,如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配置文件?
|
26天前
|
存储 安全 Linux
在Linux中,内核调优配置文件名字有哪些?举例几个内核需要优化的参数配置?
在Linux中,内核调优配置文件名字有哪些?举例几个内核需要优化的参数配置?
|
26天前
|
网络协议 Ubuntu Linux
在Linux中,设置DNS需要修改哪个配置文件?
在Linux中,设置DNS需要修改哪个配置文件?
|
2月前
|
关系型数据库 MySQL Linux
Linux命令systemctl详解
`systemctl`是Linux系统用于管理systemd服务的核心命令,它与systemd守护进程交互,实现启动、停止、重启服务及查看服务状态等功能。主要参数包括`start`、`stop`、`restart`、`status`、`enable`和`disable`等。例如,启动Apache服务使用`systemctl start httpd.service`,查看服务状态用`systemctl status <service>`。使用时需注意权限,服务名通常以`.service`结尾,但命令中可省略。最佳实践包括利用tab键补全、定期查看服务状态和合理配置服务自启。
|
2月前
|
Ubuntu 应用服务中间件 Linux
Linux学习之Ubuntu 20中OpenResty的nginx目录里内容和配置文件
总的来说,OpenResty的Nginx配置文件是一个强大的工具,它允许你以非常灵活的方式定义你的Web服务的行为。
31 2
|
2月前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
2月前
|
NoSQL 算法 Linux
【内附完整redis配置文件】linux服务器命令设置redis最大限制内存大小,设置redis内存回收机制,redis有哪些回收机制
【内附完整redis配置文件】linux服务器命令设置redis最大限制内存大小,设置redis内存回收机制,redis有哪些回收机制
49 0
|
3月前
|
Linux 开发工具 数据安全/隐私保护
远程编辑Linux配置文件
远程编辑Linux配置文件
|
4月前
|
Ubuntu 应用服务中间件 Linux
蓝易云 - Linux学习之Ubuntu20中OpenResty的nginx目录里内容和配置文件
你可以根据你的需要修改这个配置文件,例如增加新的服务器块,位置块,修改监听的端口等。修改完配置文件后,你需要重载Nginx配置,可以使用 `/usr/local/openresty/nginx/sbin/nginx -s reload`命令来实现。
50 0