Linux之定時任務

来源:http://www.cnblogs.com/0zcl/archive/2017/05/08/6828187.html
-Advertisement-
Play Games

定時任務Crond介紹 Crond是linux系統中用來定期執行命令/腳本或指定程式任務的一種服務或軟體,一般情況下,我們安裝完Centos5/6 linux操作系統之後,預設便會啟動Crond任務調度服務。 Crond服務會定期(預設每分鐘檢查一次)檢查系統中是否有要執行的任務工作,如果有,便會根 ...


 

定時任務Crond介紹

Crond是linux系統中用來定期執行命令/腳本或指定程式任務的一種服務或軟體,一般情況下,我們安裝完Centos5/6 linux操作系統之後,預設便會啟動Crond任務調度服務。

Crond服務會定期(預設每分鐘檢查一次)檢查系統中是否有要執行的任務工作,如果有,便會根據其預先設定的定時任務規則自動執行該定時任務工作,這個crond定時任務服務就相當於我們平時早起使用的鬧鐘一樣。

 

必須保留的啟動服務:

crond:定時任務服務
network:網路服務
rsyslog:日誌服務
sshd:遠程鏈接服務
sysstat:系統監控服務(涉及一系列監控工具)

 

為什麼要使用定時任務呢?

  • 我們舉個例子說明:例如,我們的資料庫或者代碼程式需要每天晚上0點做一次全備份,這樣每天夜裡都需要執行的周期性工作,如果要讓人操作的話,就得每天半夜爬起來,然後登錄系統執行任務,執行完接著睡覺。另外,執行任務的過程也可能持續幾個小時,這樣一來,一個晚上我們就都不用睡覺了,這樣顯然是不行的。那麼有什麼辦法來解決這個周期性的執行任務需求呢?
  • 這就是linux系統的定時任務Crond,這相當於我們平時生活中的鬧鐘功能,每天晚上提前設置定時,早晨按時叫醒你。
ls -l /var/log/messages* #系統的日誌

ls -l /var/log/secure* #用戶登錄日誌

 

用戶執行的任務工作:某個用戶或系統管理員定期要做的任務工作,例如每隔5分鐘和互聯網上時間伺服器進行時間同步(這是安裝系統基礎優化部分的內容),每天晚上0點備份網站站點數據及資料庫數據,一般這些工作需要由每個運維自行設置才行。

 

伺服器時間同步

echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1" >> /var/spool/cron/root

可通過上面的命令設置每5分鐘執行一次。每次將互聯網時間同步到本地Linux系統。

crontab -l 查看當前用戶的定時任務配置。*號 下麵會詳講~~

time.nist.gov是NTP伺服器地址 time.windows.com,微軟自家的時間伺服器。 更多請參考 ==> 國內常用NTP伺服器地址及IP

 

crontab(命令):正如前面所說的這個命令可以周期性的執行任務工作,例如:每五分鐘做一次伺服器時間同步。要執行crontab這個命令,也需要啟動一個服務crond才行。這個crontab命令是生產工作中最常用到的命令,請大家務必掌握。

1、開機自啟動crond服務

2、此時此刻服務的狀態(查看,開啟,關閉)

3、如何查看進程

ps -ef | grep crond

小結提示:

  • 我們所說的crond服務是運行的程式,而crontab是用來管理用戶的定時任務(規則)的命令
  • crond服務是企業生產工作中常用的重要服務,at和anacron很少用,可以忽略
  • 幾乎每個伺服器都會用到crond服務
  • 上千伺服器可以開發分散式定時任務項目方案(批量管理ansible/saltstack)

 

定時任務Crond使用說明

