【Linux筆記】系統的延遲任務、定時任務極其相關命令(at、crontab極其黑白名單等)

一、延時任務

1、概念

延時任務(Delayed Jobs)通常指在指定時間或特定條件滿足后執行的任務。常見的實現方式包括?at?和?batch?命令,以及結合?cron?的調度功能。

2、命令

延時任務的命令最常用的是at命令,第二大節會詳細介紹。其中,atd是延時任務的開啟條件,

systemctl enable --now atd  
—— 啟動atd服務并設置開機自啟systemctl status atd.service
—— 檢查atd服務狀態

示例

顯示active和enable字樣代表atd已開啟;?atd 是系統延時任務的守護進程,如果此程序關閉,那么系統延時任務無法使用

二、at命令(延時任務)

1、概念

at?是 Linux 系統中用于調度一次性任務的命令行工具,允許用戶在指定時間運行命令或腳本。它非常適合臨時任務(如定時重啟服務、發送提醒、執行備份等),且與?cron(周期性任務)互補。

2、命令

(1)安裝at命令

多數 Linux 發行版默認未安裝?at,需手動安裝,安裝需要配置軟件倉庫(往期博客有教),各家Linux版本不一樣,會導致安裝at命令也不一樣,以下以rhel紅帽Linux為例(dnf安裝):

dnf install at -y

示例(以rhel紅帽Linux為例)

(2) 常用命令

1)at [時間];同時包含at命令的基本講解
at [時間]

示例

?

?此命令代表在19:20時執行命令(延時命令),輸入完按enter后,就會進入at命令界面(如圖)

此時,在“at>”后輸入你想要的命令,就能延時觸發,如:


輸入完命令后,使用ctrl+d,ctrl+d表示任務錄入結束,時間到時就會執行命令

按ctrl+d后:


我們剛剛執行的at命令是:touch /mnt/file{1..5} —— 即在/mnt下創建文件file1到file5,現在我們使用ls命令去/mnt下面看命令是否已執行(注意:需要時間到了才會執行!像這里的話就要到“19:20”時,touch命令才會執行)

ls /mnt/

示例

?

可以看到文件已創建,說明at命令執行成功

2)at now +?X min

at now +?X min,其中X表示你想要的數字,即你想規定的分鐘(如2min、5min)

at now+5(這里的5可以替換成自己想要的分鐘數)min

示例

?

now表示現在;“+”表示往后增加;5min表示5分鐘

這條命令代表現在開始五分鐘執行命令,執行的命令還是touch命令

3)at常用參數表

at?命令常用參數表

參數說明示例
-m即使任務沒有輸出,也發送郵件通知用戶(默認無輸出時不發送)。echo "ls" | at -m now +5 minutes
-M與?-m?相反,禁止發送郵件(即使有輸出)。echo "ls" | at -M now +5 minutes
-v顯示任務的計劃執行時間(通常用于調試)。at -v 14:30 tomorrow
-c <任務編號>查看指定任務的完整內容(包括環境變量和命令)。at -c 3
-f <文件>從指定文件中讀取要執行的命令(替代交互式輸入)。at -f /path/to/script.sh 10:00 AM
-l列出當前用戶的所有待處理任務(等同于?atq)。at -l?或?atq
-d <任務編號>刪除指定任務(等同于?atrm)。at -d 3?或?atrm 3
-q <隊列>指定任務隊列(隊列用單個字母表示,默認從?a?到?z,優先級遞增)。echo "command" | at -q b now +1 hour
-t <時間戳>使用?時間戳?格式([[CC]YY]MMDDhhmm[.ss])指定時間。at -t 202410011430.30(2024年10月1日14:30:30)
-V顯示?at?的版本信息。at -V

此表為概括描述,下面會有對其中一些命令的詳細介紹?

4)at -l

????????at -l能查任務列表

at -l

?????????示例

5)at -c

-c查看具體

at -c 2(這個2是任務編號,可以通過at -l命令來查看任務編號,任務編號就是最開頭的數字)

示例

查看任務編號為2的任務具體內容

6) at -r

-r刪除任務

at -r 3(這里的3也是任務號,同理)

示例

?

先用-l查看有的任務(這里是任務號3),然后-r刪除任務3

7)at -m(同時包含-m所需的postfix軟件和s-nail軟件安裝教程)
  • postfix軟件和s-nail軟件安裝教程
    dnf install postfix.x86_64 s-nail.x86_64
    —— 同時安裝postfix軟件和s-nail軟件

    示例
    我們先安裝postfix軟件(發送郵件程序)和s-nail軟件(查看郵件的程序)
    安裝前需要配置軟件倉庫(具體操作可以查看往期博客)

  • 立即(--now)啟用postfix程序

    systemctl enable --now postfix

    示例

