1. 程式人生 > >Linux系統使用--定時關機的實現以及crontab命令和檔案詳解

Linux系統使用--定時關機的實現以及crontab命令和檔案詳解

一、前言

為了以後不用再半夜跑回實驗室關電腦,昨天中午花了兩個小時左右的時間搞了一下如何實現Linux系統的定時關機,結果沒搞出來。在老師的指點下得以解決,寫一部落格分享之。
另,發現現在網上的資料越發的不靠譜了,昨日查閱了那麼多資料都沒有解決問題。

本博文主要內容如下:

  1. Linux16.04系統定時關機的實現;
  2. crontab命令和檔案的相關解析。

二、定時關機的實現

廢話不多說,直接點明解決方法,具體解析見下一目錄。
傻瓜式解決問題,步驟如下:

2.1 檢視/etc/crontab檔案

進入/etc目錄

cd /etc

檢視crontab檔案

vi crontab

檔案內容如下:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local
/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52
6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #下面這一行是定時關機的實現 55 22 * * * root /sbin/shutdown -h now #

(紅框中為個人新增內容)
截圖如下:
crontab

2.2 修改crontab檔案

使用root許可權開啟並修改crontab檔案。

sudo vi crontab

新增你要實現的定時關機操作
例如,我想在每天22時55分定時關機:

55 22 * * * root /sbin/shutdown -h now

具體格式如下:

m + h + dom + mon + dow + user + command

解析:分鐘 + 小時 + 日 + 月 + 星期 + 具體操作(該操作可以是執行某條命令也可以是執行某個指令碼)

三、crontab命令詳解

3.1 crond簡介

crond 是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序,與windows下的計劃任務類似,當安裝完成作業系統後,預設會安裝此服務 工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。

3.2 crontab命令詳解

3.2.1 crontab命令

linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另 外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令 :crontab 命令。

3.2.2 命令解析

1.命令格式:

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

2.命令功能:

通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script指令碼。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常設合週期性的日誌分析或資料備份等工作。

3.命令引數:

-u user:用來設定某個使用者的crontab服務,例如,“-u ixdba”表示設定ixdba使用者的crontab服務,此引數一般有root使用者來執行。

file:file是命令檔案的名字,表示將file做為crontab的任務列表檔案並載入crontab。如果在命令列中沒有指定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

-e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案。

-l:顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示當前使用者的crontab檔案內容。

-r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案。

-i:在刪除使用者的crontab檔案時給確認提示。

3.3 crontab檔案詳解

Linux下的任務排程分為兩類,系統任務排程和使用者任務排程。

3.3.1 系統任務

系統任務排程是指系統需要週期性進行的任務操作,具有周期性和強制性。
系統任務在/etc目錄下的crontab檔案中,如上文所示。
檔案內容:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

檔案簡析:
a.環境變數配置
前兩行是用來配置crond任務執行的環境變數,第一行SHELL變數指定了系統要使用哪個shell,這裡是sh,第二行PATH變數指定了系統執行 命令的路徑主要有/usr/local/sbin、/usr/local/bin、/sbin、/bin、/usr/sbin、/usr/bin等路徑。
b.任務詳解
檔案正文是該系統的系統任務排程,每一行都是一個任務。

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

3.3.2 使用者任務排程

1.使用命令為你要某個使用者新增的操作。

sudo crontab -u username -e

然後儲存退出。
截圖如下:
edit
2.啟動cron
命令

/etc/init.d/cron start

root

3.4 如何使用crontab命令設立定時任務

使用root在/etc/crontab檔案下新增你要執行的定時任務即可。
任務格式:m + h + dom + mon + dow + user + command(分鐘 + 小時 + 日 + 月 + 星期 + 具體操作)
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的指令碼檔案。

四、個人總結

1.如何更好的使用/etc/crontab檔案,使系統任務更加高效調理
2.如何將任務的執行結果及時有效地反饋給使用者

五、參考資料

相關推薦

Linux系統使用--定時關機實現以及crontab命令檔案

一、前言 為了以後不用再半夜跑回實驗室關電腦,昨天中午花了兩個小時左右的時間搞了一下如何實現Linux系統的定時關機,結果沒搞出來。在老師的指點下得以解決,寫一部落格分享之。 另,發現現在網上的資料越發的不靠譜了,昨日查閱了那麼多資料都沒有解決問題。

linux系統基礎的優化以及常用命令

編輯網絡卡配置檔案 vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改配置引數 ONBOOT= yes啟動或者關閉ipsystemctl restart/start/stop  network  網絡卡配置檔案詳解 網

Linux 系統配置JDK1.8.0.11環境變數步驟

1.先進入Linux系統中選擇檔案目錄建立資料夾用於存放jdk檔案包 [baba@localhost ~]$ cd Desktop/ [baba@localhost Desktop]$ mkdir Java 2.進入以建立好的資料夾目錄下載jdk/本地上傳jdk檔案包

JDK的Proxy技術實現AOP,InvocationHandlerProxy——Spring AOP(三)

