Linux學習筆記-Ubuntu下使用Crontab設置定時任務

文章目錄

  • 一、概述
  • 二、基于crontab的設置
    • 2.1 基本命令說明
    • 2.2 使用-e指令編輯命令
      • 2.2.1 進入編輯模式
      • 2.2.2 指令信息格式
      • 2.2.4 開啟日志
        • 1) 修改rsyslog配置文件
        • 2) 重啟rsyslog
        • 3) 查看日志
      • 2.2.3 設置后之后重啟服務
  • 三、示例
    • 3.1 每隔一分鐘往文件中日期
    • 3.2 使用-l查看任務列表
    • 3.3 使用-r刪除所有任務
    • 3.4 設置定時關機
  • 總結

白衣沽酒綺羅生
百代繁華一朝都,誰非過客;千秋明月吹角寒,花是主人。
網圖,侵刪

一、概述

crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。該詞來源于希臘語 chronos(χρνο),原意是時間。
通常,crontab儲存的指令被守護進程激活, crond常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
通過Crontab我們可以設置按照按照固定的周期執行某一些操作。
測試用Ubuntu系統信息:

Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)

二、基于crontab的設置

2.1 基本命令說明

crontab [-u username] filepath
crontab [-u username] [-l|-e|-r]
  • -u:此參數為root賬戶用于給其他用戶設置周期任務使用,僅root賬戶可用;
  • -e:編輯crontab的內容;
  • -l:查看crontab的內容;
  • -r:移除所有crontab的內容,若緊要移除其中一項,需要使用-e進行編輯;
  • filepath:通過文件路徑指定要定期致性的文件,建議使用絕對路徑。

2.2 使用-e指令編輯命令

2.2.1 進入編輯模式

zero@ubuntu:/etc$ crontab -e		# 直接使用-e指令編輯信息
no crontab for zero - using an empty one		# 初次使用提示當前沒有信息Select an editor.  To change later, run 'select-editor'.		# 要求選擇默認的編輯器1. /bin/nano        <---- easiest2. /usr/bin/vim.basic3. /usr/bin/vim.tiny4. /bin/edChoose 1-4 [1]: 2		# 我選了了2
crontab: installing new crontab
zero@ubuntu:/etc$

設置完之后會自動打開編輯器用于編輯指令,可以看到基本的提示內容:
在這里插入圖片描述
這是vim編輯界面,編輯完成后“:wq”就可以保存退出了。

2.2.2 指令信息格式

crontab的工作內容包括6個字段,5個時間參數以及一個指令:

字段分鐘小時日期月份指令
數字范圍0-590-231-311-120-7具體的指令

特殊字符和注意信息:

  • 周的數字代表的是星期幾,0和7都代表星期天;
  • *(星號):型號標識任何的意思,就是無論什么數值都符合條件;
  • ,(逗號):標識分割時段的意思,如3,6標識的是3和6都可以;
  • -(減號):代表一定的范圍段,包頭尾,如3-5,標識3,4,5都可以;
  • */n(斜線):標識間隔,即間隔n致性一次,如分鐘設置為*/5或者0-59/5就是標識每個5分鐘執行一次。

2.2.4 開啟日志

ubuntu默認沒有開啟crontab的日志,需要手動開啟日志。
通過配置rsyslog,啟用crontab的日志。

1) 修改rsyslog配置文件
# 注意修改日志配置文件需要使用root權限。
zero@ubuntu:/var/log$ sudo vim /etc/rsyslog.d/50-default.conf

去掉cron日志行簽名的星號,然后“:wq”保存退出。

cron.* /var/log/cron.log 

在這里插入圖片描述

2) 重啟rsyslog

使用service命令重啟rsyslog服務。

zero@ubuntu:/var/log$ service rsyslog restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'rsyslog.service'.
Authenticating as: Zero (zero)
Password:
==== AUTHENTICATION COMPLETE ===
3) 查看日志

重啟之后,crontab有操作時,會發現文件中出現了日志文件。
在這里插入圖片描述

使用tail查看日志

