日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

如何创建systemd定时任务

發布時間:2023/11/27 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何创建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定时任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。