最新国产AV资源网_亚洲熟女AV天堂五月天_中文字幕丶东京热_中文字幕乱码免费高清视频

Hi,您好,歡迎來(lái)到西安盛圖軟件科技有限公司!

Linux 設(shè)置定時(shí)任務(wù)常用的三種方法

發(fā)布時(shí)間:2024-01-31 13:49:10

1、使用 cron 設(shè)置定時(shí)任務(wù)

cron 是 Linux 中最常用的定時(shí)任務(wù)調(diào)度器。它允許用戶在指定的日期和時(shí)間運(yùn)行腳本和命令。使用 cron 設(shè)置定時(shí)任務(wù)的三種方法如下,

1)編輯用戶的 crontab 文件

用于單個(gè)用戶設(shè)置定時(shí)任務(wù),打開(kāi)用戶的 crontab 文件,命令如下,

crontab -e

在 crontab 文件中,添加一行來(lái)定義定時(shí)任務(wù),格式如下,

分 時(shí) 日 月 周 命令

例如,

每天凌晨3點(diǎn)運(yùn)行腳本,如下,

0 1 * * * /path/to/script.sh

添加完成后,保存文件退出。

2)使用預(yù)定義的 cron 目錄

Linux 系統(tǒng)通常包含一些預(yù)定義的目錄,用于存放定期執(zhí)行的腳本,目錄如下,

/etc/cron.daily
/etc/cron.hourly
/etc/cron.weekly
/etc/cron.monthly

系統(tǒng)將按照目錄名稱指定的頻率執(zhí)行這些腳本。另外還需要將腳本添加執(zhí)行權(quán)限。例如,

chmod +x /path/to/script.sh

3)在 /etc/crontab 文件中添加任務(wù)

對(duì)于系統(tǒng)級(jí)的任務(wù),可以直接在 /etc/crontab 文件中添加,添加方法和用戶的crontab 文件中添加方法差不多,但多了一個(gè)用戶的字段,格式如下,

分 時(shí) 日 月 周 用戶 命令

例如,

以 root 每天凌晨3點(diǎn)運(yùn)行腳本,如下,

0 3 * * * root /path/to/script.sh

2、使用 at 設(shè)置定時(shí)任務(wù)

用于設(shè)置一次性任務(wù),它會(huì)在指定的時(shí)間運(yùn)行一次任務(wù)。它允許指定將在未來(lái)某個(gè)時(shí)間點(diǎn)執(zhí)行的命令。

1)安裝 at

在某些 Linux 發(fā)行版中,at 服務(wù)可能默認(rèn)沒(méi)有安裝。您可以使用包管理器進(jìn)行安裝:

對(duì)于基于 Debian/Ubuntu 的系統(tǒng):

sudo apt-get install at

對(duì)于基于 RedHat/CentOS 的系統(tǒng):

sudo yum install at

2)啟動(dòng) at 服務(wù)

啟動(dòng)并設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng):

sudo systemctl start atd
sudo systemctl enable atd

3)使用 at 設(shè)置定時(shí)任務(wù)

使用 at 后跟執(zhí)行任務(wù)的時(shí)間來(lái)設(shè)置定時(shí)任務(wù)。at 接受多種時(shí)間格式,例如,

在今天下午 10:30 執(zhí)行腳本:

echo "/path/to/script.sh" | at 22:30

在當(dāng)前時(shí)間之后的 30 分鐘執(zhí)行腳本:

echo "/path/to/script.sh" | at now + 30 minutes

4)管理 at 任務(wù)

列出待執(zhí)行的 at 任務(wù),使用命令如下,

atq

刪除 at 任務(wù),使用命令如下,

atrm <job number>

可以查看任務(wù)腳本中指定的日志文件或輸出文件,來(lái)檢查任務(wù)執(zhí)行狀態(tài)。

3、使用 systemd 定時(shí)器設(shè)置定時(shí)任務(wù)

systemd 定時(shí)器是一種替代傳統(tǒng) cron 的方法,用于安排定時(shí)任務(wù)。systemd 定時(shí)器由兩部分組成:一個(gè) .service 文件和一個(gè) .timer 文件。.service 文件定義了要執(zhí)行的任務(wù),而 .timer 文件設(shè)定了何時(shí)執(zhí)行這個(gè)任務(wù)。

1)創(chuàng)建服務(wù)文件

創(chuàng)建一個(gè) .service 文件來(lái)定義要執(zhí)行的任務(wù)。例如,

創(chuàng)建 /etc/systemd/system/mytask.service 文件,內(nèi)容如下,

[Unit]
Description=checkIP

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

腳本添加執(zhí)行權(quán)限:

chmod +x /root/chechIP.sh

2)創(chuàng)建 .timer 文件

.service文件創(chuàng)建完成后,還需要?jiǎng)?chuàng)建一個(gè)定時(shí)器文件(.timer),例如,

創(chuàng)建 /etc/systemd/system/mytask.timer 文件,內(nèi)容如下,

[Unit]
Description=checkIP every 30s

[Timer]

OnActiveSec=60

OnUnitActiveSec=30
Unit=mytask.service 

[Install]
WantedBy=multi-user.target

systemd 定時(shí)器可用選項(xiàng):


選項(xiàng)

描述

OnActiveSec

定時(shí)器生效后,多少時(shí)間開(kāi)始執(zhí)行任務(wù)。

如,

OnUnitActiveSec=1h表示一小時(shí)執(zhí)行一次任務(wù),

OnUnitActiveSec=*-*-* 02:00:00表示每天凌晨?jī)牲c(diǎn)執(zhí)行,

OnUnitActiveSec=Mon *-*-* 02:00:00表示每周一凌晨?jī)牲c(diǎn)執(zhí)行。

OnBootSec

系統(tǒng)啟動(dòng)后,多少時(shí)間開(kāi)始執(zhí)行任務(wù)。

OnStartupSec

Systemd

進(jìn)程啟動(dòng)后,多少時(shí)間開(kāi)始執(zhí)行任務(wù)。

OnUnitActiveSec

該單元上次執(zhí)行后,等多少時(shí)間再次執(zhí)行。

OnUnitInactiveSec

定時(shí)器上次關(guān)閉后多少時(shí)間,再次執(zhí)行。

OnCalendar

基于絕對(duì)時(shí)間,而不是相對(duì)時(shí)間執(zhí)行。

如,

OnCalendar=*-*-* *:*:00 表示每分鐘觸發(fā)一次定時(shí)器執(zhí)行,

OnCalendar=*-10-15 00:00:00 表示每年的10月11號(hào)執(zhí)行,

OnCalendar=*-*-* 01:00:00 表示每天凌晨 1 點(diǎn)觸發(fā)執(zhí)行。

AccuracySec

如果任務(wù)必須推遲執(zhí)行,推遲的最大秒數(shù),默認(rèn)是 60 秒。

Unit

要執(zhí)行的實(shí)際任務(wù),

通常是同名的帶有 .service 后綴的單元。

Persistent

如果設(shè)置了該字段,

即使定時(shí)器到時(shí)沒(méi)有啟動(dòng),

也會(huì)自動(dòng)執(zhí)行相應(yīng)的單元。

WakeSystem

如果系統(tǒng)休眠,是否自動(dòng)喚醒系統(tǒng)。


3)定時(shí)器使用相關(guān)命令

操作

命令

重新加載 systemd 配置

sudo systemctl daemon-reload

啟動(dòng)定時(shí)器

sudo systemctl start mytask.timer

設(shè)置定時(shí)器在啟動(dòng)時(shí)自動(dòng)啟動(dòng)

sudo systemctl enable mytask.timer

查看定時(shí)器狀態(tài)

systemctl status mytask.timer

列出所有定時(shí)器

systemctl list-timers

查看日志(調(diào)試或檢查任務(wù)執(zhí)行情況)

journalctl -u mytask.service

上一篇:C++性能優(yōu)化大局觀
下一篇:2024 年的 Rust 與 Go,看完你悟了嗎?

歡迎登錄盛圖科技

歡迎注冊(cè)盛圖科技

已有賬號(hào),立即登錄