此時,我們再創一個at命令,命令內容為date(顯示日期)

創建完延時,等時間到了后,輸入mail可以看到改命令

接著輸入進程號(如下圖)

注意:mail界面可按q退出

at -m

示例

?

8)at -d

at -d——刪除指定任務

at -d 3(這里的數字為at任務編號,可以通過at -l查看)
—— 刪除任務編號為3的at任務

我們先創一個at任務來試驗at -d的刪除

用at -l命令查看其任務編號,可以看到是13

隨后我們用at -d刪除該任務

刪除之后再用at -l查看是否還存在此任務

可以看到,任務13已被刪除

9)at -V(大寫)

at -V顯示at版本

at -V

示例

10)at -v(小寫)

at -v查看時間

at -v now+1min

示例

?

(3)at黑/白名單

在 Linux 中,at?命令的黑白名單通過?/etc/at.allow?和?/etc/at.deny?文件實現,用于控制用戶是否有權限使用?at?調度任務。

先創建一個新的用戶test,方便后續觀察實驗,切換到新的用戶

useradd test
—— 先創建一個新的用戶test

示例?


su test
—— 切換到新的用戶test

示例

完成后開始講解at黑白名單

1)at黑名單

默認狀態下,可以看到,在系統中所有用戶都能執行at任務


那么如何禁止用戶使用at命令呢?這里介紹at黑名單:at任務執行黑名單,在名單中的用戶不能執行at任務

ll /etc/at.deny
—— at任務執行黑名單

示例?


向at黑名單中添加用戶

我們先回到root用戶,來添加黑名單用戶

回到root后,創建打開at黑名單

vim /etc/at.deny

示例?

打開后:

再回到test用戶,此時嘗試at命令,會發現已被禁止使用?

這是因為:在/etc/at.deny文件中出現的用戶是不能執行at任務的

2)at白名單

有黑名單也會有白名單,回到root,創建at白名單

touch /etc/at.allow

示例

at任務白名單,只有在白名單中的用戶可以執行at任務注意:此名單在系統中不存在,創建后默認root用戶


創建白名單,輸入白名單用戶

vim /etc/at.allow

示例

?創建完白名單后,回到test,發現已經可以使用at命令

注意:當系統中白名單出現,黑名單中的內容將被系統忽略

?

三、定時任務

1、概念

定時任務(計劃任務)是計算機系統中用于在特定時間周期自動執行指定操作的功能。它廣泛應用于系統維護、數據備份、自動化腳本執行等場景。

四、crontab命令(定時任務)

1、概念

crontabCron Table)是 Linux/Unix 系統中用于管理?周期性任務?的核心工具。通過它可以在固定時間、日期或間隔自動執行命令或腳本(如每日備份、定時清理等)。

2、命令

(1)開啟crond.service的守護進程

crond.service是定時任務的守護進程

systemctl status crond.service

示例

(2)常用命令

?1)crontab -u root -e

以用戶root(-u)來創建定時任務

crontab -u root -e

示例

?

編輯創建定時任務的命令:建立文件file1~5(touch)

2)crontab -l

-l 查看當前定時任務

crontab -l

示例

可以看到在1)中創建的touch命令,其中:

五顆星號分別代表:

3)crontab -r?

-r 刪除用戶root的定時任務

crontab -r -u root
—— 刪除用戶root的定時任務

示例

?

(3)系統級別crontab目錄詳解

每個目錄的解釋

當我們把要執行的動作記錄為腳本,并把腳本放到相應的目錄中他就會以相應的時間執行?


1)?自定義創建系統級別crontab任務(cron.d)

進入路徑/etc/cron.d

cd /etc/cron.d

?在下圖可以看到,通過ls命令查看是顯示0hourly,說明還未創建自定義crontab任務,所以創建一個crontab任務:

vim lincoln(這里是用戶名)

示例?

進入創建編輯界面后,輸入:

* * * * * root touch /media/lin{1..5}
—— 注意:這里存在之前自己創建的目錄或文件,請自行創建

示例?

?用監視器監視/media路徑,可以看到文件已創建,監視命令:

watch -n 1 ls -l /media/

示例?

?

?

(4)cron黑/白名單

和at命令相似,cron命令也存在黑白名單機制

1)cron黑名單

黑名單阻止黑名單用戶使用cron命令

查看cron黑名單

cat /etc/cron.deny