[root@chengliang ~]# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
usage:  crontab [-u user] file
    crontab [-u user] [ -e | -l | -r ]
        (default operation is replace, per 1003.2)
    -e  (edit user's crontab)
    -l  (list user's crontab)
    -r  (delete user's crontab)
    -i  (prompt before deleting user's crontab)
    -s  (selinux context)
[root@chengliang ~]# 
  • crontab -l 查看當前用戶的定時任務配置
  • crontab -e 進入當前用戶的定時任務vim編輯模式
  • crontab -u 用戶名 -l 查看指定用戶的定時任務設置

 

重點

通過crontab我們可以在固定的間隔時間執行指定的系統指令或script腳本。時間間隔的單位可以是分鐘,小時,日,月,周及以上的任意組合(註意:日和周不要組合)。crond服務通過crontab命令可以很容易的實現周期性的日誌分析或數據備份等企業運維場景工作

使用者許可權及定時任務文件

文件說明
/etc/cron.deny(拒絕) 該文件中所列用戶不允許使用crontab
/etc/cron.allow(允許) 該文件優先順序高於cron.deny(預設不存在,一般不用)
/var/spool/cron/ 所有用戶crontab配置文件預設都存在此目錄,文件名以用戶名命名

[root@chengliang ~]# cat /etc/cron.deny 
zcl
[root@chengliang~]# su - zcl
[chensiqi@chengliang~]$ crontab -l
You (chensiqi) are not allowed to use this program (crontab)
See crontab(1) for more information
[zcl@chengliang~]$ crontab -e
You (chensiqi) are not allowed to use this program (crontab)
See crontab(1) for more information

crontab { -l | -e } 實際上就是在操作/var/spool/cron/當前用戶這樣的文件

預設情況下,當用戶建立定時任務規則後,該規則記錄對應的配置文件會存在於/var/spool/cron中,其crontab配置文件對應的文件名與登錄的用戶名一致,如:root用戶的定時任務配置文件為/var/spool/cron/root

[root@chengliang ~]# ls /var/spool/cron/
root   #預設是沒有的,只有創建了定時任務才有
[root@chengliang ~]# cat /var/spool/cron/root
*/5 * * * * /sbin/ntpdate time.windows.com >/dev/null 2>&1

Crontab定時任務的書寫格式很簡單,用戶的定時任務規則一般分為6個段(每個段通過空格來分隔,系統的定時任務為/etc/crontab,分為7個段,空格來分隔),前五段為時間的設定段,第六段為所要執行的命令或腳本任務段

用戶定時任務實例:

01 * * * * cmd #每小時的01分鐘執行
02 04 * * * cmd #每天4點的02分鐘執行
22 14 * * 00 cmd #每周日的14點22分執行
42 04 01 * * cmd #每月1日的4點42分執行
提示:
1、cmd為要執行的命令或腳本,例如:/bin/sh /server/scripts/chensiqi.sh
2、每個列之間必須要有一個空格。多個空格可以麽?自己實踐  ==> 經我本人測試有多個空格也可以執行!!

時間記憶口訣:分時日月周

crontab 語法格式中特殊符號含義如下表

特殊符號含義
* *號,表示任意時間都,實際就是“每”的意思
- 減號表示分隔符,表示一個時間範圍,區間段,如17-19點,例如:每天的17,18,19點的00分執行任務。00 17-19 * * * cmd
逗號,表示分隔時段的意思例如每天的5點10點00分執行任務,00 5,10 * * * cmd
/n n代表數字,即“每隔n單位時間”,例如:每10分鐘執行一次任務可以寫成/*10 * * * * cmd,其中,/10,的範圍是0-59,因此也可以寫成0-59/10

 

參考博客:http://www.cnblogs.com/chensiqiqi/p/6367890.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  •   協議就是一組介面的集合, 遵守一個協議之後就擁有的該協議中所有方法的聲明 。NSObject這個類遵守了NSObject協議,並且實現了NSObject協議里的所有方法,所以NSObject類及其子類都可以調用這些方法。本文主要介紹NSObject協議里的方法。 (1) &e ...
  • 最近在管理一個伺服器,是Windows Server 2012版本的,本來想連接一下資料庫,發現被設置了密碼,而之前的管理人員已經跑路了,沒有辦法只有修改密碼了。以下是修改過程,記錄一下。 1. 首先查看MySQL資料庫服務是否啟動,這個直接在伺服器管理器的“服務”裡面就可以查到。如果啟動,先關閉該 ...
  • 背景 實施開發的同事找到我,反饋說項目中使用Azure sql database 之後,無法使用Profiler來監控自己開發的存儲過程的參數傳參情況。確實profiler這些實例級別的工具在Azure sql database下是不支持的,那我們有沒有辦法,變相實現監控參數情況,特寫一篇博客記錄一 ...
  • 調試的時候,使用的是 LocalDB,SqlConnection 的連接字元串很簡單 Data Source=(localdb)\ProjectsV12;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encryp ...
  • 什麼是索引: SQL索引有兩種,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系統的性能,加快數據的查詢速度與減少系統的響應時間。 聚集索引:該索引中鍵值的邏輯順序決定了表中相應行的物理順序。 非聚聚索引:該索引中索引的邏輯順序與磁碟上行的物理存儲順序不同。 下麵舉兩個簡單的例子: ...
  • ---游標迴圈遍歷-- begin declare @id int,@temp int,@error int set @error=0 begin tran --申明事務 --業務-- update SmartPromoter set CustomerID=a.ID from SmartCustom... ...
  • 二進位包安裝(推薦安裝方式,不用安裝依賴包,非常方便): 1、下載安二進位包: wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/tarball/percona-xtrabackup-2 ...
  • 一、特點 • 可通過 DBMS_DATAPUMP 調用 • 可提供以下工具: – expdp – impdp – 基於 Web 的界面 • 提供四種數據移動方法: – 數據文件複製 – 直接路徑 – 外部表 – 網路鏈接支持e • 可與長時間運行的作業分離後再重新掛接 • 可重新啟動數據泵作業 DB... ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...