zero@ubuntu:/var/log$ tail /var/log/cron.log
Nov 22 03:10:01 ubuntu CRON[2030]: (root) CMD (test -e /run/systemd/system || SERVICE_MODE=1 /sbin/e2scrub_all -A -r)
Nov 22 03:10:13 ubuntu crontab[2036]: (root) BEGIN EDIT (root)
Nov 22 03:10:25 ubuntu crontab[2036]: (root) REPLACE (root)
Nov 22 03:10:25 ubuntu crontab[2036]: (root) END EDIT (root)

2.2.3 設置后之后重啟服務

設置完指令之后需要重啟crontab服務才能正常執行任務。

zero@ubuntu:/mnt$ service cron restart		# 重啟服務的指令
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'cron.service'.
Authenticating as: Zero (zero)
Password:
==== AUTHENTICATION COMPLETE ===
zero@ubuntu:/mnt$

**注:**亦可以通過service查看狀態:

zero@ubuntu:/mnt$ service cron status
● cron.service - Regular background program processing daemon#                                                 開機自啟動Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)# 狀態:運行中Active: active (running) since Tue 2023-11-21 02:59:00 UTC; 22h agoDocs: man:cron(8)Main PID: 861 (cron)Tasks: 1 (limit: 4516)Memory: 500.0KCPU: 491msCGroup: /system.slice/cron.service└─861 /usr/sbin/cron -f -PNov 22 01:12:01 ubuntu CRON[2819]: (CRON) info (No MTA installed, discarding output)
Nov 22 01:12:01 ubuntu CRON[2819]: pam_unix(cron:session): session closed for user zero
Nov 22 01:13:01 ubuntu CRON[2829]: pam_unix(cron:session): session opened for user zero(uid=1000) by (uid=0)
Nov 22 01:13:01 ubuntu CRON[2830]: (zero) CMD (sudo cat "test" >> /mnt/test.txt)
Nov 22 01:13:01 ubuntu CRON[2829]: (CRON) info (No MTA installed, discarding output)
Nov 22 01:13:01 ubuntu CRON[2829]: pam_unix(cron:session): session closed for user zero
Nov 22 01:14:01 ubuntu CRON[2832]: pam_unix(cron:session): session opened for user zero(uid=1000) by (uid=0)
Nov 22 01:14:01 ubuntu CRON[2833]: (zero) CMD (sudo cat "test" >> /mnt/test.txt)
Nov 22 01:14:01 ubuntu CRON[2832]: (CRON) info (No MTA installed, discarding output)
Nov 22 01:14:01 ubuntu CRON[2832]: pam_unix(cron:session): session closed for user zero

三、示例

3.1 每隔一分鐘往文件中日期

# m h  dom mon dow   command
*/1 * * * * date >> /tmp/test.txt

幾分鐘之后查看文件結果如下:

zero@ubuntu:/tmp$ cat test.txt
Wed Nov 22 02:19:01 AM UTC 2023
Wed Nov 22 02:20:01 AM UTC 2023
Wed Nov 22 02:21:01 AM UTC 2023
Wed Nov 22 02:22:01 AM UTC 2023
Wed Nov 22 02:23:02 AM UTC 2023
Wed Nov 22 02:24:01 AM UTC 2023
Wed Nov 22 02:25:01 AM UTC 2023
Wed Nov 22 02:26:01 AM UTC 2023
Wed Nov 22 02:27:01 AM UTC 2023
Wed Nov 22 02:28:01 AM UTC 2023

**注:**所操作的文件需要具有權限。

3.2 使用-l查看任務列表

使用-l可以直接查看具體的任務,注意任務是按照用戶劃分的,不同用戶查看具有不一樣的結果:
這是默認用戶查看:

zero@ubuntu:/tmp$ crontab -l
40 10 * * * sudo shutdown -h now

這是以管理員權限查看:

zero@ubuntu:/tmp$ sudo crontab -l
# m h  dom mon dow   command

管理員是空的。

3.3 使用-r刪除所有任務

使用-r參數會刪除crontab中的所有的任務清單。
刪除后再次查看就會提示沒有任何任務。

zero@ubuntu:/tmp$ crontab -r
zero@ubuntu:/tmp$ crontab -l
no crontab for zero

3.4 設置定時關機

關機需要使用root權限,設置時需要用sudo切換權限。

zero@ubuntu:~$ sudo crontab -l

關機指令如下:

# 分 時8 4 * * * shutdown -h now

總結

使用crontab可以便捷的設置定時任務,有助于執行一些定時任務,指令也可以通過腳本,這樣可以一次執行多個指令并進行一些比較復雜的操作。

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

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

相關文章

越南服務器租用:企業在越南辦工廠的趨勢與當地(ERP/OA等)系統部署的重要性

近年來&#xff0c;越南逐漸成為全球企業布局的熱門目的地之一。許多企業紛紛選擇在越南設立工廠&#xff0c;以利用其低廉的勞動力成本和優越的地理位置。隨著企業在越南的擴張&#xff0c;對于當地部署ERP系統或OA系統等的需求也日益增長。在這種情況下&#xff0c;租用越南服…

上海亞商投顧:北證50指數持續大漲 短劇概念股再爆發

上海亞商投顧前言&#xff1a;無懼大盤漲跌&#xff0c;解密龍虎榜資金&#xff0c;跟蹤一線游資和機構資金動向&#xff0c;識別短期熱點和強勢個股。 一.市場情緒 滬指昨日震蕩調整&#xff0c;深成指跌超1.4%&#xff0c;創業板指跌超1.7%。北證50指數大漲超8%&#xff0c;…

ROS設置DHCP option121

配置時&#xff0c;了解格式很關鍵&#xff0c;16進制填寫格式如下&#xff1a; 將要訪問的IPV&#xff14;地址&#xff1a;192.168.100.0/24 192.168.30.254 轉換為&#xff1a;掩碼 目標網段 網關 0x18c0a864c0a81efe&#xff0c;0不用填寫 ROS配置如下圖&#xff1a; 抓…

02_使用API_String

StringBuilder StringBuilder 代表可變字符串對象&#xff0c;相對于是一個容器&#xff0c;它里面裝的字符串是可以改變的&#xff0c;就是用來操作字符串的好處&#xff1a;StringBuilder 比 String 更適合做字符串的修改操作&#xff0c;效率會更高&#xff0c;代碼也會更簡…

MacOS “xxxxx“,已損壞,無法打開,你應該將它移到廢紙簍

在這里插入圖片描述 解決方案 應用程序 - 實用工具中打開終端&#xff0c;輸入命令&#xff0c; sudo xattr -r -d com.apple.quarantine 然后將程序拖放至命令窗口&#xff0c;如下圖&#xff1a;

22. Spring源碼篇之推斷構造方法

簡介 很多時候我們的構造器都不止一個&#xff0c;那么spring怎么選擇的呢&#xff0c;簽名介紹了推斷構造方法的擴展點&#xff0c;可以使用Autowired注解去選擇使用哪個構造器&#xff0c;但是即使這樣也有可能有多個Autowired且required為false的構造器&#xff0c;那么還是…

QLineEdit響應editingFinished實現只響應一次

QLineEdit中editingFinished槽函數會在按下enter時響應兩次&#xff0c;分別是按下enter和失去焦點的時候&#xff0c;為了能讓 QLineEdit只響應其中一次&#xff0c;需定義一個全局變量m_bFlagEnter保存是否enter是否按下&#xff0c;按下后&#xff0c;則在失去焦點的時候做對…

Unity發布IOS后,使用xcode打包報錯:MapFileParser.sh:Permissiondenied

1.錯誤提示 使用xcode打包錯誤提示&#xff1a;/Users/mymac/Desktop/myproject/MapFileParser.sh: Permission denied 2.解決方案 打開控制臺輸入&#xff1a;chmod ax /Users/mymac/Desktop/myproject/MapFileParser.sh。按回車鍵執行&#xff0c;然后重新使用xcode發布程序…

【開源】基于JAVA的在線課程教學系統

項目編號&#xff1a; S 014 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S014&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S014&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 系統介紹1.2 項目錄屏 二、研究內容2.1 課程類型管理模塊2.2 課程管理模塊2…

機器學習之數據清洗和預處理

