一、cron和crontab
1.crontab
下面是crontab的格式:
分< >時< >日< >月< >星期< >要執行的命令,其中< >表示空格。
crontab檔案的乙個條目是從左邊讀起的,第一列是分,最後一列是要執行的命令,它位於星期的後面。在這些域中,可以用橫槓-來表示乙個時間範圍,例如你希望星期一至星期五執行某個作業,那麼可以在星期域使用1- 5來表示。還可以在這些域中使用逗號「,」,例如你希望星期一和星期四執行某個作業,只需要使用1 , 4來表示。可以用星號*來表示連續的時間段。如果你對某個表示時間的域沒有特別的限定,也應該在該域填入*。該檔案的每乙個條目必須含有5個時間域,而且每個域之間要用空格分隔。該檔案中所有的注釋行要在行首用#來表示。
例子:
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \; #示每週
六、週日的1:10執行乙個find命令
當使用crontab執行shell指令碼時,要由使用者來給出指令碼的絕對路徑,設定相應的環境變數。記住,既然是使用者向cron提交了這些作業,就要向cron提供所需的全部環境。不要假定cron知道所需要的特殊環境,它其實並不知道。所以你要保證在shell指令碼中提供所有必要的路徑和環境變數,除了一些自動設定的全域性變數。
建立乙個名為cron檔案(例如jungecron),輸入crontab**
$ crontab jungecron #同時,新建立檔案的乙個副本已經被放在/var/spool/cron目錄中,檔名就是使用者名稱
檢視crontab檔案:crontab -l
修改crontab檔案:crontab -e(要新增editor變數:編輯$home目錄下的.profile檔案,新增editor=vi; export editor)
刪除crontab檔案:crontab -r
二、at命令
1.根使用者可以通過/etc目錄下的at.allow和at.deny檔案來控制哪些使用者可以使用at命令,哪些使用者不行。
2.at命令的基本形式為:
at [-f script] [-m -l -r] [time] [date]
其中,
-f script 是所要提交的指令碼或命令。
-l 列出當前所有等待執行的作業。atq命令具有相同的作用。
-r 清除作業。為了清除某個作業,還要提供相應的作業標識(id);有些unix變體只接受atrm作為清除命令。
-m 作業完成後給使用者發郵件。
time at命令的時間格式非常靈活;可以是h、hh.hhmm、hh:mm或h:m,其中h和m分別是小時和分鐘。還可以使用a.m.或p.m.。
date 日期格式可以是月份數或日期數,而且at命令還能夠識別諸如today、tomorrow這樣的詞。
3.使用at命令提交命令或指令碼
1)如果你想提交若干行的命令,可以在at命令後面跟上日期/時間並回車。然後就進入了at命令提示符,這時只需逐條輸入相應的命令,然後按『』退出。例子:
$at 21:10
at> find / -name "passwd" -print
at>
2)提交指令碼
3)使用echo命令向at命令提交作業
echo find /etc -name "passwd" -print | at now +1 minute
4)檢視作業:at -l
5)清除作業:atrm [job no]或者 at -r [job no]
三、&命令
執行乙個find命令,查詢名為「srm.conf的檔案,並把所有標準輸出和錯誤輸出重定向到乙個叫作find.dt的檔案中:
find /etc -name "srm.conf" -print >find.dt 2>&1 &
檢視程序:
ps x | grep 28305 或者 ps -ef |grep 28305
四、nohup命令
如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶之後繼續執行相應的程序。nohup就是不掛起的意思(nohang up)。
該命令的一般形式為:
nohup command &
linux命令後台執行
有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...
linux命令後台執行
有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...
linux命令後台執行
有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...