1. 程式人生 > 其它 >Linux systemd 定時器 timer

Linux systemd 定時器 timer

用來取代 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

詳細資訊請檢視以下網址:

用法舉例

[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