當(dāng) f1 為 a, b, c,... 時(shí)表示第 a, b, c,... 分鐘要執(zhí)行,f2 為 a, b, c,... 時(shí)表示第 a, b, c...個(gè)小時(shí)要執(zhí)行,其余類推
使用者也可以將所有的設(shè)定先存放在檔案 file 中,用 crontab file 的方式來(lái)設(shè)定時(shí)程表。
例子:
每月每天每小時(shí)的第 0 分鐘執(zhí)行一次 /bin/ls:
0 7 * * * /bin/ls
在 12 月內(nèi), 每天的早上 6 點(diǎn)到 12 點(diǎn)中,每隔 20 分鐘執(zhí)行一次 /usr/bin/backup:
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信給alex@domain.name:
0 17 * * 1-5 mail -s "hi"alex@domain.name< /tmp/maildata
每月每天的午夜 0 點(diǎn) 20 分, 2 點(diǎn) 20 分, 4 點(diǎn) 20 分....執(zhí)行 echo "haha"
20 0-23/2 * * * echo "haha"
注意:
當(dāng)程式在你所指定的時(shí)間執(zhí)行后,系統(tǒng)會(huì)寄一封信給你,顯示該程式執(zhí)行的內(nèi)容,若是你不希望收到這樣的信,請(qǐng)?jiān)诿恳恍锌找桓裰蠹由?> /dev/null 2>&1 即可。
名稱:date
使用權(quán)限:所有使用者
使用方式:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
說(shuō)明:
date 可以用來(lái)顯示或設(shè)定系統(tǒng)的日期與時(shí)間,在顯示方面,使用者可以設(shè)定欲顯示的格式,格式設(shè)定為一個(gè)加號(hào)后接數(shù)個(gè)標(biāo)記,其中可用的標(biāo)記列表如下:
時(shí)間方面:
%:印出 %
%n:下一行
%t:跳格
%H:小時(shí)(00..23)
%I:小時(shí)(01..12)
%k:小時(shí)(0..23)
%l:小時(shí)(1..12)
%M:分鐘(00..59)
%p:顯示本地 AM 或 PM
%r:直接顯示時(shí)間 (12 小時(shí)制,格式為 hh:mm:ss [AP]M)
%s:從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數(shù)
%S:秒(00..61)
%T:直接顯示時(shí)間 (24 小時(shí)制)
%X:相當(dāng)于 %H:%M:%S
%Z:顯示時(shí)區(qū)
日期方面:
%a:星期幾 (Sun..Sat)
%A:星期幾 (Sunday..Saturday)
%b:月份 (Jan..Dec)
%B:月份 (January..December)
%c:直接顯示日期與時(shí)間
%d:日 (01..31)
%D:直接顯示日期 (mm/dd/yy)
%h:同 %b
%j:一年中的第幾天 (001..366)
%m:月份 (01..12)
%U:一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w:一周中的第幾天 (0..6)
%W:一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x:直接顯示日期 (mm/dd/yy)
%y:年份的最后兩位數(shù)字 (00.99)
%Y:完整年份 (0000..9999)
若是不以加號(hào)作為開(kāi)頭,則表示要設(shè)定時(shí)間,而時(shí)間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時(shí),mm 為分鐘,CC 為年份前兩位數(shù)字,YY 為年份后兩位數(shù)字,ss 為秒數(shù)
把計(jì):
-d datestr:顯示 datestr 中所設(shè)定的時(shí)間 (非系統(tǒng)時(shí)間)
--help:顯示輔助訊息
-s datestr:將系統(tǒng)時(shí)間設(shè)為 datestr 中所設(shè)定的時(shí)間
-u:顯示目前的格林威治時(shí)間
--version:顯示版本編號(hào)
例子:
顯示時(shí)間后跳行,再顯示目前日期:
date +%T%n%D
顯示月份與日數(shù):
date +%B %d
顯示日期與設(shè)定時(shí)間(12:34:56):
date --date 12:34:56
注意:
當(dāng)你不希望出現(xiàn)無(wú)意義的 0 時(shí)(比如說(shuō) 1999/03/07),則可以在標(biāo)記中插入 - 符號(hào),比如說(shuō) date +%-H:%-M:%-S 會(huì)把時(shí)分秒中無(wú)意義的 0 給去掉,像是原本的 08:09:04 會(huì)變?yōu)?8:9:4。另外,只有取得權(quán)限者(比如說(shuō) root)才能設(shè)定系統(tǒng)時(shí)間。
當(dāng)你以 root 身分更改了系統(tǒng)時(shí)間之后,請(qǐng)記得以 clock -w 來(lái)將系統(tǒng)時(shí)間寫入 CMOS 中,這樣下次重新開(kāi)機(jī)時(shí)系統(tǒng)時(shí)間才會(huì)持續(xù)抱持最新的正確值。
名稱:sleep
使用權(quán)限:所有使用者
使用方式:sleep [--help] [--version] number[smhd]
說(shuō)明:sleep 可以用來(lái)將目前動(dòng)作延遲一段時(shí)間
參數(shù)說(shuō)明:
--help:顯示輔助訊息
--version:顯示版本編號(hào)
number:時(shí)間長(zhǎng)度,后面可接 s,m,h 或 d
其中 s 為秒,m 為 分鐘,h 為小時(shí),d 為日數(shù)
例子:
顯示目前時(shí)間后延遲 1 分鐘,之后再次顯示時(shí)間:
date;sleep 1m;date
名稱: time
使用權(quán)限: 所有使用者
使用方式: time [options] COMMAND [arguments]
說(shuō)明:
time 指令的用途,在于量測(cè)特定指令執(zhí)行時(shí)所需消耗的時(shí)間及系統(tǒng)資源等資訊。例如 CPU 時(shí)間,記憶體,輸入輸出等等。需要特別注意的是,部分資訊在 Linux 上顯示不出來(lái)。這是因?yàn)樵?Linux 上部分資源的分配函式與 time 指令所預(yù)設(shè)的方式并不相同,以致于 time 指令無(wú)法取得這些資料。
把計(jì):
-o or --output=FILE
設(shè)定結(jié)果輸出檔。這個(gè)選項(xiàng)會(huì)將 time 的輸出寫入 所指定的檔案中。如果檔案已經(jīng)存在,系統(tǒng)將覆寫其內(nèi)容。
-a or --append
配合 -o 使用,會(huì)將結(jié)果寫到檔案的末端,而不會(huì)覆蓋掉原來(lái)的內(nèi)容。
-f FORMAT or --format=FORMAT
以 FORMAT 字串設(shè)定顯示方式。當(dāng)這個(gè)選項(xiàng)沒(méi)有被設(shè)定的時(shí)候,會(huì)用系統(tǒng)預(yù)設(shè)的格式。不過(guò)你可以用環(huán)境變數(shù) time 來(lái)設(shè)定這個(gè)格式,如此一來(lái)就不必每次登入系統(tǒng)都要設(shè)定一次。
一般設(shè)定上,你可以用
\t
表示跳欄,或者是用
\n
表示換行。每一項(xiàng)資料要用 % 做為前導(dǎo)。如果要在字串中使用百分比符號(hào),就用.(學(xué)過(guò)C語(yǔ)言的人大概會(huì)覺(jué)得很熟悉)
time 指令可以顯示的資源有四大項(xiàng),分別是:
Time resources
Memory resources
IO resources
Command info
詳細(xì)的內(nèi)容如下:
Time Resources
E 執(zhí)行指令所花費(fèi)的時(shí)間,格式是:[hour]:minute:second。請(qǐng)注意這個(gè)數(shù)字并不代表實(shí)際的 CPU 時(shí)間。
e 執(zhí)行指令所花費(fèi)的時(shí)間,單位是秒。請(qǐng)注意這個(gè)數(shù)字并不代表實(shí)際的 CPU 時(shí)間。
S 指令執(zhí)行時(shí)在核心模式(kernel mode)所花費(fèi)的時(shí)間,單位是秒。
U 指令執(zhí)行時(shí)在使用者模式(user mode)所花費(fèi)的時(shí)間,單位是秒。
P 執(zhí)行指令時(shí) CPU 的占用比例。其實(shí)這個(gè)數(shù)字就是核心模式加上使用者模式的 CPU 時(shí)間除以總時(shí)間。
Memory Resources
M 執(zhí)行時(shí)所占用的實(shí)體記憶體的最大值。單位是 KB
t 執(zhí)行時(shí)所占用的實(shí)體記憶體的平均值,單位是 KB
K 執(zhí)行程序所占用的記憶體總量(stack+data+text)的平均大小,單位是 KB
D 執(zhí)行程序的自有資料區(qū)(unshared data area)的平均大小,單位是 KB
p 執(zhí)行程序的自有堆疊(unshared stack)的平均大小,單位是 KB
X 執(zhí)行程序間共享內(nèi)容(shared text)的平均值,單位是 KB
Z 系統(tǒng)記憶體頁(yè)的大小,單位是 byte。對(duì)同一個(gè)系統(tǒng)來(lái)說(shuō)這是個(gè)常數(shù)
IO Resources
F 此程序的主要記憶體頁(yè)錯(cuò)誤發(fā)生次數(shù)。所謂的主要記憶體頁(yè)錯(cuò)誤是指某一記憶體頁(yè)已經(jīng)置換到置換檔(swap file)中,而且已經(jīng)分配給其他程序。此時(shí)該頁(yè)的內(nèi)容必須從置換檔里再讀出來(lái)。
R 此程序的次要記憶體頁(yè)錯(cuò)誤發(fā)生次數(shù)。所謂的次要記憶體頁(yè)錯(cuò)誤是指某一記憶體頁(yè)雖然已經(jīng)置換到置換檔中,但尚未分配給其他程序。此時(shí)該頁(yè)的內(nèi)容并未被破壞,不必從置換檔里讀出來(lái)
W 此程序被交換到置換檔的次數(shù)
c 此程序被強(qiáng)迫中斷(像是分配到的 CPU 時(shí)間耗盡)的次數(shù)
w 此程序自愿中斷(像是在等待某一個(gè) I/O 執(zhí)行完畢,像是磁碟讀取等等)的次數(shù)
I 此程序所輸入的檔案數(shù)
O 此程序所輸出的檔案數(shù)
r 此程序所收到的 Socket Message
s 此程序所送出的 Socket Message
k 此程序所收到的信號(hào) ( Signal )數(shù)量
Command Info
C 執(zhí)行時(shí)的參數(shù)以及指令名稱
x 指令的結(jié)束代碼 ( Exit Status )
-p or --portability
這個(gè)選項(xiàng)會(huì)自動(dòng)把顯示格式設(shè)定成為:
real %e
user %U
sys %S
這么做的目的是為了與 POSIX 規(guī)格相容。
-v or --verbose
這個(gè)選項(xiàng)會(huì)把所有程式中用到的資源通通列出來(lái),不但如一般英文語(yǔ)句,還有說(shuō)明。對(duì)不想花時(shí)間去熟習(xí)格式設(shè)定或是剛剛開(kāi)始接觸這個(gè)指令的人相當(dāng)有用。
范例:
利用下面的指令
time -v ps -aux
我們可以獲得執(zhí)行 ps -aux 的結(jié)果和所花費(fèi)的系統(tǒng)資源。如下面所列的資料:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
Command being timed: "ps -aux"
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46