Unix at命令知識(shí)講解
與cron不同,Unix at命令用于在一定的時(shí)間后或在一定的時(shí)刻執(zhí)行設(shè)置好的命令。Unix at命令使用一個(gè)時(shí)間參數(shù)表示何時(shí)執(zhí)行命令,然后就從標(biāo)準(zhǔn)輸入中讀入要執(zhí)行的命令,此時(shí)就如同在shell下操作一樣輸入要執(zhí)行的命令,***使用^D 退出輸入命令的模式。
用戶不必?fù)?dān)心真正執(zhí)行命令時(shí)是否能夠找到正確的程序,at會(huì)將當(dāng)前shell的設(shè)置,包括環(huán)境變量,保留起來,以便在執(zhí)行命令時(shí)創(chuàng)造一個(gè)與啟動(dòng)at時(shí)完全相同的執(zhí)行環(huán)境。
- $ at 1:00am +2days
- wgetftp://ftp.cdrom.com/pub/FreeBSD/packages/All/netscape.tgz
- ^D
上面命令將在兩天后的凌晨1:00時(shí)啟動(dòng)進(jìn)程下載文件,當(dāng)然Unix at命令并不是十分精確,其執(zhí)行時(shí)間只是表示大概時(shí)間,可能與標(biāo)準(zhǔn)時(shí)間存在一兩分鐘的差異。at也支持各種復(fù)雜的時(shí)間表示方法,可以使用hhmm,hh:mm,或者加上am或pm結(jié)尾的12小時(shí)制方式。還可以使用年月日,規(guī)定程序運(yùn)行的日期:
- $ at 1:00am Mar 5
- echo Hello | mail root
- ^D
- Job 5 will be executed using /bin/sh
- $ atq
- Date Owner Queue Job#
- 01時(shí)00分00秒 00/03/05 root c 5
- $ atrm 5
用戶的at程序執(zhí)行結(jié)果也被系統(tǒng)郵寄給該用戶,用戶可以使用mail來查看程序的輸出結(jié)果或執(zhí)行錯(cuò)誤。當(dāng)用戶啟動(dòng)at命令之后,可以使用atq命令來查看自己還沒有執(zhí)行的Unix at命令,如果atq是由root執(zhí)行,則將列出系統(tǒng)中所有沒有執(zhí)行的Unix at命令。然后可以使用atrm命令根據(jù)atq輸出Job號(hào)來刪除at作業(yè)。
系統(tǒng)使用/var/at/at.allow和/var/at/at.deny文件來配置可以使用Unix at命令的用戶,和不可以使用at命令的用戶。其中at.allow的優(yōu)先權(quán)更高,如果存在at.allow,就只允許這個(gè)文件中列出的用戶使用at,而不考慮任何不在這個(gè)文件中列出的用戶。
因此可以使用一個(gè)空at.allow文件禁止所有用戶使用at。當(dāng)不存在at.allow文件的時(shí)候,那么凡不在at.deny文件中列出的用戶都可以使用at。
【編輯推薦】