目錄 Box_Cox Box_Cox Box-Cox變換是一種用于數據預處理和清洗的方法&#xff0c;旨在使數據更符合統計模型的假設&#xff0c;特別是對于線性回歸模型。這種變換通過調整數據的尺度和形狀&#xff0c;使其更加正態分布。 Box-Cox變換的定義是: y ( λ ) { y λ ? 1 λ , i…

【深度學習】卷積神經網絡(CNN)

一、引子————邊界檢測 我們來看一個最簡單的例子&#xff1a;“邊界檢測&#xff08;edge detection&#xff09;”&#xff0c;假設我們有這樣的一張圖片&#xff0c;大小88&#xff1a; 圖片中的數字代表該位置的像素值&#xff0c;我們知道&#xff0c;像素值越大&#…

QQ怎么備份聊天記錄?3個方法教你快速備份!

QQ聊天記錄作為用戶和親人、好友以及同事之間溝通的憑證&#xff0c;可以幫助我們回憶起過去的交流內容。如果我們不小心誤刪了QQ聊天記錄或者更換了新手機&#xff0c;那么這時候就需要備份聊天記錄。qq怎么備份聊天記錄呢&#xff1f;本文將介紹3個簡單方法&#xff0c;幫助您…

MySQL - 4種基本索引、聚簇索引和非聚索引、索引失效情況

目錄 一、索引 1.1、簡單介紹 1.2、索引的分類 1.2.1、主鍵索引 1.2.2、單值索引&#xff08;單列索引、普通索引&#xff09; 1.2.3、唯一索引 1.2.4、復合索引 1.2.5、復合索引經典問題 1.3、索引原理 1.3.1、主鍵自動排序 1.3.2、索引的底層原理 1.3.3、B 樹和 B…

創作4周年

&#x1f64c;秋名山碼民的主頁 &#x1f602;oi退役選手&#xff0c;Java、大數據、單片機、IoT均有所涉獵&#xff0c;熱愛技術&#xff0c;技術無罪 &#x1f389;歡迎關注&#x1f50e;點贊&#x1f44d;收藏??留言&#x1f4dd; 獲取源碼&#xff0c;添加WX 目錄 前言機…

哈希表-set、map

當需要判斷一個元素是否在集合中時&#xff0c;就使用哈希法 散列表&#xff08;Hash table&#xff0c;也叫哈希表&#xff09;&#xff0c;是根據鍵&#xff08;Key&#xff09;而直接訪問在內存存儲位置的數據結構。 哈希表中關鍵碼就是數組的索引下標&#xff0c;然后通過…

Web框架Flask

Web框架Flask Flask簡介第一個Flask應用Flask路由Flask路由變量規則Flask URL 構建Flask重定向Flask靜態文件Flask渲染模板Flask請求對象Flask響應對象Flask CookiesFlask錯誤Flask JSON 格式的 APIFlask SessionFlask 消息閃現Flask日志Flask藍圖Flask視圖Flask Jinja2 模板F…

微信消息提醒

有時候同事沒有打開微信&#xff0c;重要的信息可以設置提醒

app小程序開發的重點在哪里?|企業軟件定制網站建設

app小程序開發的重點在哪里&#xff1f;|企業軟件定制網站建設 App小程序定制開發是近年來快速發展的一項技術服務&#xff0c;隨著移動互聯網的普及和用戶需求的不斷升級&#xff0c;越來越多的企業和個人開始關注和需求定制化的小程序開發。那么&#xff0c;對于app小程序定制…

Springboot_文件下載功能(前端后端)

遇到的問題&#xff1a; 文件下載后文件一直被破壞&#xff0c;無法正常打開文件名亂碼&#xff0c;如圖 剛開始一直在糾結&#xff0c;是不是后端沒有寫對&#xff0c;然后導致下載不能使用 后來搜索了一些資料&#xff0c;發現后端沒什么問題 然后就開始找到其他項目對比…

頭發的方向圖(2D和3D)與合成

首先&#xff0c;我們從一個不受光照限制的環境中拍攝一組輸入圖像&#xff0c;這些圖像包含了頭發的不同視角和姿態。我們對這些圖像進行半自動的分割&#xff0c;將頭發從背景中分離出來&#xff0c;然后使用PMVS &#xff0c;一種先進的多視角立體算法&#xff0c;來重建一個…