Linux使用systemd安排定期任務(wù)的操作詳解
介紹
systemd 是一個(gè)系統(tǒng)和服務(wù)管理器,它是現(xiàn)代 Linux 系統(tǒng)中重要的組件之一,主要負(fù)責(zé)系統(tǒng)的啟動(dòng)和管理。systemd 取代了傳統(tǒng)的 SysVinit 和 Upstart,成為了大多數(shù) Linux 發(fā)行版的默認(rèn) init 系統(tǒng)。它通過引入并行化啟動(dòng)、依賴關(guān)系管理和更強(qiáng)大的功能,提升了系統(tǒng)的啟動(dòng)速度和管理能力。
systemd 的主要功能
- 服務(wù)管理:systemd 可以啟動(dòng)、停止、重啟和監(jiān)控系統(tǒng)服務(wù)。它通過服務(wù)單元 (service units) 描述服務(wù)的啟動(dòng)方式、依賴關(guān)系和執(zhí)行環(huán)境。
- 系統(tǒng)初始化:systemd 負(fù)責(zé)在系統(tǒng)啟動(dòng)時(shí)加載并初始化所有必要的服務(wù)和設(shè)備,確保系統(tǒng)能夠正常運(yùn)行。
- 定時(shí)任務(wù)管理:systemd 提供了定時(shí)器單元 (timer units),用于替代傳統(tǒng)的 cron 工具,安排和管理定期任務(wù)。
- 日志管理:systemd 使用 journald 記錄系統(tǒng)日志,統(tǒng)一管理和查詢?nèi)罩拘畔?,方便調(diào)試和監(jiān)控系統(tǒng)狀態(tài)。
- 設(shè)備管理:systemd 能夠自動(dòng)檢測和管理硬件設(shè)備,處理設(shè)備事件并進(jìn)行必要的配置。
- 掛載文件系統(tǒng):systemd 可以自動(dòng)掛載文件系統(tǒng),管理掛載點(diǎn),確保系統(tǒng)啟動(dòng)時(shí)所有必要的文件系統(tǒng)都已掛載。
什么是定期任務(wù)
定期任務(wù)是指按照預(yù)定的時(shí)間表反復(fù)執(zhí)行的任務(wù)。這些任務(wù)通常用于維護(hù)系統(tǒng)的正常運(yùn)行,例如備份數(shù)據(jù)、清理日志文件、同步時(shí)間等。在傳統(tǒng)的 Linux 系統(tǒng)中,定期任務(wù)通常由 cron 工具管理。
使用 cron 管理定期任務(wù)
cron 是 Unix/Linux 系統(tǒng)中的一個(gè)時(shí)間調(diào)度工具,用于在特定時(shí)間執(zhí)行腳本或命令。用戶通過編寫 cron 表達(dá)式 (crontab) 來定義任務(wù)的執(zhí)行時(shí)間和頻率。
示例 crontab 條目:
0 2 * * * /path/to/backup-script.sh
上面的例子表示每天凌晨 2 點(diǎn)運(yùn)行 backup-script.sh
腳本。
使用 systemd 安排定期任務(wù)的優(yōu)勢
相比于傳統(tǒng)的 cron 工具,使用 systemd 定時(shí)器單元安排定期任務(wù)有以下幾個(gè)優(yōu)勢:
集成性:systemd 是 Linux 系統(tǒng)的核心組件,直接使用 systemd 定時(shí)器單元,無需額外安裝和配置 cron 工具。靈活性:systemd 定時(shí)器單元支持更復(fù)雜和精細(xì)的時(shí)間調(diào)度,可以定義復(fù)雜的時(shí)間表達(dá)式和觸發(fā)條件。統(tǒng)一管理:所有服務(wù)和任務(wù)都由 systemd 管理,方便維護(hù)和監(jiān)控。用戶可以通過同一套工具管理系統(tǒng)服務(wù)和定期任務(wù)。日志和調(diào)試:systemd 通過 journald 記錄日志,方便用戶查看和調(diào)試定時(shí)任務(wù)的執(zhí)行情況,快速定位和解決問題。依賴關(guān)系:systemd 可以處理服務(wù)之間的依賴關(guān)系,確保定時(shí)任務(wù)在合適的條件下執(zhí)行,例如某個(gè)服務(wù)啟動(dòng)后或網(wǎng)絡(luò)連接后。持久性:systemd 定時(shí)器單元支持持久性,即使系統(tǒng)重啟,定時(shí)器的狀態(tài)也能被保存,保證任務(wù)的連續(xù)性。
什么是 systemd 定時(shí)器單元
systemd 定時(shí)器單元是 systemd 的一種特殊單元類型,用于安排和調(diào)度定期任務(wù)。定時(shí)器單元文件通常位于 /etc/systemd/system/
或 /usr/lib/systemd/system/
目錄下,文件擴(kuò)展名為 .timer
。定時(shí)器單元通過定義觸發(fā)條件來調(diào)度關(guān)聯(lián)的服務(wù)單元 (service unit),從而實(shí)現(xiàn)定期任務(wù)的執(zhí)行。
定時(shí)器單元的基本結(jié)構(gòu)
一個(gè)典型的定時(shí)器單元文件包含以下幾個(gè)部分:
- Unit:描述單元的基本信息。
- Timer:定義定時(shí)器的屬性和觸發(fā)條件。
- Install:指定如何安裝和啟用定時(shí)器。
以下是一個(gè)簡單的定時(shí)器單元文件示例:
[Unit] Description=Run backup script every hour [Timer] OnCalendar=hourly Persistent=true [Install] WantedBy=timers.target
定時(shí)器單元文件的各個(gè)部分
- [Unit] 部分:定義單元的基本信息,包括描述和依賴關(guān)系。常見的字段有
Description
和After
等。 - [Timer] 部分:定義定時(shí)器的屬性和觸發(fā)條件。常見的字段有
OnCalendar
、OnBootSec
、OnUnitActiveSec
等。 - [Install] 部分:指定定時(shí)器的安裝和啟用方式。常見的字段有
WantedBy
和RequiredBy
等。
常見的定時(shí)器類型
systemd 定時(shí)器支持多種觸發(fā)條件,下面介紹一些常見的定時(shí)器類型及其用法:
OnActiveSec:在定時(shí)器激活后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在特定時(shí)間間隔后執(zhí)行的任務(wù)。
示例:
OnActiveSec=1h
表示在定時(shí)器激活后 1 小時(shí)觸發(fā)。
OnBootSec:在系統(tǒng)啟動(dòng)后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在系統(tǒng)啟動(dòng)后執(zhí)行的任務(wù)。
示例:
OnBootSec=30min
表示在系統(tǒng)啟動(dòng)后 30 分鐘觸發(fā)。
OnStartupSec:在 systemd 啟動(dòng)后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在 systemd 啟動(dòng)后執(zhí)行的任務(wù)。
示例:
OnStartupSec=15min
表示在 systemd 啟動(dòng)后 15 分鐘觸發(fā)。
OnUnitActiveSec:在關(guān)聯(lián)的服務(wù)單元最后一次激活后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在服務(wù)激活后執(zhí)行的任務(wù)。
示例:
OnUnitActiveSec=1h
表示在關(guān)聯(lián)的服務(wù)單元最后一次激活后 1 小時(shí)觸發(fā)。
OnUnitInactiveSec:在關(guān)聯(lián)的服務(wù)單元最后一次非活躍后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在服務(wù)停止后執(zhí)行的任務(wù)。
示例:
OnUnitInactiveSec=2h
表示在關(guān)聯(lián)的服務(wù)單元最后一次非活躍后 2 小時(shí)觸發(fā)。
OnCalendar:按照指定的時(shí)間表觸發(fā),類似于 cron 表達(dá)式。適用于需要按照特定時(shí)間表執(zhí)行的任務(wù)。
示例:
OnCalendar=hourly
表示每小時(shí)觸發(fā)一次。
定時(shí)器單元的工作原理
systemd 定時(shí)器單元通過定義觸發(fā)條件來調(diào)度關(guān)聯(lián)的服務(wù)單元。當(dāng)定時(shí)器觸發(fā)時(shí),systemd 會(huì)自動(dòng)啟動(dòng)關(guān)聯(lián)的服務(wù)單元。定時(shí)器和服務(wù)單元通常成對出現(xiàn),例如 backup.timer
和 backup.service
。
定時(shí)器單元的工作流程如下:
- 創(chuàng)建一個(gè)服務(wù)單元文件,定義任務(wù)的執(zhí)行方式。
- 創(chuàng)建一個(gè)定時(shí)器單元文件,定義任務(wù)的觸發(fā)條件。
- 啟動(dòng)和啟用定時(shí)器單元。
- 定時(shí)器觸發(fā)時(shí),systemd 自動(dòng)執(zhí)行關(guān)聯(lián)的服務(wù)單元。
通過這種方式,systemd 提供了一種靈活且強(qiáng)大的方法來管理和調(diào)度定期任務(wù)。
創(chuàng)建和配置基本的定時(shí)器單元
創(chuàng)建簡單的定時(shí)器單元
在創(chuàng)建定時(shí)器單元之前,我們首先需要?jiǎng)?chuàng)建一個(gè)服務(wù)單元文件,該文件定義了任務(wù)的執(zhí)行方式。例如,我們可以創(chuàng)建一個(gè)備份腳本,并配置一個(gè)定時(shí)器來定期運(yùn)行該腳本。
首先,我們創(chuàng)建一個(gè)服務(wù)單元文件 backup.service
:
[Unit] Description=Run backup script [Service] ExecStart=/path/to/backup-script.sh
在這個(gè)文件中:
- [Unit] 部分:定義單元的基本信息,包括描述和依賴關(guān)系。
Description
字段提供了該服務(wù)的簡短描述。 - [Service] 部分:定義服務(wù)的執(zhí)行方式。
ExecStart
字段指定了服務(wù)啟動(dòng)時(shí)要執(zhí)行的命令或腳本。
將這個(gè)文件保存到 /etc/systemd/system/backup.service
。
接下來,我們創(chuàng)建一個(gè)定時(shí)器單元文件 backup.timer
:
[Unit] Description=Run backup script every hour [Timer] OnCalendar=hourly Persistent=true [Install] WantedBy=timers.target
在這個(gè)文件中:
- [Unit] 部分:定義單元的基本信息,包括描述和依賴關(guān)系。
Description
字段提供了該定時(shí)器的簡短描述。 - [Timer] 部分:定義定時(shí)器的屬性和觸發(fā)條件。
OnCalendar
字段指定了定時(shí)器的觸發(fā)時(shí)間,這里表示每小時(shí)觸發(fā)一次。Persistent
字段表示如果系統(tǒng)在預(yù)定時(shí)間未啟動(dòng),定時(shí)器將在系統(tǒng)啟動(dòng)時(shí)立即觸發(fā)。 - [Install] 部分:指定定時(shí)器的安裝和啟用方式。
WantedBy
字段指定該定時(shí)器屬于timers.target
,確保定時(shí)器在系統(tǒng)啟動(dòng)時(shí)被激活。
將這個(gè)文件保存到 /etc/systemd/system/backup.timer
。
編寫和理解定時(shí)器單元文件
詳細(xì)解釋定時(shí)器單元文件的各個(gè)部分和配置選項(xiàng),可以幫助我們更好地理解和創(chuàng)建自己的定時(shí)器單元。
[Unit] 部分
Description
:簡短描述該定時(shí)器單元的用途。After
:指定該單元需要在另一個(gè)單元之后啟動(dòng)。
[Timer] 部分
OnCalendar
:定義定時(shí)器的觸發(fā)時(shí)間,支持類似 cron 的時(shí)間表達(dá)式。OnActiveSec
、OnBootSec
、OnStartupSec
、OnUnitActiveSec
、OnUnitInactiveSec
:定義定時(shí)器在特定事件后的觸發(fā)時(shí)間。Persistent
:如果系統(tǒng)在預(yù)定時(shí)間未啟動(dòng),定時(shí)器將在系統(tǒng)啟動(dòng)時(shí)立即觸發(fā)。AccuracySec
:設(shè)置定時(shí)器觸發(fā)的精確度。RandomizedDelaySec
:添加隨機(jī)延遲,避免多個(gè)定時(shí)器同時(shí)觸發(fā)。
[Install] 部分
WantedBy
:定義該定時(shí)器單元所屬的目標(biāo),這里通常是 timers.target
。
示例:每天凌晨 2 點(diǎn)運(yùn)行備份腳本
[Unit] Description=Daily Backup Service [Timer] OnCalendar=*-*-* 02:00:00 Persistent=true [Install] WantedBy=timers.target
OnCalendar=*-*-* 02:00:00
表示每天凌晨 2 點(diǎn)觸發(fā)。
啟動(dòng)和管理定時(shí)器單元
創(chuàng)建并配置好定時(shí)器單元后,我們需要啟動(dòng)和啟用定時(shí)器單元,以便它能按預(yù)定時(shí)間觸發(fā)任務(wù)。
使用以下命令啟動(dòng)定時(shí)器單元:
sudo systemctl start backup.timer
使用以下命令啟用定時(shí)器單元,使其在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng):
sudo systemctl enable backup.timer
使用以下命令查看定時(shí)器單元的狀態(tài)和下次觸發(fā)時(shí)間:
systemctl status backup.timer
使用以下命令列出所有已激活的定時(shí)器及其下次觸發(fā)時(shí)間:
systemctl list-timers
使用以下命令停止定時(shí)器單元:
sudo systemctl stop backup.timer
使用以下命令禁用定時(shí)器單元,使其不再在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng):
sudo systemctl disable backup.timer
高級(jí)定時(shí)器配置
復(fù)雜的時(shí)間表達(dá)式
systemd 定時(shí)器單元支持使用 OnCalendar
屬性定義復(fù)雜的時(shí)間表達(dá)式。OnCalendar
屬性類似于 cron 表達(dá)式,但更加靈活和強(qiáng)大。它支持多種格式的時(shí)間表達(dá)式,允許用戶精確地定義定時(shí)器的觸發(fā)時(shí)間。
常見的時(shí)間表達(dá)式
基礎(chǔ)格式:YYYY-MM-DD HH:MM:SS
例子:2024-06-05 02:30:00
表示在 2024 年 6 月 5 日凌晨 2:30 觸發(fā)。
通配符格式:*
代表任意值
例子:*-*-01 00:00:00
表示每月的第一天凌晨 0 點(diǎn)觸發(fā)。
列表格式:使用逗號(hào)分隔多個(gè)值
例子:Mon,Fri *-*-* 09:00:00
表示每周一和周五早上 9 點(diǎn)觸發(fā)。
范圍格式:使用 ..
定義一個(gè)范圍
例子:*-*-01..07 00:00:00
表示每月的前七天的凌晨 0 點(diǎn)觸發(fā)。
重復(fù)格式:使用 /
定義重復(fù)間隔
例子:*-*-* *:00/15:00
表示每小時(shí)的 0 分和 15 分觸發(fā)。
示例:復(fù)雜的時(shí)間表達(dá)式
每月的第一個(gè)星期一:
OnCalendar=Mon *-*-1..7 00:00:00
這表示每月的第一個(gè)星期一凌晨 0 點(diǎn)觸發(fā)。
每周的星期一和星期三:
OnCalendar=Mon,Wed *-*-* 00:00:00
這表示每周的星期一和星期三凌晨 0 點(diǎn)觸發(fā)。
每天下午 3 點(diǎn)和晚上 9 點(diǎn):
OnCalendar=*-*-* 15,21:00:00
這表示每天的下午 3 點(diǎn)和晚上 9 點(diǎn)觸發(fā)。
使用 OnCalendar 和其他定時(shí)器屬性
除了 OnCalendar
屬性外,systemd 定時(shí)器單元還支持其他定時(shí)器屬性,允許用戶定義在特定事件后的觸發(fā)時(shí)間。這些屬性可以與 OnCalendar
一起使用,提供更靈活的時(shí)間調(diào)度。
OnActiveSec
OnActiveSec
屬性定義在定時(shí)器激活后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在特定時(shí)間間隔后執(zhí)行的任務(wù)。
示例:
OnActiveSec=1h
表示在定時(shí)器激活后 1 小時(shí)觸發(fā)。
OnBootSec
OnBootSec
屬性定義在系統(tǒng)啟動(dòng)后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在系統(tǒng)啟動(dòng)后執(zhí)行的任務(wù)。
示例:
OnBootSec=30min
表示在系統(tǒng)啟動(dòng)后 30 分鐘觸發(fā)。
OnStartupSec
OnStartupSec
屬性定義在 systemd 啟動(dòng)后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在 systemd 啟動(dòng)后執(zhí)行的任務(wù)。
示例:
OnStartupSec=15min
表示在 systemd 啟動(dòng)后 15 分鐘觸發(fā)。
OnUnitActiveSec
OnUnitActiveSec
屬性定義在關(guān)聯(lián)的服務(wù)單元最后一次激活后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在服務(wù)激活后執(zhí)行的任務(wù)。
示例:
OnUnitActiveSec=1h
表示在關(guān)聯(lián)的服務(wù)單元最后一次激活后 1 小時(shí)觸發(fā)。
OnUnitInactiveSec
OnUnitInactiveSec
屬性定義在關(guān)聯(lián)的服務(wù)單元最后一次非活躍后經(jīng)過指定時(shí)間觸發(fā)。適用于需要在服務(wù)停止后執(zhí)行的任務(wù)。
示例:
OnUnitInactiveSec=2h
表示在關(guān)聯(lián)的服務(wù)單元最后一次非活躍后 2 小時(shí)觸發(fā)。
配置定時(shí)器的精確度和隨機(jī)延遲
為了優(yōu)化系統(tǒng)性能并避免多個(gè)定時(shí)器同時(shí)觸發(fā),systemd 提供了 AccuracySec
和 RandomizedDelaySec
屬性,用于配置定時(shí)器的精確度和隨機(jī)延遲。
AccuracySec
AccuracySec
屬性設(shè)置定時(shí)器觸發(fā)的精確度。較大的精確度值可以減少系統(tǒng)負(fù)載,因?yàn)槎〞r(shí)器觸發(fā)時(shí)間可以稍微偏離設(shè)定值。
示例:
AccuracySec=1min
表示定時(shí)器觸發(fā)的精確度為 1 分鐘,即觸發(fā)時(shí)間可以在預(yù)定時(shí)間的前后 1 分鐘內(nèi)波動(dòng)。
RandomizedDelaySec
RandomizedDelaySec
屬性添加隨機(jī)延遲,避免多個(gè)定時(shí)器同時(shí)觸發(fā),從而減少系統(tǒng)負(fù)載。
示例:
RandomizedDelaySec=30min
表示在預(yù)定觸發(fā)時(shí)間基礎(chǔ)上添加最多 30 分鐘的隨機(jī)延遲。
在特定條件下觸發(fā)定時(shí)器
systemd 還支持在特定條件下觸發(fā)定時(shí)器,例如系統(tǒng)空閑時(shí)或網(wǎng)絡(luò)連接時(shí)。通過使用 Condition
和 Assert
屬性,可以實(shí)現(xiàn)更靈活的任務(wù)調(diào)度。
示例:在系統(tǒng)空閑時(shí)觸發(fā)定時(shí)器
創(chuàng)建一個(gè)定時(shí)器單元文件,在系統(tǒng)空閑時(shí)觸發(fā)任務(wù):
[Unit] Description=Run maintenance script when system is idle [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target [Service] Type=idle ExecStart=/path/to/maintenance-script.sh
在這個(gè)示例中,Type=idle
表示在系統(tǒng)空閑時(shí)執(zhí)行任務(wù)。
示例:在網(wǎng)絡(luò)連接時(shí)觸發(fā)定時(shí)器
創(chuàng)建一個(gè)定時(shí)器單元文件,在網(wǎng)絡(luò)連接時(shí)觸發(fā)任務(wù):
[Unit] Description=Run network sync script when network is up After=network-online.target [Timer] OnCalendar=hourly Persistent=true [Install] WantedBy=timers.target [Service] ExecStart=/path/to/network-sync-script.sh
在這個(gè)示例中,After=network-online.target
表示在網(wǎng)絡(luò)連接后執(zhí)行任務(wù)。
管理和調(diào)試 systemd 定時(shí)器
管理 systemd 定時(shí)器
管理 systemd 定時(shí)器涉及定時(shí)器單元的啟動(dòng)、停止、啟用、禁用和查看狀態(tài)等操作。
要啟動(dòng)定時(shí)器單元,可以使用以下命令:
sudo systemctl start backup.timer
這將立即啟動(dòng)定時(shí)器并按照配置的時(shí)間計(jì)劃執(zhí)行關(guān)聯(lián)的服務(wù)單元。
要停止定時(shí)器單元,可以使用以下命令:
sudo systemctl stop backup.timer
這將停止定時(shí)器,關(guān)聯(lián)的服務(wù)單元將不再按計(jì)劃觸發(fā)。
要啟用定時(shí)器單元,使其在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),可以使用以下命令:
sudo systemctl enable backup.timer
要禁用定時(shí)器單元,使其不再在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),可以使用以下命令:
sudo systemctl disable backup.timer
要查看定時(shí)器單元的狀態(tài),可以使用以下命令:
systemctl status backup.timer
這個(gè)命令會(huì)顯示定時(shí)器的當(dāng)前狀態(tài)、下次觸發(fā)時(shí)間、最近一次觸發(fā)時(shí)間以及相關(guān)日志。
要列出系統(tǒng)中所有已激活的定時(shí)器及其下次觸發(fā)時(shí)間,可以使用以下命令:
systemctl list-timers
這個(gè)命令會(huì)列出所有定時(shí)器單元,包括激活時(shí)間和下次觸發(fā)時(shí)間,便于用戶全面了解系統(tǒng)中的定時(shí)任務(wù)。
查看定時(shí)器日志
systemd 使用 journald 記錄日志信息,用戶可以通過查看日志來調(diào)試和監(jiān)控定時(shí)器的執(zhí)行情況。
要查看定時(shí)器關(guān)聯(lián)的服務(wù)單元的日志,可以使用以下命令:
journalctl -u backup.service
這個(gè)命令會(huì)顯示服務(wù)單元的所有日志信息,包括啟動(dòng)、停止和執(zhí)行過程中產(chǎn)生的日志。
要查看定時(shí)器單元本身的日志,可以使用以下命令:
journalctl -u backup.timer
這個(gè)命令會(huì)顯示定時(shí)器單元的所有日志信息,包括觸發(fā)時(shí)間和相關(guān)事件。
要實(shí)時(shí)查看定時(shí)器或服務(wù)單元的日志,可以使用 -f
選項(xiàng),例如:
journalctl -u backup.service -f
這個(gè)命令會(huì)實(shí)時(shí)顯示服務(wù)單元的日志信息,便于用戶監(jiān)控任務(wù)的執(zhí)行情況。
調(diào)試定時(shí)器問題
在使用 systemd 定時(shí)器時(shí),可能會(huì)遇到一些問題。通過以下方法,可以有效地排查和解決定時(shí)器相關(guān)的問題。
首先,檢查定時(shí)器和服務(wù)單元文件的配置是否正確。確保 OnCalendar
等屬性設(shè)置合理,并且文件路徑和命令正確無誤。
使用 systemctl status
命令檢查定時(shí)器和服務(wù)單元的狀態(tài),查看是否有錯(cuò)誤信息或異常情況:
systemctl status backup.timer systemctl status backup.service
使用 journalctl
命令查看定時(shí)器和服務(wù)單元的日志,查找錯(cuò)誤信息和警告:
journalctl -u backup.timer journalctl -u backup.service
日志中可能包含錯(cuò)誤信息、失敗原因和調(diào)試信息,有助于快速定位和解決問題。
手動(dòng)啟動(dòng)關(guān)聯(lián)的服務(wù)單元,確保其能夠正常執(zhí)行:
sudo systemctl start backup.service
如果服務(wù)單元無法正常執(zhí)行,檢查腳本或命令是否存在問題,確保其在獨(dú)立運(yùn)行時(shí)能夠正常完成任務(wù)。
在服務(wù)單元文件中設(shè)置 Environment=SYSTEMD_LOG_LEVEL=debug
,以啟用詳細(xì)的 debug 日志級(jí)別,有助于深入分析和調(diào)試問題。
編輯服務(wù)單元文件 backup.service
,添加 Environment
行:
[Unit] Description=Run backup script [Service] ExecStart=/path/to/backup-script.sh Environment=SYSTEMD_LOG_LEVEL=debug
保存文件后,重新加載 systemd 配置:
sudo systemctl daemon-reload sudo systemctl restart backup.service
查看 debug 日志:
journalctl -u backup.service
以上就是Linux使用systemd安排定期任務(wù)的操作詳解的詳細(xì)內(nèi)容,更多關(guān)于Linux systemd定期任務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
- Linux?systemd?定時(shí)任務(wù)原理解析
- 解決Linux中Systemd服務(wù)環(huán)境變量缺失的問題
- 在Linux中列出Systemd下所有正在運(yùn)行的服務(wù)的方法指南
- linux?系統(tǒng)進(jìn)程管理工具systemd詳解(systemctl命令、創(chuàng)建自己的systemd服務(wù))
- CentOS 7下設(shè)置Docker代理(Linux下Systemd服務(wù)的環(huán)境變量配置)
- Linux使用systemd服務(wù)和crontab實(shí)現(xiàn)Shell腳本開機(jī)自動(dòng)運(yùn)行過程
相關(guān)文章
關(guān)于VPS內(nèi)存不足的一些說明和解決辦法
關(guān)于VPS內(nèi)存不足的一些說明和解決辦法,需要的朋友可以參考下。2011-11-11CentOS 7.3配置Nginx虛擬主機(jī)的方法步驟
這篇文章主要介紹了CentOS 7.3配置Nginx虛擬主機(jī)的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02詳解CentOS7 安裝 MariaDB 10.2.4的方法
這篇文章主要介紹了CentOS7 安裝 MariaDB 10.2.4的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11linux 程序、動(dòng)態(tài)庫、靜態(tài)庫內(nèi)部添加版本號(hào)和編譯時(shí)間詳解
下面小編就為大家?guī)硪黄猯inux 程序、動(dòng)態(tài)庫、靜態(tài)庫內(nèi)部添加版本號(hào)和編譯時(shí)間詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12Linux使用MySQL忘記root密碼及修改MySQL默認(rèn)編碼
本篇文章主要介紹了Linux使用MySQL忘記root密碼及修改MySQL默認(rèn)編碼,碰到這個(gè)問題的朋友可以參考下。2016-10-10Linux系統(tǒng)多網(wǎng)卡環(huán)境下的路由配置詳解
這篇文章主要介紹了Linux系統(tǒng)多網(wǎng)卡環(huán)境下的路由配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02