如何创建systemd定时任务
1. 如何創建一個定時任務,通過systemd系統
- 1. 如何創建一個定時任務,通過systemd系統
- 1.1. systemd中的timer
- 1.2. 自定義定時任務
- 1.2.1. 具體步驟
- 1.2.2. [Timer]區塊屬性詳情
- 1.3. 刪除定時器
Linux中,可以使用crontab創建一個定時任務。
首先,創建一個crontab文件,形如
# 每天的6點42分,運行一次spmake腳本
42 6 * * * /home/luzj/bin/spmake 緊接著,執行crontab file即可安裝該文件。之后定時任務即開起
使用crontab -l列出所有在crontab管理下的定時任務,crontab -r xxx刪除定時任務
1.1. systemd中的timer
systemd通過定義一個timer單元來創建一個定時任務。實際上我們需要做兩件事,首先定義一個service單元,
這個service單元定義了我們想定時執行的任務。然后再定義一個timer單元,通過timer單元定義如何定時執行
之前的service單元,比如每1h執行一次、每天5點執行、每個月的16號6點執行等等
1.2. 自定義定時任務
我們自定義一個定時任務——每過30s就向msg.txt輸入當前時間
1.2.1. 具體步驟
首先,創建一個mail.sh腳本.
vim mail.sh# 內容
#!/bin/bash
echo `date` >> msg.txt#添加執行權限
chmod +x mail.sh 我們先執行一遍,bash mail.sh,就會看到當前時間被寫入msg.txt之中了
創建Service單元.進入/etc/systemd/system目錄中,創建mytimer.service文件,
vim mytimer.service#寫入內容
[Unit]
Description=mytimer service[Service]
ExecStart=/bin/bash <path>/mail.sh# 這里可以不添加[Install]區塊,因為該Service是為Timer單元服務的 之后,啟動Service單元,systemctl start mytimer.service.然后就會看到,當前時間
被寫入到msg.txt之中了
創建Timer單元.同樣的目錄,創建mytimer.timer文件,
vim mytimer.timer#內容如下
[Unit]
Description=run mail.sh every 10s[Timer]
OnUnitActiveSec=10s
Unit=mytimer.service[Install]
WantedBy=multi-user.target 啟動Timer單元.
systemctl daemon.reload
systemctl enable mytimer.timer
systemctl start mytimer.timer#查看timer運行狀態
systemctl status mytimer.timer
tail -f msg.txt # 查看打印情況,每10s會打印一次,我的實測 時間間隔不是很精確哈
journalctl -f -u mytimer.timer # 查看定時器運行日志 1.2.2. [Timer]區塊屬性詳情
OnActiveSec:定時器生效后,多少時間開始執行任務
OnBootSec:系統啟動后,多少時間開始執行任務
OnStartupSec:Systemd 進程啟動后,多少時間開始執行任務
OnUnitActiveSec:該單元上次執行后,等多少時間再次執行
OnUnitInactiveSec: 定時器上次關閉后多少時間,再次執行
OnCalendar:基于絕對時間,而不是相對時間執行
AccuracySec:如果因為各種原因,任務必須推遲執行,推遲的最大秒數,默認是60秒
Unit:真正要執行的任務,默認是同名的帶有.service后綴的單元
Persistent:如果設置了該字段,即使定時器到時沒有啟動,也會自動執行相應的單元
WakeSystem:如果系統休眠,是否自動喚醒系統 具體可以看官方文檔
1.3. 刪除定時器
systemctl disable mytimer.timer #關閉開機啟動(即刪除目錄鏈接)
systemctl stop mytimer.timer # 關閉單元
systemctl stop mytimer.service#之后刪除timer 和Service文件systemctl daemon-reload # 重新加載配置 參考
Systemd 定時器教程-阮一峰
轉載于:https://www.cnblogs.com/Franken-Fran/p/timer_make.html
總結
以上是生活随笔為你收集整理的如何创建systemd定时任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洱海可以自驾环游吗
- 下一篇: 关于acm的新手一些问题