Linux systemd 定時器 timer
阿新 • • 發佈:2022-04-29
用來取代 crontab
systemd
系列文章請檢視:https://www.khs1994.com/tags/systemd/
要使用定時器必須編寫兩個檔案:
-
name.timer
配置時間。 -
name.service
配置具體執行的命令。
注意:這兩個檔案的名稱是相同的,只是字尾不同。
編寫指令碼
/usr/local/bin/name.sh
#!/bin/bash
date >> /tmp/name.txt
echo 1 >> /tmp/name.txt
在 /etc/systemd/system
資料夾內編寫下面的兩個檔案。
name.timer
[Unit] # 描述資訊 Description=My systemd timer Demo [Timer] # 首次執行要在啟動後10分鐘後 OnBootSec=10min # 每次執行間隔時間 OnUnitActiveSec=1h [Install] WantedBy=multi-user.target
詳細資訊請檢視以下網址:
- http://www.jinbuguo.com/systemd/systemd.timer.html
- https://www.freedesktop.org/software/systemd/man/systemd.timer.html
用法舉例
[Timer] OnCalendar=*-*-* *:*:00 # 每分鐘執行,與 crontab 類似。 # hourly → *-*-* *:00:00 # daily → *-*-* 00:00:00 # monthly → *-*-01 00:00:00 # weekly → Mon *-*-* 00:00:00 # yearly → *-01-01 00:00:00 # quarterly → *-01,04,07,10-01 00:00:00 # semiannually → *-01,07-01 00:00:00
name.service
[Unit]
# 描述資訊
Description=My systemd timer Demo
[Service]
Type=simple
ExecStart=/usr/local/bin/name.sh
啟用定時器
$ sudo systemctl daemon-reload
$ sudo systemctl enable name.timer
$ sudo systemctl start name.timer
檢視定時器
$ systemctl list-timer
檢視日誌。
$ sudo journalctl -u name.service