其实,想定时的执行某个任务,我们最简单的方式是通过cronjob,但是通过systemd timers 是另外一种方式
首先,想要实现这个目的,我们需要两个部分:
- timer 控制什么时候执行
- service 控制具体的执行的命令
例子:
1 2 3 4 5 6 7 |
cat /etc/systemd/system/date.service [Unit] Description=Prints date into /tmp/date file [Service] Type=oneshot ExecStart=/usr/bin/sh -c '/usr/bin/date >> /tmp/date' |
1 2 3 4 5 6 |
cat /etc/systemd/system/date.timer [Unit] Description=Run date.service every 10 minutes [Timer] OnCalendar=*:0/10 |
创建两个文件后我们需要执行如下命令:
1 2 3 |
systemctl daemon-reload systemctl enable date.timer systemctl start date.timer |
注意:此处因为连个对象的名字是一致的,都是date , 所以不需要在timer文件中额外设定需要执行的服务名称,如果名字不一致,需要额外设定
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021