背景
参数 | 解释 |
---|---|
OnActiveSec | 定时器生效后,多少时间开始执行任务 |
OnBootSec | 系统启动后,多少时间开始执行任务 |
OnStartupSec | Systemd 进程启动后,多少时间开始执行任务 |
OnUnitActiveSec | 该单元上次执行后,等多少时间再次执行 |
OnUnitInactiveSec | 定时器上次关闭后多少时间,再次执行 |
OnCalendar | 基于绝对时间,而不是相对时间执行 |
AccuracySec | 如果因为各种原因,任务必须推迟执行,推迟的最大秒数,默认是60秒 |
Unit | 真正要执行的任务,默认是同名的带有.service后缀的单元 |
Persistent | 如果设置了该字段,即使定时器到时没有启动,也会自动执行相应的单元 |
WakeSystem | 如果系统休眠,是否自动唤醒系统 |
单元描述文件对应的目录:
/lib/systemd/system:系统默认的单元文件
/etc/systemd/system:用户安装的软件的单元文件
/usr/lib/systemd/system:用户自己定义的单元文件
查看定时器
使用一下命令查看所有互动定时器:
[root@localhost ~]# systemctl list-timers
名字 | 功能 |
---|---|
NEXT | 下一次定时器将触发的时间戳 |
LEFT | 下一次定时器触发前还剩下的时间 |
LAST | 上一次定时器触发的时间戳 |
PASSED | 从上一次定时器触发到现在经过的时间 |
UNIT | 定时器单元的名称 |
ACTIVATES | 定时器关联的单元名称 |
DESCRIPTION | 定时器描述信息 |
如果要查看所有定时器(包括非活动的定时器),则需要加上 --all
systemctl list-timers --all
创建
单调定时器
编写一个定时器文件,命名为boot_backup.timer
,保存在/etc/systemd/system
目录下。内容如下:
[Unit]
Description=Run boot backup weekly and on boot
[Timer]
OnBootSec=0
OnUnitActiveSec=1w
Unit=boot_backup.service
[Install]
WantedBy=multi-user.target
OnBootSec=0 | 在启动时触发 |
---|---|
OnUnitActiveSec=1w | 每隔一周触发 |
multi-user.target | 当系统处于多用户模式(即multi-user.target )时,你的定时器也应该被激活和执行 |
服务单元
编写服务单元:
[root@localhost ~]# vim /etc/systemd/system/boot_backup.service
内容如下:
[Unit]
Description=Run boot backup weekly and on boot
[Service]
Type=simple
ExecStart=/usr/local/bin/boot_backup
这里的 Type 设置成 simple(默认值)。如果这只成 oneshot ,那么执行一次就会就会退出,系统会关闭定时器。
ExecStart 定义要执行的任务。
脚本
编写脚本
[root@localhost ~]# vim /usr/local/bin/boot_backup
内容:
#!/usr/bin/bash
xfsdump -f /opt/dump_boot /boot -L dump_boot -M drive0
赋予权限:
[root@localhost ~]# chmod +x /usr/local/bin/boot_backup
加载
重载单元文件:
[root@localhost ~]# systemctl daemon-reload
设置开机自启:
[root@localhost ~]# systemctl enable boot_backup.timer
Created symlink from /etc/systemd/system/multi-user.target.wants/boot_backup.timer to /etc/systemd/system/boot_backup.timer.
启动定时器:
[root@localhost ~]# systemctl start boot_backup.timer
查看
可以发现已经多了一个了。
[root@localhost ~]# systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
n/a n/a n/a n/a boot_backup.timer boot_backu
六 2023-12-23 22:00:00 PST 53min left 六 2023-12-23 21:00:01 PST 6min ago docker-cleanup.timer docker-clean
日 2023-12-24 00:00:00 PST 2h 53min left 六 2023-12-23 07:40:05 PST 13h ago unbound-anchor.timer unbound-anch
日 2023-12-24 17:01:41 PST 19h left 日 2023-09-10 05:04:40 PDT 3 months 13 days ago systemd-tmpfiles-clean.timer systemd-tmpf
4 timers listed.
Pass --all to see loaded but inactive timers, too.
标签:systemd,定时器,boot,timer,backup,localhost
From: https://www.cnblogs.com/qianyuzz/p/17924277.html