上一章已經講到了想要完成AOP的設計原理以及要實現AOP功能,得需要使用代理模式: 本章就介紹一個實現動態代理的兩種方式之一——JDK中的Proxy技術 AOP實現原理(使用JDK中的Proxy技術實現AOP功能,InvocationHandler和Proxy(Class)詳解

ORACLE中shutdown命令startup

本文轉自:http://www.ej38.com/showinfo/Oracle-196402.html shutdown有四個引數:normal、transactional、immediate、abort。預設不帶任何引數時表示是normal 一: shutdow

Linux系統裁減之,制作一個極度精簡的Linux-用腳本實現自動拷貝命令依賴庫文件

用腳本實現自動拷貝命令和依賴庫文件第2章 用腳本實現自動拷貝命令和依賴庫文件 這篇文章主要是對我上一篇博文http://blog.51cto.com/linuxprince/2045703加以完善的,前一篇文章中拷貝命令和依賴庫文件的過程是完全手工方式的,顯得特別LOW,這章把該過程完善一下,用

linux系統下文件夾以及文件的權限查看及修改;以及文件和文件夾刪除 rm -rf 命令的使用

系統 chang html 更改 修改文件 art 文件名 mage 管理命令 1、直接查看文件或者文件夾的權限命令: >>ll 或者 >>ls -l r代表讀取權限,w寫權限,x代表執行權限 第一個代表文件類型,-代表是普通文件,d代表是文

linux系統下的實現我們自己的命令列補全

當進入某個目錄下面的時候,如果忘記名字或者怎麼進入的,可以連按兩下tab鍵,這個時候linux會為我們列出來到底有哪些目錄,哪些檔案。 而這不是linux系統天生就有的,而是需要complete這個自動補全工具。我們用的linux大多數都已經安裝。 因為目前我維護10幾臺伺服器,經常

怎樣在WIN10系統下的電腦上設定定時自動關機,福利到啦,如何實現Win10系統定時關機

Windows系統已經得到了廣大使用者的使用,其簡單易懂的介面,都讓我們使用起來得心應手。那麼今天就為大家再帶來一個如何實現windows系統下的電腦定時自動關機的功能。 實現電腦的定時關機,我們要進入到電腦的控制介面。所以首先點選電腦桌面右下角的電腦圖示,右擊點選進入網路和共

linux定時任務crontab命令crond服務

linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另 外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令 :cron

linux系統下安裝redis以及java調用redis

.gz sql 遠程連接 tar 必須 -- 外鍵 onf ++ 關系型數據庫:MySQL Oracle 非關系型數據庫:Redis 去掉主外鍵等關系數據庫的關系性特性 1)安裝redis編譯的c環境,yum install gcc-c++ 2)將redis-2.

Linux系統定時任務

定時任務 crontab 一、定時任務crond介紹crond是linux系統中用來定期執行命令或者指定程序任務的一種服務或者軟件。crond默認情況下(每分鐘),會檢查系統中是否有需要執行的定時任務,如果有,就會根據事先定義好的規則來執行這個定時任務。就好比生活中的鬧鐘一樣。但是註意的是crond對

Linux系統中MySQL的常用操作命令

char OS var 權限 記錄 port nis whereis null 服務: # chkconfig --list 列出所有系統服務# chkconfig --list | grep on 列出所有啟動的系統服務 # chkconfig -

Linux系統桌面下實現遠程控制win7

Linux基礎在安裝好Linux系統桌面,實現從Linux遠程操控win7。本文沒有具體操作如何配置yum倉庫以及自動掛載光盤鏡像(so easy)具體操作如下圖:Linux系統桌面下實現遠程控制win7

Linux系統中,實現LVM邏輯卷管理及磁盤配額

Linux LVM邏輯卷 磁盤管理配額 LVM(Logical Volume Manager)是Linux系統中對磁盤分區進行管理的一種邏輯機制,他是建立在磁盤和分區之上的一個邏輯層,能夠在保持現有數據不變的情況下動態調整磁盤容量,從而提高磁盤管理的靈活性。 1. 執行命令 fdisk -l 來查

MAC訪問控制機制在Linux系統中的實現:SELinux

SELinuxSELinux全稱:Security-Enhanced Linux,安全加強的Linux;SELinux系統的本來名稱為MAC:強制訪問控制;SELinux就是MAC訪問控制機制在Linux系統中的實現; 操作系統安全等級標準(橙皮書): D級別(最低安全級別) C級別:C1,

python__系統 : 異步實現以及GIL

一句話 port types call 參數 import AR python pool 創建進程的方式中有個 callback ,也就是回調. 看代碼: from multiprocessing import Pool import time import os de

Linux學習之九-Linux系統定時任務

天下 郵件服務 kcon 完成 zuoye p s 特殊 command nta Linux系統定時任務 在一些實際工作中需要機器在某個時間自動執行某個任務,不需要人為在此時刻參與,可以建立一個定時任務。 crond 服務是linux下用來周期性的執行某種任務或等待處理某些

Linux系統查看CPU信息命令

wc -l 資源 通信 span inf mage intel processor 物理 提示:   CPU總核數 = 物理CPU個數 * 每顆物理CPU的核數   總邏輯CPU數 = 物理CPU個數 * 每顆物理CPU的核數 * 超線程數 1)查看CPU信息(型號)  

linux系統上面使用tab補全命令

python3 strong spa tab adl try usr centos cnblogs tab的模塊腳本 [root@centos7 ~]# cat tab.py #!/usr/bin/python3.6 # python startup file impor