向cron黑名單中添加用戶?

echo test> /etc/cron.deny


切換用戶測試?

su - testcrontab -e


2)cron白名單?

當白名單出現,只有在名單中單用戶能執行crontab

創建白名單

touch /etc/cron.allow

示例?


在白名單中添加用戶?

echo test>/etc/cron.allow

示例?


切換用戶測試?

su - testcrontab -e

示例

?

發現用戶test已經可以使用cron命令?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79758.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟考 系統架構設計師系列知識點 —— 黑盒測試與白盒測試(1)

本文內容參考&#xff1a; 黑盒測試和白盒測試詳解-CSDN博客 軟件測試中的各種覆蓋&#xff08;Coverage&#xff09;詳解-CSDN博客 特此致謝&#xff01; 零、概述 黑盒測試又名為功能測試&#xff0c;主要目的是發現軟件設計的需求或者是軟件設計規格說明書中的錯誤缺陷。…

yolov11 epoch100輪 訓練筆記5 kaggle comet

Football Players Detection using YOLOV11 | Kaggle !pip install comet_ml import comet_mlcomet_ml.login(project_name"c") Comet - Build Better Models Faster yolov11訓練 100輪一眨眼訓練完了 然而comet接不到yolo的sdk 優秀 訓練17輪map就0.99了 v5訓練100…

Ubuntu K8S(1.28.2) 節點/etc/kubernetes/manifests 不存在

Ubuntu K8S(1.28.2) 節點/etc/kubernetes/manifests 不存在 在查看日志&#xff08;journalctl -xefu kubelet&#xff09;時發現各節點/etc/kubernetes/manifests 不存在&#xff0c;但主節點沒有異常 21080 file.go:104] "Unable to read config path" err"…

neo4j基礎操作:命令行增刪改查

目錄 一&#xff0c;Neo4j的增 1.1.新增節點 1.2.新增關系 1.2.1創建節點時&#xff0c;創建關系 1.2.2在已有的節點上&#xff0c;創建關系 二&#xff0c;Neo4j的刪除 2.1刪除節點 2.1.1無關系的節點刪除 2.1.2 有關系的節點刪除 三&#xff0c;節點修改 3.1 給節點…

rollout 是什么:機器學習(強化學習)領域

rollout 是什么:機器學習(強化學習)領域 指從特定初始狀態開始,按照某個策略或模型進行一系列動作和狀態轉移,直到達到終止狀態或預定時間步數 。比如: 迷宮任務:強化學習代理在迷宮中,從起始點出發,按某策略(如隨機選方向走)進行移動,直到找到出口或達到最大移動…

stm32之TIM定時中斷詳解

目錄 1.引入1.1 簡介1.2 類型1.2.1 基本定時器1.2.2 通用定時器1. 觸發控制單元 (Trigger Control Unit)2. 輸入捕獲單元 (Input Capture Unit)3. 輸出比較單元 (Output Compare Unit)4. CNT 計數器5. 自動重裝載寄存器 (ARR)6. 預分頻器 (PSC)7. 中斷與 DMA 事件8. 剎車功能 (…

centos8源碼安裝openssl

前言&#xff1a; 在使用python3.11部署運行FastAPI時&#xff0c;由于其uvicorn需要使用openssl模塊&#xff0c;導致沒有安裝openssl的服務器項目運行不起來. 【第一步】 我的網盤下載openssl-1.1.1n.tar.gz 提取碼: vay9 【第二步】 上傳到服務器解壓 tar -zxvf opens…

vue3 動態修改系統title

vue3 動態修改系統title 修改前 修改后 1、封裝 useTitle 工具函數 創建組合式 API&#xff0c;通過 watchEffect 監聽標題變化&#xff1a; // composables/useTitle.js import { ref, watchEffect } from vue;export function useTitle(initialTitle) {const title r…

比較兩種判斷相同二叉樹的方法:遞歸與遍歷序列對比

在二叉樹操作中&#xff0c;判斷兩棵樹是否相同是一個常見的問題。本文將對比兩種不同的解決方案&#xff1a;遞歸法和遍歷序列對比法&#xff0c;分析它們的優缺點&#xff0c;并探討為何遞歸法是更優的選擇。 問題描述 給定兩棵二叉樹的根節點 p 和 q&#xff0c;判斷它們是…

從0開始學習大模型--Day01--大模型是什么

初識大模型 在平時遇到問題時&#xff0c;我們總是習慣性地去運用各種搜索引擎如百度、知乎、CSDN等平臺去搜索答案&#xff0c;但由于搜索到的內容質量參差不齊&#xff0c;檢索到的內容只是單純地根據關鍵字給出內容&#xff0c;往往看了幾個網頁都找不到答案&#xff1b;而…

【AI大模型】SpringBoot整合Spring AI 核心組件使用詳解

目錄 一、前言 二、Spring AI介紹 2.1 Spring AI介紹 2.2 Spring AI主要特點 2.3 Spring AI核心組件 2.4 Spring AI應用場景 2.5 Spring AI優勢 2.5.1 與 Spring 生態無縫集成 2.5.2 模塊化設計 2.5.3 簡化 AI 集成 2.5.4 支持云原生和分布式計算 2.5.5 安全性保障…

洛谷 P9007 [入門賽 #9] 最澄澈的空與海 (Hard Version)

這道題可不入門。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 給定 n n n&#xff0c;求有多少組 ( x , y , z ) (x,y,z) (x,y,z) 滿足&#xff1a; x ? y z n ! x-\dfrac{y}{z}n! x?zy?n! x ? y z n ! n \dfrac{x-y…

PostgreSQL 的 pg_stat_file 函數

PostgreSQL 的 pg_stat_file 函數 pg_stat_file 是 PostgreSQL 提供的一個系統管理函數&#xff0c;用于獲取文件系統上文件的元數據信息。這個函數對于數據庫管理員進行文件級別的監控和診斷非常有用。 一 函數基本語法 pg_stat_file(filename text [, missing_ok boolean …

關于麒麟服務器實現docker-compose服務開機自啟

我本地服務器環境是麒麟V10版本&#xff1a; 首先確定docker-compose服務絕對路徑命令&#xff1a; which docker-compose我這里輸出是&#xff1a;/usr/bin/docker-compose 編輯服務文件&#xff1a; sudo vim /etc/systemd/system/docker-compose-webup.service[Unit] Desc…

基于 jQuery 實現復選框全選與選中項查詢功能

在 Web 開發中&#xff0c;復選框是常見的交互元素&#xff0c;尤其是在涉及批量操作、數據篩選等場景時&#xff0c;全選功能和選中項查詢功能顯得尤為重要。本文將介紹如何使用 HTML、CSS 和 jQuery 實現一個具備全選、反選以及選中項查詢功能的復選框組&#xff0c;幫助開發…

AfuseKt2.4.2 | 支持阿里云盤、Alist等平臺視頻播放,具備自動海報墻刮削功能的強大播放器

AfuseKt是一款功能強大的安卓端在線視頻播放器&#xff0c;支持播放阿里云盤、Alist、WebDAV等平臺的視頻內容。它具備自動海報墻刮削功能&#xff0c;能自動生成影片信息和海報墻&#xff0c;提供良好的視覺體驗。此外&#xff0c;它還支持倍速播放、字幕、音軌切換等多種實用…

Netlink在SONiC中的應用

Netlink在SONiC中的應用 Netlink介紹 Netlink 是 Linux 內核態程序與用戶空間程序之間進行通信的機制之一&#xff0c;原本是用于傳遞網絡協議棧中的各種控制消息。它采用和套接字&#xff08;socket&#xff09;編程接口相同的形式&#xff0c;常用于配置內核網絡子系統&…

語音合成之十一 提升TTS語音合成效果:低質量數據清洗、增強與數據擴增

低質量數據清洗、增強與數據擴增 1. 引言&#xff1a;TTS的基石——數據質量2. 基礎&#xff1a;TTS數據準備工作流2.1 規劃&#xff1a;定義藍圖2.2 執行&#xff1a;從原始數據到訓練就緒格式2.3 最佳實踐與可復現性 3. 攻克缺陷&#xff1a;低質量語音數據的清洗與增強3.2 手…

Java IO流分類與記憶方法

Java IO流分類與記憶方法 在Java IO流體系中,理解節點流和包裝流的區別是掌握IO編程的關鍵。 一、核心分類標準 1. 節點流(Node Stream) 直接對接數據源:直接連接物理IO設備(文件、網絡、內存等)基礎功能:提供最基礎的讀寫能力命名特征:通常包含數據源類型名稱(如Fi…

架構師如何構建個人IP:職業規劃與業務戰略的雙重提升

在數字化時代&#xff0c;軟件架構師的角色已從單純的技術專家轉變為兼具技術領導力和業務影響力的復合型人才。如何構建個人IP&#xff0c;提升行業影響力&#xff0c;成為架構師職業發展的關鍵課題。本文從個人認知、業務戰略、架構決策、產品思維四個維度&#xff0c;探討架…