1. 程式人生 > >賦crontab -e 許可權以及使用命令詳解

賦crontab -e 許可權以及使用命令詳解

.  Crontab 介紹

       crontab命令的功能是在一定的時間間隔排程一些命令的執行。

1.1 /etc/crontab 檔案

       在/etc目錄下有一個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。

如:

[[email protected] ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

1.2 /etc/cron.deny  /etc/cron.allow 檔案

/etc/cron.deny 表示不能使用crontab 命令的使用者

/etc/cron.allow 表示能使用crontab的使用者。

如果兩個檔案同時存在,那麼/etc/cron.allow 優先。

如果兩個檔案都不存在,那麼只有超級使用者可以安排作業。

每個使用者都會生成一個自己的crontab 檔案。這些檔案在/var/spool/cron目錄下:

如:

[

[email protected] ~]# cd /var/spool/cron

[[email protected] cron]# ls

oracle  root

我們直接檢視這個檔案,裡面的內容和對應使用者顯示的crontab -l 一致。

[[email protected] cron]# cat oracle

00 6 * * * /u02/scripts/del_st_archive.sh >/u02/scripts/del_st_arch.log 2>&1

[[email protected] cron]# cat root

0 12 * * * /root/bin/sync-clock.sh

[[email protected] cron]#

.  Crontab 使用說明

2.1  Crontab語法

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)

       其中,file是命令檔案的名字。如果在命令列中指定了這個檔案,那麼執行crontab命令,則將這個檔案拷貝到crontabs目錄下;如果在命令列中沒有制定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將他們也存放在crontab目錄下。

幫助:

[[email protected] ~]# man crontab

CRONTAB(1)                                                          CRONTAB(1)

NAME

       crontab - maintain crontab files for individual users (ISC Cron V4.1)

SYNOPSIS

       crontab [-u user] file

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

DESCRIPTION

       Crontab  is the program used to install, deinstall or list the tables used to drive the cron(8) daemon in ISC Cron.  Each user can have their own crontab,  and  though these  are  files in /var/spool/ , they are not intended to be edited directly. For SELinux in mls mode can be even more crontabs  -  for each  range.  For  more  see selinux(8).

       If  the  cron.allow  file  exists,  then  you must be listed therein in order to be allowed to use this command.  If  the  cron.allow  file  does  not exist  but  the cron.deny  file  does  exist,  then you must not be listed in the cron.deny file in order to use this command.  If neither of these files exists, only the  super  user will be allowed to use this command.

OPTIONS

       -u     It  specifies  the name of the user whose crontab is to be tweaked.  If this  option is not given, crontab examines "your" crontab, i.e., the crontab  of the  person  executing the command.  Note that su(8) can confuse crontab and               that if you are running inside of su(8) you should always use the -u  option               for  safety¡¯s sake.  The first form of this command is used to install a new               crontab from some named file or standard input if the pseudo-filename "-" is               given.

       -l     The current crontab will be displayed on standard output.

       -r     The current crontab will be be removed.

       -e     This  option  is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables.  After you exit from the edi-tor, the modified crontab will be installed automatically.

       -i     This  option  modifies the -r option to prompt the user for a ¡¯y/Y¡¯ response before actually removing the crontab.

       -s     It will append the current SELinux security context string as  an  MLS_LEVEL setting  to  the  crontab file before editing / replacement occurs - see the documentation of MLS_LEVEL in crontab(5).

SEE ALSO

       crontab(5), cron(8)

FILES

       /etc/cron.allow

       /etc/cron.deny

STANDARDS

       The crontab command conforms to IEEE Std1003.2-1992 (¡®¡®POSIX¡¯¡¯).  This new  command syntax  differs  from  previous versions of Vixie Cron, as well as from the classic

       SVR3 syntax.

DIAGNOSTICS

       A fairly informative usage message appears if you run it with a bad command line.

AUTHOR

       Paul Vixie <[email protected]>

4th Berkeley Distribution       16 Januar 2007                      CRONTAB(1)

2.2  Crontab 格式說明

       我們可以用crontab -e 新增要執行的命令。 命令執行的結果,無論是標準輸出還是錯誤輸出,都將以郵件形式發給使用者。

   新增的命令必須以如下格式:

   * * * * * /command path

       前五個欄位可以取整數值,指定何時開始工作,第六個域是字串,即命令欄位,其中包括了crontab排程執行的命令。 各個欄位之間用spaces和tabs分割。

5個欄位分別表示:

       分鐘:0-59

       小時:1-23

       日期:1-31

       月份:1-12

       星期:0-6(0表示週日)

還可以用一些特殊符號:

       *: 表示任何時刻

       ,: 表示分割

  -:表示一個段,如第二端裡: 1-5,就表示1到5點

       /n : 表示每個n的單位執行一次,如第二段裡,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.

一些示例:

00 8,12,16 * * * /data/app/scripts/monitor/df.sh

30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh

43 21 * * * 21:43 執行

15 05 * * *    05:15 執行

0 17 * * * 17:00 執行

0 17 * * 1 每週一的 17:00 執行

0,10 17 * * 0,2,3 每週日,週二,週三的 17:00和 17:10 執行

0-10 17 1 * * 毎月1日從 17:00到7:10 毎隔1分鐘 執行

0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 執行

42 4 1 * *     毎月1日的 4:42分 執行

0 21 * * 1-6   週一到週六 21:00 執行

0,10,20,30,40,50 * * * * 每隔10分 執行

*/10 * * * *        每隔10分 執行

* 1 * * *         從1:0到1:59 每隔1分鐘 執行

0 1 * * *         1:00 執行

0 */1 * * *        毎時0分 每隔1小時 執行

0 * * * *         毎時0分 每隔1小時 執行

2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 執行

30 5 1,15 * *       1日 和 15日的 5:30 執行

2.3  & 後臺執行命令

       當在前臺執行某個作業時,終端被該作業佔據;而在後臺執行作業時,它不會佔據終端。可以使用&命令把作業放到後臺執行。

       如:

       30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh &

       在後臺執行作業時要當心:需要使用者互動的命令不要放在後臺執行,因為這樣你的機器就會在那裡傻等。

       不過,作業在後臺執行一樣會將結果輸出到螢幕上,干擾你的工作。如果放在後臺執行的作業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個檔案中:

       如:

              command >out.file 2>&1 &

       在這個例子中,2>&1表示所有的標準輸出和錯誤輸出都將被重定向到一個叫做out.file 的檔案中。

2.4  2>&1 含義

先看一個例子:

0 2 * * * /u01/test.sh >/dev/null 2>&1 &

這句話的意思就是在後臺執行這條命令,並將錯誤輸出2重定向到標準輸出1,然後將標準輸出1全部放到/dev/null 檔案,也就是清空。

在這裡有有幾個數字的意思:

       0表示鍵盤輸入

       1表示標準輸出

       2表示錯誤輸出.

我們也可以這樣寫:

0 2 * * * /u01/test.sh  >/u01/out.file &  --這裡沒寫,預設是1

0 2 * * * /u01/test.sh  1>/u01/out.file &

0 2 * * * /u01/test.sh  2>/u01/out.file &

0 2 * * * /u01/test.sh  2>/u01/out.file  2>&1 &

將tesh.sh 命令輸出重定向到out.file, 即輸出內容不列印到螢幕上,而是輸出到out.file檔案中。

2>&1 是將錯誤輸出重定向到標準輸出。 然後將標準輸入重定向到檔案out.file。

&1 表示的是檔案描述1,表示標準輸出,如果這裡少了&就成了數字1,就表示重定向到檔案1。

& :後臺執行

測試:

ls 2>1 : 不會報沒有2檔案的錯誤,但會輸出一個空的檔案1;

ls xxx 2>1: 沒有xxx這個檔案的錯誤輸出到了1中;

ls xxx 2>&1: 不會生成1這個檔案了,不過錯誤跑到標準輸出了;

ls xxx >out.txt 2>&1 == ls xxx 1>out.txt 2>&1;  因為重定向符號>預設是1,這句就把錯誤輸出和標準輸出都傳到out.txt 檔案中。

2.5  2>&1寫在後面的原因

       格式:command > file 2>&1   == command  1> file 2>&1

       首先是command > file將標準輸出重定向到file中, 2>&1 是標準錯誤拷貝了標準輸出,也就是同樣被重定向到file中,最終結果就是標準輸出和錯誤都被重定向到file中。

如果改成: command 2>&1 >file

       2>&1 標準錯誤拷貝了標準輸出的行為,但此時標準輸出還是在終端。>file 後輸出才被重定向到file,但標準錯誤仍然保持在終端。

------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

網上資源: http://tianlesoftware.download.csdn.net

