Orange的運維學習日記--23.Linux計劃任務詳解

Orange的運維學習日記–23.Linux計劃任務詳解

文章目錄

  • Orange的運維學習日記--23.Linux計劃任務詳解
    • 一次性計劃任務
      • atd 服務
      • at 命令
        • 基本語法
        • 交互式示例
        • 腳本文件示例
        • timespec 格式示例
      • 查看與管理任務
        • 查看當前隊列
        • 查看任務詳細內容
        • 刪除任務
      • 用戶權限控制
    • 用戶周期性計劃任務
      • 查看任務
      • 編輯任務
      • 刪除任務
      • 管理其他用戶任務
      • 從文件導入任務
    • 系統周期性計劃任務
      • /etc/crontab
      • /etc/cron.d
      • /etc/anacrontab

一次性計劃任務

一次性計劃任務用于在未來某個時間點執行單個命令或腳本

atd 服務

Linux 系統通過 atd 后臺進程提供一次性計劃任務功能
安裝 at 軟件包

yum install at

啟用 atd 服務并設置開機啟動

systemctl enable --now atd
systemctl status atd

at 命令

at 命令從標準輸入讀取要執行的命令

基本語法
at <timespec>
交互式示例

在提示符下輸入命令內容,完成后按 Ctrl+D

at now +5 minutes
echo hello world > /tmp/hello.log
<Ctrl+D>
job 1 at Wed Dec 21 17:09:00 2022
腳本文件示例
cat > myscript.sh << 'EOF'
#!/bin/bash
date >> /tmp/myscript.log
echo hello myscript >> /tmp/myscript.log
EOFat now +5 minutes < myscript.sh
job 2 at Wed Dec 21 17:10:00 2022at now +100 minutes -f myscript.sh
job 3 at Wed Dec 21 18:46:00 2022
timespec 格式示例
  • now +5 hours
  • teatime tomorrow
  • noon +4 days
  • 5 pm august 3 2016

詳細定義見 /usr/share/doc/at/timespec

查看與管理任務

查看當前隊列

使用 at -latq

at -l
1    Wed Dec 21 17:09:00 2022 a root
2    Wed Dec 21 17:10:00 2022 a root
3    Wed Dec 21 18:46:00 2022 a root

atd 提供 a–z 共 26 個隊列,字母越靠后優先級越低
指定隊列使用 -q

at -q b now +5 minutes < myscript.sh
job 4 at Wed Dec 21 17:11:00 2022at -l -q b
4    Wed Dec 21 17:11:00 2022 b root
查看任務詳細內容

使用 at -c 作業號

at -c 3
...
${SHELL:-/bin/sh} << 'marcinDELIMITER4bf95eea'
#!/bin/bash
date >> /tmp/myscript.log
echo hello myscript >> /tmp/myscript.logmarcinDELIMITER4bf95eea
刪除任務

使用 atrm 作業號at -d 作業號

atrm 3

用戶權限控制

/etc/at.allow/etc/at.deny 管理用戶訪問 atd 服務

  • 存在 /etc/at.allow 時,僅允許文件中列出的用戶使用 at
  • 不存在 /etc/at.allow 時,禁止 /etc/at.deny 中列出的用戶使用 at

用戶周期性計劃任務

周期性任務通過 crond 后臺進程執行,使用 crontab 命令管理
如果未重定向 stdout 和 stderr,crond 會將輸出通過郵件發送給作業所有者

在這里插入圖片描述

查看任務

crontab -l

編輯任務

crontab -e

編輯文件支持

  • 環境變量聲明(name=value),常見變量有 SHELL、MAILTO、PATH
  • 空行和 # 注釋
  • 每行定義一個任務,按六列順序排列
    1 分鐘
    2 小時
    3 日
    4 月
    5 星期幾
    6 要執行的命令

字段格式

  • * 表示任意
  • x-y 表示范圍
  • x,y 表示列表,可混合范圍
  • */n 表示步長間隔
  • 月份和星期支持三字母縮寫(Jan、Feb…Mon、Tue…)

示例

# 每年 2 月 2 日 9:00 執行備份
0 9 2 2 * /usr/local/bin/yearly_backup# 七月每周五 9:00-16:00 每 5 分鐘發送 Chime
*/5 9-16 * Jul Fri echo "Chime"# 工作日 23:58 運行日報腳本
58 23 * * 1-5 /usr/local/bin/daily_report# 工作日 9:00 發送 Checkingin 郵件
0 9 * * 1-5 mutt -s "Checking in" boss@example.com % Hi boss just checking in

示例操作

export EDITOR=vim
crontab -e
*/2 2,3-23 * * * date >> /tmp/date.logtail -f /tmp/date.log
2022年12月21日星期三21:02:01CST
2022年12月21日星期三21:04:01CST

刪除任務

crontab -r

管理其他用戶任務

root 用戶可使用 -u 參數

crontab -u laoma -l
crontab -u laoma -r

從文件導入任務

crontab mycron

系統周期性計劃任務

系統管理員可在多處定義周期性作業,crond 會統一讀取

讀取順序

  • /etc/crontab
  • /etc/cron.d/ 目錄內所有文件
  • /etc/anacrontab

/etc/crontab

該文件格式與用戶 crontab 類似,多一個用戶字段指定執行賬戶

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root# .---------------- 分鐘 (0-59)
# |  .------------- 小時 (0-23)
# |  |  .---------- 日 (1-31)
# |  |  |  .------- 月 (1-12 或 Jan-Dec)
# |  |  |  |  .---- 星期幾 (0-7 或 Sun-Sat)
# |  |  |  |  |
# *  *  *  *  * 用戶   命令
01 4 * * * root /usr/local/bin/system_daily_job

/etc/cron.d

該目錄用于存放自定義系統級 crontab 文件,避免 /etc/crontab 被更新覆蓋
示例 /etc/cron.d/0hourly

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly

run-parts 會按文件名排序依次執行 /etc/cron.hourly 下的所有腳本

/etc/anacrontab

anacron 確保在系統關機后仍能執行重要任務,anacrontab 同樣由 crond 處理

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
RANDOM_DELAY=45
START_HOURS_RANGE=3-22# period(天)  delay(分鐘)  job-identifier  command
1              5             cron.daily      nice run-parts /etc/cron.daily
7              25            cron.weekly     nice run-parts /etc/cron.weekly
@monthly       45            cron.monthly    nice run-parts /etc/cron.monthly

字段說明

  • period 定義周期天數,支持整數或宏(@daily、@weekly、@monthly)
  • delay 定義首次執行前的延遲分鐘數
  • job-identifier 對應 /var/spool/anacron 中的狀態文件名
  • command 要執行的命令

anacron 在系統啟動后根據狀態記錄執行錯過的任務

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

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

相關文章

Ubuntu 24.04.2 LTS 安裝mysql8.0.36保姆級教程(從安裝到遠程連接)

目錄 前言 一、系統準備 二、安裝 MySQL 8.0.36 1. 查看可用版本 2.如果沒有對應版本則需要手動下載mysql-apt-config&#xff08;有則跳過&#xff09; 2.1下圖是mysql-apt-config各版本對應的mysql版本 2.2下載mysql apt repository 2.3安裝 MySQL APT Repository 包 …

【LLM】講清楚MLA原理

需要你對MHA、MQA、GQA有足夠了解&#xff0c;相信本文能幫助你對MLA有新的認識。 本文內容都來自https://www.youtube.com/watch?v0VLAoVGf_74&#xff0c;如果閱讀本文出現問題&#xff0c;建議直接去看一遍。 按照Deepseek設定一些參數值&#xff1a;輸入token長度n10&…

谷歌采用 Ligero 構建其 ZK 技術棧

