systemctl timer systemd 設置定時任務


轉載自博客 http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html

Timer 單元

定時執行某個Service,必須定義 Timer 單元。

范例

/usr/lib/systemd/system目錄里面,新建一個mytimer.timer文件,寫入下面的內容。

[Unit]
Description=Runs mytimer every hour
[Timer]
OnUnitActiveSec=1h
Unit=mytimer.service
[Install]
WantedBy=multi-user.target

解釋

這個 Timer 單元文件分成幾個部分。
[Unit]部分定義元數據。

[Timer]部分定制定時器。Systemd 提供以下一些字段。

  • OnActiveSec:定時器生效后,多少時間開始執行任務
  • OnBootSec:系統啟動后,多少時間開始執行任務
  • OnStartupSec:Systemd 進程啟動后,多少時間開始執行任務
  • OnUnitActiveSec:該單元上次執行后,等多少時間再次執行
  • OnUnitInactiveSec: 定時器上次關閉后多少時間,再次執行
  • OnCalendar:基於絕對時間,而不是相對時間執行
  • AccuracySec:如果因為各種原因,任務必須推遲執行,推遲的最大秒數,默認是60秒
  • Unit:真正要執行的任務,默認是同名的帶有.service后綴的單元
  • Persistent:如果設置了該字段,即使定時器到時沒有啟動,也會自動執行相應的單元
  • WakeSystem:如果系統休眠,是否自動喚醒系統

上面的腳本里面,OnUnitActiveSec=1h表示一小時執行一次任務。其他的寫法還有OnUnitActiveSec=--* 02:00:00表示每天凌晨兩點執行,OnUnitActiveSec=Mon --* 02:00:00表示每周一凌晨兩點執行,具體請參考官方文檔

查看所有正在運行的定時器

systemctl list-timers

查看 mytimer.timer 的日志

journalctl -u mytimer.timer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM