Linux systemd定時器簡單教程

很多教程都是使用crontab來實現定時功能,但crontab在ubuntu下默認并沒有安裝。而systemd也能實現定時任務功能,所以就直接使用它了,特在此作記錄。

需求:每天凌晨一點執行一次腳本

我喜歡把自己寫的定時器放在/usr/lib/systemd/system目錄下,如果不存在則新建一個,便于管理。

Start

需要新建兩個文件

  • mytimer.service
[Unit]
Description=備份tomcat前一天的log

[Service]
Type=simple
ExecStart=/root/sliceCatalina.sh

  • mytimer.timer
[Unit]
Description=每天凌晨一點備份tomcat前一天的log

[Timer]
OnCalendar=*-*-* 01:00:00
Unit=mytimer.service

[Install]
WantedBy=multi-user.target

啟動定時任務

systemctl daemon-reload  # 重新加載服務
systemctl enable mytimer.service
systemctl enable mytimer.timer
systemctl start mytimer.timer

查看timer運行狀態

systemctl status mytimer.timer
journalctl -f -u mytimer.timer # 查看定時器運行日志

關閉定時任務

systemctl disable mytimer.timer #關閉開機啟動(即刪除目錄鏈接)
systemctl stop mytimer.timer # 關閉單元
systemctl stop mytimer.service

之后刪除timer 和Service文件

systemctl daemon-reload # 重新加載配置

擴展

其實大家也看到了,timer的核心就是在[Timer]這一個點上,只要理解了就能很輕易的編寫定時任務了,下面舉幾個例子讓大家理解。

  • 每月26號的凌晨0點半執行一次:
    OnCalendar=*-*-26 00:30:00
    
  • 自定時器啟動10分鐘后間隔1小時執行一次
    OnBootSec=10min
    OnUnitActiveSec=1h
    
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容