AIX命令集錦六(自動執行作業命令)
6.1、控制前後臺作業命令
jobs 表示檢視當前被暫停的作業或在後臺執行的作業
fg %1 表示將後臺作業1轉到前臺執行
bg %1 表示讓處於暫停的任務1繼續在後臺執行
當一個程序或作業在前臺執行時,使用者可以使用ctrl+Z來使它暫停
kill %1 表示殺死作業1
nohug command[arg...][&] 表示執行一個不會被結束通話的命令
command [arg...] 表示執行的命令及相關的引數
& 表示在後臺執行
nohug find / -name myprg -print & 表示在後臺執行一個查詢作業
6.2、at 命令的使用
at [-c|-k|-s|-q queue][-m][-f file]{-t date|time[day][increament]}
-c 表示用csh來執行作業
-k 表示用ksh來執行作業
-s 表示用bsh(bourne shell)來執行作業
-q queue 表示將作業放在指定的佇列
-m 表示將命令執行成功後的資訊以郵件形式發給登陸的使用者
-f file 表示使用檔名為file的檔案代替標準輸入
-t date|time[day][increament] 表示指定作業的執行時間
date 的格式為:[[CC]YY]MMDDhhmm.[SS] CC表示世紀,YY表示年的後兩個數,MM表示月份,DD表示一個月中的天,即幾號,hh表示幾點,
mm表示多少分鐘,SS表示多少秒
time 的格式為數字+字尾(可以是am,pm,zulu)/數字,如at 0820 表示8點20分,at 0820 am 表示早上8點20分
day 的格式為:月份+日數字/一個星期的某一天(星期幾) 如 at 7 pm july 26
increament 格式為+n units 表示增加多少單位 如 at now +38 days
at time
command1
command2
....
ctrl +d 結束命令輸入
以上表示在某一時間所要執行的命令
也可以用管道的方式
echo command |at time
還可以指定執行檔案
at -f file time
顯示和刪除at作業
at -l [-o] [job....|-q queue]
-l 表示顯示已建立的作業
-o 表示按作業時間表的順序顯示已經建立的作業
job 表示作業號
-q queue 表示作業佇列名
at -n [user] 表示顯示佇列中的檔案數
at -r [-F] [-i] job....
at -r [-F] [-i] -u user
-r 表示刪除當前系統中已經存在的作業
-F 表示禁止事實刪除校驗
-i 表示採用互動式刪除
job 表示作業號
-u user 表示刪除user使用者的所有作業,只有root使用者具有這個許可權,其他使用者只能刪除自己的所有作業
也可以使用atrm命令來刪除指定的作業
atq [-c|-n][user....] 表示顯示當前使用者等待執行的作業佇列
-c 表示按照執行at命令的時間排序作業佇列
-n 表示只顯示佇列中的作業號
user 只顯示user使用者的作業
控制使用at/batch命令的檔案為:/var/adm/cron/at.allow和/var/adm/cron/at.deny
如果at.allow檔案存在,則只有該檔案裡包含的使用者具有執行at命令的權力
如果at.deny檔案存在,則凡是沒有出現在該檔案裡的使用者都具有執行at命令的權力
如果at.allow,at.deny檔案都不存在時,只有root使用者具有執行at命令的權力
6.3、batch命令
batch命令是呼叫at -b -m now命令,向系統提交一批作業,系統把提交的作業放在一個佇列中,在檢查系統負載並且在平均負載低於某一個
預先確定值之後開始執行作業
batch command1 command2 ... ctrl+d結束
6.4、crontab提供週期性的自動執行命令
檢查cron程序是否存在
ps -ef |grep cron
cron程序是一個由init程序啟動的後臺程序,如果沒有這個程序,則需要檢查/etc/inittab檔案中是否有以下記錄:
cron:23456789:respawn:/usr/sbin/cron
如果沒有,則用mkitab命令或用vi命令新增這條記錄,然後執行telinit -q來啟動cron程序,同時telinit -q也是重起cron程序的命令。
cron程序會去讀cron程序為每個使用者建立的crontab檔案,該檔案以使用者名稱命名,主要存放在/var/spool/cron/crontabs目錄下。
crontab 檔案記錄的格式為:
minute hour day_of_month month weekday command
minute 表示分鐘 ,範圍為0-59
hour 表示小時,範圍為0-23
day_of_month 表示一個月的多少號,範圍為1-31
month 表示月份 ,範圍為1-12
weekday 表示星期幾,範圍為0-6 ,0表示星期天
command 表示要執行的命令或shell指令碼
新增或修改cron作業
可以用vi命令直接修改/var/spool/cron/crontabs目錄下的檔案
crontab [-e|-l|-r|-v|file]
-e 表示編輯當前使用者的crontab檔案
-l 表示顯示使用者crontab檔案的內容
-r 表示刪除使用者的crontab 檔案
-v 表示顯示使用者cron作業提交的時間
file 表示將檔案file拷貝到/var/spool/cron/crontabs目錄下,並以當前使用者名稱命名或覆蓋掉原來存在使用者名稱檔案
/usr/adm/cron目錄下的檔案記錄著cron的日誌及使用權力的設定等