← 回筆記簿 春春的技術筆記
軟體

用 systemd timer 取代 cron 跑定時任務

cron 的語法總是要查,換成 systemd timer 之後排程更直覺、日誌也更好追。

難度
●○○ 入門
需要的工具
Linuxsystemd終端機

cron 跑了很多年,但每次要改排程都得回去查那五個星號的順序,出錯也只能靠 mail 通知。systemd timer 把「什麼時候跑」跟「跑什麼」拆成兩個檔案,清楚很多。

兩個檔案

一個 .service 定義要做的事,一個 .timer 定義什麼時候做。

backup.timer
[Unit]
Description=每天凌晨備份
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
  1. 把兩個檔案放到 /etc/systemd/system/,然後 enable 並啟動 timer。

注意: Persistent=true 很關鍵——機器在排程時間是關機的,開機後會把錯過的任務補跑一次。

之後用 journalctl -u backup.service 就能看到每次執行的完整日誌,比翻 cron 的 mail 舒服太多。

#linux#systemd#automation
春春
白天寫服務端、晚上拆硬體。這個筆記簿記錄那些查了三小時才搞懂、不想再忘記的事。