1. 程式人生 > >作業管理【Ubuntu-shell】

作業管理【Ubuntu-shell】

作業管理:


    每一條shell命令的輸入--->一個作業
    cat -n /etc/hosts | more &
    作業,前臺互動執行,後臺無需互動加“&”
    --------------------------------------
    jobs  【選項】 【作業號】:檢視當前系統中後臺作業
        -l:列出詳細作業資訊
        -s:列出停止暫停狀態的作業
        -r:列出執行狀態的作業
    vim &
    top &
    vim &
    jobs -l
    #[3]+ 23803 停止 (tty 輸出)     vim  
#[作業號]+第一個放置在後臺 -第二個放在後臺 23803程序PID號 #vim 原本需在前臺互動,在後臺會暫停 ------------------------------------------------------------- fg 作業號:使作業在前臺執行 bg 作業號:使作業在後臺執行 ----------------------------------------------------- #!/bin/bash count=$1 while [ $count -gt 0 ] do count=$[ $count
- 1 ] sleep 0.001 done echo "process $$finish." #$$ 當前指令碼的程序PID號 #process.sh ------------------------------------------------- vim & top & source process.sh 10000 & jobs -l fg process.sh的作業號 jobs -l bg process.sh作業號 jobs -l --------------------------------------- 一次性作業 service atd status: at [選項】 【作業執行時間】:指定時間執行一次作業 -l
:列出佇列中的作業 -c:後加作業號引數,檢視指定作業號的內容 -f:後加所要執行的作業的檔案路徑 -d:刪除指定的作業號,引數作業號 at now +1min #wall linux廣播 at -l batch:在負載較大時,暫緩排程作業 (source process.sh 10000 &);(source process.sh 10000 &);(source process.sh 10000 &) cat /proc/loadavg batch #wall linux at -l ----------------------------------------- 週期性作業: 守護程序crond將週期性作業分類:全域性作業、個人使用者作業。 sudo service crond status cat /etc/crontab vim /etc/crontab #全域性作業執行計劃配置檔案:/etc/crontab #作業執行計劃模板:分鐘(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,星期天0或7) 【使用者名稱,如:root】 【執行的命令】 crontab 【選項】:維護個人使用者的週期性作業計劃檔案 -u:後加使用者名稱引數,指定配置使用者的cron作業執行計劃檔案 -e:編輯當前使用者作業執行計劃 -l:顯示當前使用者作業執行計劃 -r:刪除當前使用者的作業執行計劃 #個人使用者作業執行計劃配置檔案:/var/spool/cron/使用者名稱命名的cron檔案 ---------------------------------- 制定監控登入使用者人數的作業: #vim /etc/crontab---->:0-59 * * * * root 【命令】 su root #!/bin/bash #ip1,ip2,limit作業執行的引數,表示過濾的IP地址範圍和人數限制 ip1="\(192\.168\.126\.[1-9]\)" ip2="\(192\.168\.126\.[1-9][0-9]\{1,2\}\)" limit=0 strdate=`date "+%Y-%m-%d %H:%M:%S" ` count1=`who | grep $ip1 | wc -l` count2=`who | grep $ip2 | wc -l` count=$[ $count1 + $count2 ] if [ $count -gt $limit ] then echo "$strdate:current users count:$count,exceed limit:$limit" >> /var/log/statiplog fi #儲存olwatch.sh,/root/cron/olwatch.sh who #vim /etc/crontab------>0,15,30,45 * * * * root /root/cron/olwatch.sh service crond status chmod u+x /root/cron/olwatch.sh source /root/cron/olwatch.sh tail /var/log/statiplog date tail /var/log/statiplog --------------------------------------------- 制定定期備份資料的作業計劃: su root #!/bin/bash filelist=`cat ${HOME}/cron/baklist` # $HOME:/root strdate=`date "+%Y%m"` backupdir=${HOME}/backup${strdate} if [ ! -e $backupdir ] then mkdir $HOME/$backupdir fi echo "$strdate:backup start,the directory name is $backupdir" >> /var/log/baklog for filename in $filelist do if [ -e $filename ] then cp $filename "$backupdir/" 2 > /dev/null if [ $? -ne 0 ] # $?:表示最後整句之前執行的命令狀態是否等於0 # $?等於0表示上一個命令執行成功 否則執行出錯 # -ne:不等於 then echo "$strdate:copy for $filename failed" >> /var/log/baklog fi fi done #cronbackup.sh--->/root/cron/cronbackup.sh儲存 vim /root/cron/baklist #編輯加上:/root/crontab #編輯加上:/etc/hosts date vim /etc/crontab #--->編輯加上:10 11 3 * * root /root/cron/cronbackup.sh date ls -R /root cat /var/log/backlog #檢視備份日誌

補充: