crontab、at和nohup
cron 系統排程程序。可以使用它在每天的非高峰負荷時間段執行作業,或在一周或一月
中的不同時段執行。
at at命令。使用它在乙個特定的時間執行一些特殊的作業,或在晚一些的非負荷高峰時
間段或高峰負荷時間段執行。
& 使用它在後台執行乙個占用時間不長的程序。
nohup 使用它在後台執行乙個命令,即使在使用者退出時也不受影響。
cron和crontab
可以在cron.allow和cron.deny 設定使用者使用crontab
crontab的域: 分<>時<>日<>月<>周<>命令
crontab 命令選項
crontab [-u user] -e -l -r
-u 使用者名稱
-e 編輯
-l 檢視
-r 刪除
crontab -l > $home/mycron 來進行備份,一旦誤刪了crontab,可以使用crontab 來恢復,filename就是在home中的副本檔案,也可以直接拷貝到/var/spool/cron/
at
和cron一樣 at命令一樣可以在at.allow和at.deny中設定使用者使用該命令
at的基本形式:
at [-f script] [-m -l -r] [time] [date]
-f script 所要提交的命令或指令碼
-l 列出當前所有等待執行的作業,atq一樣的作用
-r 清除作業,需要提供相應的作業id號,在unix變體中或許使用到atrm
-m 完成後傳送郵件
time at命令的時間格式比較靈活,可以使用hh/hh.mm/h.m,甚至可以使用am和pm
date 日期模式 可以使用today tomorrow
舉個例子:
at 21:00
find / -name "passwd" -print
這裡的eot 就相當於ctrl-d
下面的命令日期at命令是可以接受的:
at 6.45am may12
at 11.10pm
at now + 1 hour
at 9am tomorrow
at now + 10 minutes
如果希望at提交乙個指令碼的話:
還可以使用echo 來向at提交命令
echo find /etc -name "passwd" -print | at now + 1 mintue
at -l 來顯示所有作業
當被提交的作業時候,at會拷貝到/var/spool/at 來準備執行
at -r [job no]
atrm [job no]
&符號
後台執行
command > out.file 2>&1 &
比如:find /etc -name "srm.conf" -print > find.dt 2>&1 &
ps -ef | grep 程序名
kill -signal 程序號 殺死程序
nohup 命令提交
nohup command > myout.file 2>&1 &
指令碼提交
nohup ./quarterend.sh > qur.out 2>&1 &
laihuadongcto
後台執行shell指令碼
執行方式 nohup sh export data.sh 20150102 20150102.log 2 1 1 29531 其中 0 1 2分別代表如下含義 0 stdin standard input 1 stdout standard output 2 stderr standard erro...
Shell 指令碼後台執行
目錄用法 說明sh test.sh 將指令碼放在後台執行 常用方法 crtl c 停止執行當前任務或指令碼 crtl z 暫停執行當前任務或指令碼 bg 把當前任務或指令碼放到後台執行,此處可以理解為background fg 把當前指令碼或任務放到前台執行,如果有多個任務,可以使用fg加任務編號調...
怎麼在後台執行shell指令碼
執行指令碼test.sh test.sh中斷指令碼test.sh ctrl c在1的基礎上將執行中的test.sh,切換到後台並暫停 ctrl z執行ctrl z後,test.sh在後台是暫停狀態 stopped 使用命令 bg number讓其在後台開始執行 number 是使用jobs命令查到的...