相關視訊:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(滿); DBA2 群:62697977(滿)

DBA3 群:62697850   DBA 超級群:63306533;    

聊天 群:40132017

--加群需要在備註說明Oracle表空間和資料檔案的關係,否則拒絕申請


當然crontab -e 時候,經常會報沒有許可權,這個問題我分別在hp unix ,IBM aix ,linux suse 說明一下,是那個檔案控制權限。

1.hp unix 與IBM aix 的許可權方式一下,都記錄在/var/adm/cron/cron.allow 這個檔案中,只要在這個檔案中增加相應的使用者,那麼這個使用者就有執行 crontab -e 的許可權.

hljww[/var/adm/cron]#more cron.allow
root
adm
uucp
agent_t
oracle
etl

2.suse linux 預設使用者是都充許使用crontab 的,我們可以在/etc/cron.deny 中增加使用者,這樣使用者就能不使用crontab -e.

3.crontab 常用選項(hp unix )

cron 守護程式

這個 cron 守護程式執行的命令和 crontab 檔案條目是相對應的。如果不重新定向 cron 作業的輸出為標準輸出或標準錯誤,cron 守護程式就會通過電子郵件告知您任何命令輸出或錯誤。如果在 crontab 檔案中指定了不正確的 cron 作業,這個 cron 守護程式不執行這個作業。 cron 守護程式只在 cron 守護程式被初始化時檢查 crontab 檔案。當用 crontab 命令改變 crontab 檔案時,指示變化的訊息被髮送到 cron 守護程式。這消除了在規則的排程間隔檢查新的或改變的檔案的開銷。

控制使用 crontab 命令

/var/adm/cron/cron.allow 和 /var/adm/cron/cron.deny 檔案控制哪一個使用者可以使用 crontab 命令。root 使用者可以建立、編輯或刪除這些檔案。這些檔案中的條目是使用者登入名,每行一個名稱。如果登入標識和多個的登入名稱相關聯,這個 crontab 命令採用第一個在 /etc/passwd 檔案中的登入名稱,而不管當前實際使用哪一個登入名稱。而且,要允許使用者啟動 cron 作業,應該使用 chuser 命令將 /etc/security/user 檔案中的守護程式屬性設定為 TRUE。 以下關於 cron.allow 檔案的一個示例:
root
nick
dee
sarah
如果 cron.allow 檔案存在,只有在檔案中出現其登入名稱的使用者可以使用 crontab 命令。root 使用者的登入名必須出現在 cron.allow 檔案中,如果這個檔案存在的話。系統管理員可以明確的停止一個使用者,通過使用 crontab 命令,同時在 cron.deny 檔案中列出使用者的登入名。如果只有 cron.deny 檔案存在,任一名稱沒有出現在這個檔案中的使用者可以使用 crontab 命令。 如果以下一個條件成立,使用者將不能使用 crontab 命令:
  • cron.allow 檔案和 cron.deny 檔案不存在(只允許 root 使用者)。 
  • cron.allow 檔案存在,但使用者的登入名並不列在其中。 
  • cron.deny 檔案存在,並且使用者的登入名列在其中。
如果 cron.allow 和 cron.deny 檔案都不存在,只有被 root 使用者授權的人可以用 crontab 命令提交一個作業。

crontab 檔案條目格式

一個 crontab 檔案包含每個 cron 作業的條目。條目由換行字元分開。每個 crontab 檔案條目包括 6 個欄位,它們被空格或製表符以以下格式分開:
 
minute  hour  day_of_month  month  weekday  command

相關推薦

crontab -e 許可權以及使用命令

一.  Crontab 介紹        crontab命令的功能是在一定的時間間隔排程一些命令的執行。 1.1 /etc/crontab 檔案        在/etc目錄下有一個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程c

Linux下的crontab定時執行任務命令

   crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護

【Linux】Linux定時任務Crontab命令

星期幾 ima 默認 定時 最好 表示 時間 path 配置文件 linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以, Lin

Linux crontab命令

條件 nta mman minute 使用 1-1 同時 刪除用戶 設置 1.crontab命令概覽      命令參數:   -u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用

Linux crontab 定時任務命令

-1 data new ubuntu 時間間隔 服務 run back use Linux Crontab 定時任務 命令詳解 [日期:2016-02-13] 來源:Linux社區 在工作中需要數據庫在每天零點自動備份所以需要建立一個定時任務.我選擇在Linux下使用

Linux操作系統的安裝以及基本的操作命令

tomcat7 replicat rem 命令詳解 onf 日誌文件 out 橋接 ati 背景:使用的虛擬機安裝Linux 虛擬機使用的是VMware Linux版本:CentOS-6.7-X86 自行下載:CentOS-6.7-x86_64-bin-DVD1.

Linux定時任務Crontab命令

自動 monthly ons 命名 維護 我們 周期 你在 腳本文件 linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以, L

Linux route命令和使用,以及網卡命令

linux 路由 網卡一 路由的基礎知識:1)路由概念路由: 跨越從源主機到目標主機的一個互聯網絡來轉發數據包的過程路由器:能夠將數據包轉發到正確的目的地,並在轉發過程中選擇最佳路徑的設備路由表:在路由器中維護的路由條目,路由器根據路由表做路徑選擇直連路由:當在路由器上配置了接口的IP地址,並且接口狀態為

GIT常用命令以及使用圖示

1配置個人資訊,方便提交程式碼管理 獲取Git配置資訊,執行以下命令: git config --list 如果你還沒有設定名字 user.name 和 user.email的話,可以用以下指令設定: git config --global user.name "user"git c

linux shutdown命令以及引數

在說shutdown命令之前 先說一下sync命令: sync:將記憶體中尚未寫入硬碟的資料寫入硬碟 因為linux為了保證資料讀寫速度,把常用的資料放在記憶體中,不會立即寫入硬碟,如果有不當關機,這些資料就會丟失 所以在執行shutdown、reboot之類的命令之前,應當多執行幾次sync命令來保

[樂意黎原創] Centos下目錄許可權和使用者名稱使用者組等操作命令

1. Linux/Centos 許可權命令常識: Linux作業系統是多使用者多工作業系統,包括使用者賬戶和組賬戶兩種: 細分使用者賬戶(普通使用者賬戶,超級使用者賬戶)除了使用者賬戶以為還有組賬戶所謂組賬戶就是使用者賬戶的集合,centos組中有兩種型別,私有組和標準組:

crontab 命令(筆記)

# crontab 詳解https://www.cnblogs.com/intval/p/5763929.html */1 * * * * /bin/sh /server/scripts/echo.sh  前面一共有5 個* 號,每個*號各表示不同的意思 第一位代表 分鐘

ab(Apache Bench)命令以及壓力測試模擬

簡介 ApacheBench 是 Apache伺服器自帶的一個web壓力測試工具,簡稱ab。ab又是一個命令列工具,對發起負載的本機要求很低,根據ab命令可以建立很多的併發訪問執行緒,模擬多個訪問者同時對某一URL地址進行訪問,因此可以用來測試目標伺服器的負載壓力。總的來說ab工具小巧簡

Linux系統中定時任務cron和crontab命令與配置規則說明

cron機制         cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制 crontab引數         -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab

docker-1.12 run命令執行以及引數

以上幾篇內容,我們基本瞭解了docker的image,container,dockerfile的一些資訊 這一篇開始,我們要進入正題了,也就是正式開始入門的我們docker,和使用它。 首先,我們要介紹的第一個命令,也是docker最核心的命令:docker run

Linux 許可權命令

1.許可權列表 -rw------- (600) 只有擁有者有讀寫許可權。 -rw-r--r-- (644) 只有擁有者有讀寫許可權;而屬組使用者和其他使用者只有讀許可權。 -rwx------ (700) 只有擁有者有讀、寫、執行許

linux yum命令以及查詢當前哪些包需要更新,與更新命令

yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了

cron和crontab命令 crontab 每分鐘、每小時、每天、每週、每月、每年定時執行 crontab每5分鐘執行一次

cron機制        cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制crontab引數        -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab 

定時任務 Crontab命令

前言 crontab是Unix和Linux用於設定週期性被執行的指令,是網際網路很常用的技術,很多工都會設定在crontab迴圈執行,如果不使用crontab,那麼任務就是常駐程式,這對你的程式要求比較高,一個要求你的程式是24X7小時不宕機,一個是 要求你的排

Systemd服務啟動管理以及awk命令

1、簡述systemd的新特性及unit常見型別分析,能夠實現編譯安裝的如nginx\apache實現通過systemd來管理 Systemd:     POST--BIOS--Bootloader(MBR)--Kernel(ramdisk)--rootfs--/sbin/in