1. 引言 前序博客有&#xff1a; Ligero 和 Ligetron 中的 MPC 和 ZKLigetron&#xff1a;Nim Network開發的針對AI的zkVMLigetron&#xff1a;基于MPC-In-The-Head范式的zkVM簡介 在隱私保護身份驗證領域邁出重要一步&#xff0c;谷歌最近宣布 將零知識證明&#xff08;ZKP…

Flutter渲染引擎:Impeller和Skia

一、Impeller 渲染引擎的發布時間Impeller 是 Flutter 團隊為解決 Skia 引擎在移動端&#xff08;尤其是 iOS 平臺&#xff09;的性能問題而開發的全新渲染引擎&#xff0c;其發展歷程如下&#xff1a;首次公開&#xff1a;2021 年 Google I/O 大會上首次提及&#xff0c;作為 …

網絡編程-加密算法

目錄 一.網絡編程基礎 1. 概述 2. IP地址 3. 域名 4. 網絡模型 5. 常用協議 6. 小結 二.TCP編程 1. 什么是Socket&#xff1f; 2. 服務器端 3. 客戶端 4. Socket流 5. 小結 三.UDP編程 1. 概述 2. 服務器端 3. 客戶端 4. 小結 案例&#xff1a; 四.加密算法 …

【網絡工程師軟考版】網絡安全

任何形式的網絡服務都會導致安全方面的風險&#xff0c;問題是如何將風險降到最低程度&#xff0c;目前的網絡安全措施有數據加密、數字簽名、身份認證、防火墻、特征過濾等。所涉內容&#xff1a;1、網絡安全基礎2、加密技術與哈希算法3、數字簽名4、數字證書5、VPN技術6、防火…

深入淺出設計模式——創建型模式之建造者模式 Builder

文章目錄建造者模式簡介建造者模式結構建造者模式代碼實例定義產品類House定義建造者定義抽象建造者AbstractBuilder定義具體建造者定義指揮者客戶端代碼示例運行結果建造者模式總結代碼倉庫建一棟房子總共分幾步&#xff1f;建造者模式告訴你答案&#xff01;“把大象裝冰箱&a…

OpenVLA: 論文閱讀 -- 開源視覺-語言-行動模型

更多內容&#xff1a;XiaoJ的知識星球 目錄OpenVLA&#xff1a;開源視覺-語言-行動模型1. 介紹2. 相關工作1&#xff09;視覺條件語言模型&#xff08;Visually-Conditioned Language Models&#xff09;2&#xff09;通用型機器人策略&#xff08;Generalist Robot Policies&a…

JavaWeb(蒼穹外賣)--學習筆記15(分頁查詢PageHelper)

前言 終于開始學習做項目了&#xff0c;本篇文章是學習B站黑馬程序員蒼穹外賣的學習筆記&#x1f4d1;。我的學習路線是Java基礎語法-JavaWeb-做項目&#xff0c;管理端的功能學習完之后&#xff0c;就進入到了用戶端微信小程序的開發&#xff0c;這篇文章來看看分頁查詢&#…

金融專題|某跨境支付機構:以榫卯企業云平臺 VPC 功能保障業務主體安全

作者&#xff1a;SmartX 金融團隊 金融機構在信息化建設時面臨諸多數據合規要求&#xff0c;例如&#xff1a;不同業務區域之間互相隔離、數據庫僅能由關聯的應用服務器訪問、僅有特定的服務器允許被外網訪問等。對此&#xff0c;某跨境支付機構以 SmartX 榫卯企業云平臺構建私…

Win10下python環境變量呼出微軟應用商店

以下是三種徹底解決 Windows 10 的 CMD 中運行 python 命令彈出應用商店問題的方法??方法一&#xff1a;調整環境變量優先級?-或者直接刪除微軟應用商店的環境變量%USERPROFILE%\AppData\Local\Microsoft\WindowsApp???操作步驟??打開系統環境變量設置&#xff08;右鍵…

字節跳動“扣子”(Coze)開源:AI智能體生態的技術革命

&#xff08;以下借助 DeepSeek-R1 輔助整理&#xff09; 在2025年7月26日的深夜&#xff0c;GitHub上悄然出現的兩個倉庫——Coze Studio和Coze Loop&#xff0c;在48小時內狂攬超過9,000顆Star。字節跳動以Apache 2.0許可證將自家AI智能體平臺的核心技術徹底開源。 “當所有人…

Camx-usecase ID和pipeline的匹配源碼解讀

組件關系整體流程&#xff1a;camxhal3.cpp:704 open()camxhal3.cpp:1423 configure_streams()chxextensionmodule.cpp:2810 InitializeOverrideSessionchxusecaseutils.cpp:850 GetMatchingUsecase()chxadvancedcamerausecase.cpp:4729 Initialize()chxadvancedcamerausecase.…

日志管理進入「對話式」時代:日志易MCP Server落地實錄

01 背景&#xff1a;MCP協議介紹在AI蓬勃發展的當下&#xff0c;大型語言模型&#xff08;LLM&#xff09;雖展現出強大潛力&#xff0c;卻受困于與外部資源連接的難題。數據分散、接口繁雜&#xff0c;致使AI模型難以靈活對接本地資源與遠程服務&#xff0c;極大限制了其響應質…

django-3模型操作

from django.db import modelsclass Book(models.Model):title models.CharField(max_length200) # 書名author models.CharField(max_length100) # 作者publish_date models.DateField() # 出版日期price models.DecimalField(max_digits10, decimal_places2) # 價格s…

【繪制圖像輪廓】——圖像預處理(OpenCV)

目錄 1 什么是輪廓 2 尋找輪廓 2.1 mode參數 2.2 method參數 3 繪制輪廓 1 什么是輪廓 輪廓是一系列相連的點組成的曲線&#xff0c;代表了物體的基本外形。輪廓是連續的&#xff0c;邊緣不一定連續。輪廓是一個閉合的、封閉的形狀。 輪廓的作用&#xff1a; 形狀分析 目…

嵌入式 Linux 深度解析:架構、原理與工程實踐(增強版)

嵌入式 Linux 深度解析&#xff1a;架構、原理與工程實踐&#xff08;增強版&#xff09; 目錄嵌入式 Linux 深度解析&#xff1a;架構、原理與工程實踐&#xff08;增強版&#xff09;第一章 嵌入式 Linux 基礎概念1.1 定義與核心特征1.2 典型架構棧深度解析第二章 Linux 文件…

xcode swift項目運行、連接真機運行報錯,引入文件夾失敗

最近亂七八糟解決了很多報錯&#xff0c;看著記錄點吧 xcode版本&#xff1a;16 failed to emit precompiled header ‘/Users/yuqing/Library/Developer/Xcode/DerivedData/cloudspace-ios-ejldldcfhouqnretchuzoewmsqkg/Build/Intermediates.noindex/PrecompiledHeaders/spic…

[python][selenium] Web UI自動化8種頁面元素定位方式

測試工程師必備&#xff01;Selenium自動化測試全攻略 | 手寫POM框架數據驅動&#xff0c;輕松搞定UI自動化&#xff01;簡單的加個前置知識&#xff1a; 第一&#xff1a;webdriver.Chrome()這句話&#xff0c;通過WebDriver的構造方法&#xff0c;拿到瀏覽器驅動的對象&…

絲桿支撐座在電子裝配中的關鍵作用

絲桿支撐座是電子裝配過程中不可或缺的組件&#xff0c;主要用于支撐和固定絲桿&#xff0c;確保其穩定性和精度。在高速、高精度裝配場景中&#xff0c;絲桿支撐座的作用尤為突出。穩定性與精度保障&#xff1a;絲桿支撐座采用高品質鋼材制作&#xff0c;具有高剛性和高強度&a…