Linux進程和計劃任務

                                                      Linux進程和計劃任務

本章內容:

進程相關概念

進程及系統相關工具

計劃任務

 

進程概念:

內核功能:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等;

process:在內存中運行的程序被稱為進程。

task structLinux內核存儲進程信息的數據結構格式

task list:多個任務的task list組成的鏈表

進程的創建:

      centos5、6中的第一個進程為:init

       進程:都有其父進程創建,COW(寫時復制)

 

進程優先級:

系統優先級:數字越小,優先級越高

     0–139:(centos4,5

     0–99 :(centos6

實時優先級:99–0:數值越大優先級越高

nice值:-20–19:對應的系統優先級100-13999

 

進程內存:

     page frame:頁框,用存儲頁面數據,存儲page 4k

     LRU:近期最少使用算法,釋放內存

     MMU:內存管理單元,負責轉換線性和物理地址

 

Linux內核:搶占式多任務

進程類型:

     守護進程:daemon,在系統引導過程中啟動的進程,和終端無關的進程。

     前臺進程:跟終端相關,通過終端啟動的進程。

     注意:兩者可以相互轉化。

 

進程狀態:

運行態:running

就緒態:ready

睡眠態:

     可中斷:interruptable

     不可中斷:uninterruptable

停止態:stopped,暫停于內存中,但不會被調度,除非手動啟動。

僵死態:zombie,結束進程,父進程結束前,子進程不關閉。

 

系統管理工具:

進程的分類:

  CPU-boundCPU密集型,非交互。

  IO-BoundIO密集型,交互。

 

Linux系統狀態的查看及管理工具:

     pstree、ps、pidof、pgreptop、htopglance、pmapvmstat、dstat、kill、pkill、job、bg、fg、nohup

 

pstree命令:查看進程樹

      pstree  [options]

               -p:可以列出對應進程的PID號;

               -u:列出進程對應的用戶名;

               -a:列出完整的命令信息;

 

ps命令:查看靜態的進程統計信息

     ps [options]

         a:顯示當前終端下的所有進程信息;

         u:使用以用戶為主的格式輸出進程信息;

         x:顯示當前用戶在所有終端下的進程信息;

        -e:顯示系統內的所有進程信息;

        -l:使用長格式顯示進程信息;

        -f:使用完整的格式顯示進程信息;

   執行ps aux”命令后,將以列表的形式輸出所有進程信息,其中各字段的含義如下

        USER:啟動該進程的用戶賬號的名稱。

        PID:該進程在系統中的PID號,在當前系統時唯一的。

        TTY:表明該進程在哪個終端上運行,“?”表示未知或不需要的終端。

        STAT:顯示了進程當前的狀態,如S(休眠)、R(運行)、Z(僵死)、<(高優先級)、N(低優先級)、s(父進程)、+(前臺進程)l(多線程進程)T(停止狀態)D(不可中斷休眠)對于僵死狀態的進程應該手動終止掉。

        START:啟動該進程的時間。

        TIME:該進程占用CPU的時間。

        COMMAND:啟動該進程的命令的名稱。

        %CPUCPU占用百分比。

        %MEM:內存占用百分比。

        VSZ:占用虛擬內存(swap空間)的大小。

        RSS:占用常駐內存(物理內存)的大小。

 

搜索進程:

      pgrep命令:查詢特定進程信息的專用工具。

         pgrep   [options]  patter

                   -u:真正運行命令生效的用戶

                   -U:真正發起運行命令的用戶

                   -t:與指定終端相關的進程

                   -l:顯示進程名

                   -a:顯示完整格式的進程名

                   -p:顯示父進程為此指定的進程的進程列表

        示例:

         [root@centos6 proc]# pgrep -l  bash

         4128 bash

         6761 bash

         6780 bash

         [root@centos6 proc]#

 

pidof命令:查詢指定進程的pid號。

示例:

  [root@centos6 proc]# pidof bash

  6780 6761 4128

  [root@centos6 proc]#

 

uptime命令:查看系統的平均負載

      顯示當前系統時間,系統已經啟動多久,當前登錄系統的人數,系統的平均負載(12、10分鐘的平均負載,一般不會超過1

  系統平均負載:

      指在特定時間間隔內運行隊列中的平均進程數。

      如果每個cpu內核的當前活動進程數不大于3的話,那么系統性能良好。如果每個CPU內核的任務大于5,那么這臺機器的性能有嚴重的問題。

      如果Linux主機是1個雙內核CPU的話,當load average6的時候說明機器已經被充分使用了。  

      示例:

        [root@centos6 Desktop]# uptime

        10:49:46 up 25 min,  2 users,  load average: 0.14, 0.10, 0.18

        [root@centos6 Desktop]#      (平均負載)

 

top命令:進程管理工具,有許多內置的命令

      選項:

          -d#:指定刷新時間間隔,默認為3

          -b:以批次方式顯示

          -n#:顯示多少批次

 

      排序:

        P:以占據的cpu百分比,%CPU進行排序;

        M:占據內存百分比,%MEM進行排序;

        T:累計占據CPU的時長進行排序;

       

       首部信息顯示:

        uptime信息 :按l 鍵可以“屏蔽/顯示” uptime平均負載

        tasksCPU信息:按 t 鍵可以“屏蔽/顯示”tasksCPU信息

        CPU分別顯示:按 1(數字)可以把所有CPU單個顯示

        memory信息:按 m 鍵可以“屏蔽/顯示”內存和swap的信息

退出top命令:q

修改刷新時間間隔: s鍵 后跟上要間隔的刷新時間(以秒為單位)

終止指定的進程:k

保存文件:W

 

欄位信息簡介:

    us:用戶空間

    sy:內核空間

    ni:調整nice時間

    id:空閑

    wa:等待IO時間

    hi:硬中斷

    si:軟中斷

    st:被虛擬機偷走的時間

 

htop命令:進程管理工具,需從Fedora-EPEL源安裝

     選項:

        -d#:指定延遲時間

        -u:僅顯示指定用戶的進程

        -s:以指定字段進行排序

 

vmstat命令:顯示虛擬內存信息

     vmstat  [options]  [delay[count]]

              -s:顯示內存的統計數據

示例: 每秒刷新一次,顯示5

 [root@centos6 Desktop]# vmstat 1 5

procs ———–memory———- —swap– —–io—- –system– —–cpu—–

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 1  0     0 270616  70172 278980    0    0    12     1   47   66  0  0 99  1  

 0  0     0 270536  70172 279012    0    0     0     0  109  131  1  0 100  0  0

 0  0     0 270536  70172 279012    0    0     0     0  110  148  1  1 99  0  0

 0  0     0 270536  70172 279012    0    0     0     0   93  118  1  0 100  0  0

 0  0     0 270536  70172 279012    0    0     0     0   96  133  0  0 100  0

[root@centos6 Desktop]#

 

pmap命令:查看進程的內存映射

pmap  [options] pid

         -x:顯示詳細格式的信息

另一種查看方式是:

 #cat  /proc/PID/maps

示例:

[root@centos6 Desktop]# pgrep bash

3290

[root@centos6 Desktop]# pmap -x 3290

3290:   /bin/bash

Address           Kbytes     RSS   Dirty Mode   Mapping

0000000000400000     852     536       0 r-x–  bash

00000000006d4000      36      36      36 rw—  bash

00000000006dd000      24      24      24 rw—    [ anon ]

00000000008dc000      36       8       0 rw—  bash

0000000001f5a000     264     248     248 rw—    [ anon ]

0000003f24400000     128     112       0 r-x–  ld-2.12.so

…………………………………………………………………………….

[root@centos6 Desktop]#

 

glances命令:系統監控工具 (需要從EPEL源安裝)

     示例:

     [root@centos6 Desktop]# glances

     C/S模式下運行glances 可以實現遠程監控其他主機,適用于局域網內;

     服務器端設置:

        glances  -s  -B IPADDR

                -s:指明是服務器端

                -B:綁定要監控的服務器的IP地址

     客戶端模式:

        glances  -c  IPADDR

                -c:指明是客戶端

           IPADDR:指明要監控的服務端地址

 

     示例:

      測試環境說明:

       centos 7 為服務器端,IP地址為:192.168.3.10

       centos 6 為客戶機端,IP地址為:192.168.3.2

 

      服務器模式配置:

        [root@centos7 Desktop]# glances  -s  -B 192.168.3.10

     

      客戶機端模式端,監控centos7

        [root@centos7 Desktop]# glances  -c   192.168.3.10

 

dstat命令:系統資源統計

       dstat [-afv] [options..] [delay [count]]

                 -c:顯示CPU相關的信息

                 -d:顯示disk相關的信息

                 -g:顯示page相關的統計數據

                 -m:顯示memory相關的統計數據

                 -n:顯示network相關的統計信息

                 -p:顯示process相關的統計數據

                 -r:顯示IO請求相關的統計數據

                 -s:顯示swapped相關的統計數據

           –top-cpu:顯示最占cpu的進程

           –top-io:顯示最占用io的進程

           –top-mem:顯示最占用內存的進程

           –top-latency:顯示延遲最大的進程

 

     示例:每隔1秒統計一次,一共統計5

     [root@centos6 Desktop]# dstat 1 5

     —-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–

     usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw

     0   0  99   1   0   0|  25k 1837B|   0     0 |   0     0 |  93   132

     0   0 100   0   0   0|   0     0 |   0     0 |   0     0 |  87   123

     1   1  99   0   0   0|   0     0 |   0     0 |   0     0 | 127   143

     2   1  97   0   0   0|   0     0 |   0     0 |   0     0 | 179   183

     1   2  97   0   0   0|   0     0 |   0     0 |   0     0 | 149   148

     1   1  98   0   0   0|   0     0 |   0     0 |   0     0 | 112   124

[root@centos6 Desktop]#

 

killkillall、pkill命令:終止進程

   kill命令向進程發送控制信號,以實現對進程的管理

   顯示當前系統可用信號:kill -l

       常用信號:

        1SIGHUP:無需關閉進程而讓其重讀配置文件;

        2SIGINT:終止正在運行的進程,相當于ctrl+c;

        9SIGKILL:殺死正在運行的進程;

       15SIGTERM:終止正在運行的進程;

       18SIGCONT:繼續運行

       19SIGSTOP:后臺休眠

      指定信號的方法:

         1)信號數字識別:1,2,3….

         2)信號的完整名稱:SIGHUP

         3)信號的簡寫名稱:HUP

 

 kill命令:

     使用kill命令終止進程時,需要使用進程的PID號作為參數;無特定選項信號時,kill命令將給該進程發送終止信號并正常退出,若該進程已經無法響應終止信號,則可以結合“-9”選項強行殺死進程。

       示例:

       [root@centos6 ~]# pgrep  -l  vim

       5031 vim

       [root@centos6 ~]# kill 5031

       [root@centos6 ~]# pgrep  -l  vim

       [root@centos6 ~]#

 

killall命令:

     使用killall命令可以通過進程名來殺死進程,當需要結束系統中多個相同名稱的進程時,使用killall命令將更加方便,效率更高。killall命令也同樣可以結合“-9”選項以強制結束進程。

     示例:

     [root@centos6 ~]# vim f1

 

     [1]+  Stopped                 vim f1    //crtl+z掛起至后臺

     [root@centos6 ~]# pgrep -l vim

     5297 vim

     [root@centos6 ~]# killall -9 vim

     [root@centos6 ~]# pgrep -l vim

     [1]+  Killed                  vim f1    //已殺死vim進程

     [root@centos6 ~]#

 

pkill命令:

使用pkill命令可以根據進程的名稱、運行該進程的用戶、進程所在的終端等多種屬性終止特定的進程,如“-U”指定用戶,“-t”指定終端等。

示例:

 1)終止用戶zheng所在的終端:使用選項“-t

    [root@centos6 ~]# who

zheng    tty2         2016-09-17 19:28

root     tty1         2016-09-17 10:25 (:0)

root     pts/1        2016-09-17 17:36 (:0.0)

[root@centos6 ~]# pkill -9 -t tty2

[root@centos6 ~]# who

root     tty1         2016-09-17 10:25 (:0)

root     pts/1        2016-09-17 17:36 (:0.0)

[root@centos6 ~]#

2)終止用戶zheng所在的終端:使用選項“-U

   [root@centos6 ~]# who

   zheng    tty2         2016-09-17 19:32

   root     tty1         2016-09-17 10:25 (:0)

   root     pts/1        2016-09-17 17:36 (:0.0)

   [root@centos6 ~]# pkill -9 -U zheng

   [root@centos6 ~]# who

   root     tty1         2016-09-17 10:25 (:0)

   root     pts/1        2016-09-17 17:36 (:0.0)

   [root@centos6 ~]#

 

Linux的作業控制:

     前臺作業:通過終端啟動,且啟動后一直占據終端;

     后臺作業:可以通過終端啟動,但啟動后即轉入后臺運行

     如何讓作業運行與后臺?

     1)運行中的作業可以執行:ctrl+z

     2)未啟動的作業可以執行:#command &

      以上此類后臺作業雖然被送往后臺運行,但其依然與終端相關,退出終端,將關閉后臺作業,如果希望送往后臺后剝離與終端的關系可以執行以下命令:

      #nohup command &     #screen;command

      示例: 使用nohup命令剝離后臺命令ping與終端的關系,即使斷網也會繼續運行。

       [root@centos6 ~]# nohup ping 127.0.0.1 &

       [1] 5886

       [root@centos6 ~]# nohup: ignoring input and appending output to `nohup.out'

 

     jobs命令:查看所有與終端相關的后臺運行的作業

         jobs  -l  :查看所有后臺運行的作業;

       示例:

         [root@centos6 ~]# vim f1 &

         [1] 5905

         [root@centos6 ~]# jobs -l  //查看所有后臺運行的作業;

         [1]+  5905 Stopped (tty output)    vim f1

         [root@centos6 ~]#

 

     fg命令:可以將后臺的進程任務重新調入終端前臺執行;只需指定后臺任務對應的順序編號,可以通過jobs命令獲取。

        示例:將后臺的vim f1調到前臺工作

         [root@centos6 ~]# jobs -l

         [1]+  5905 Stopped (tty output)    vim f1

         [root@centos6 ~]# fg 1

 

     bg命令:讓送往后臺的作業在后臺繼續運行;

         示例:

         [root@centos6 ~]# ping 127.0.0.1

         PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

         64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.046 ms

         64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.041 ms

         64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.054 ms

         ^Z                    //ctrl+z 調到后臺

         [2]+  Stopped                 ping 127.0.0.1

         [root@centos6 ~]# bg 2   //把在后臺停止的ping在后臺運行起來

         [2]+ ping 127.0.0.1 &

         64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.127 ms

         [root@centos6 ~]# 64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.055 ms

 

并行運行:

      讓兩個或多個腳本同時運行,需寫腳本的絕對路徑,后必須加&”符。

      示例:

      編寫3個循環腳本

        [root@centos6 testdir]# cat f1.sh f2.sh f2.sh

        #!/bin/bash

        while true;do

        echo "f1.sh"

        sleep 1

        done

        #!/bin/bash

        while true;do

        echo "f2.sh"

        sleep 1

        done

        #!/bin/bash

        while true;do

        echo "f2.sh"

        sleep 1

        done

        [root@centos6 testdir]#

   第一種并行運行腳本方法:

        [root@centos6 testdir]# (/testdir/f1.sh&);(/testdir/f2.sh&);(/testdir/f3.sh&)

   

   第二種并行運行腳本方法:

        [root@centos6 testdir]{ /testdir/f1.sh&/testdir/f2.sh&/testdirf3.sh& }

   

   第三種并行運行腳本方法:

        編寫一個腳本,把f1f2、f3腳本放進去。

        [root@centos6 testdir]# cat all.sh

        #!/bin/bash

        #

        /testdir/f1.sh&

        /testdir/f2.sh&

        /testdir/f3.sh&

        [root@centos6 testdir

      執行all.sh腳本并行處理f1f2、f3腳本

        [root@centos6 testdir]# source all.sh

 

nice命令:調整進程優先級

       示例:

        [root@centos6 testdir]# nice -n -10 ping 127.0.0.1

       查看設定的優先級:

        [root@centos6 testdir]# ps axo  pid,comm,ni

 

renice命令:重新設定進程優先級

        renice   [-n]  priority   pid

 

計劃任務管理:

     Linux系統中,通過atdcrond這兩個系統服務實現一次性、周期性計劃任務的功能,并分別通過atcrontab命令進行計劃任務的設定。

     使用at命令設置的計劃任務只在指定的時間點執行一次,有一個前提是,對應的系統服務at必須運行。

     使用crontab命令設置的計劃任務可以按預設的周期重復執行,可以大大減輕重復設置系統管理任務的操作。有一個前提是,對應的系統服務crond必須運行。

 

     at 命令:

      at  [options]  TIME

        常用選項:

            -q:隊列

            -l:查看當前系統中設置的at計劃任務列表,相當于atq

            -d:刪除指定任務編號的作業,相當于atrm

            -c:查看具體的作業任務。

            -f:從指定的腳本文件中讀取任務

            -m:強制at發郵件表示執行完畢

        TIME

            HH:MM  [yyyy-mm-dd]

            noon  midnight  teattime

            tomorrow

            now+#{minutes  hours  days weeks}

 

            ctrl+d:提交一次性計劃任務

 

at一次性計劃任務:

 

          執行方式:

             1)交互式  2)輸入重定向  3at  -f  scriptsfile

          依賴atd服務,需要啟動才能實現at一次性計劃任務

          at隊列存放在/var/spool/at目錄中

          /etc/at.{allow ,deny}控制用戶是否能執行at任務

            白名單:/etc/at.allow默認不存在,只有該文件中的用戶才能執行at命令

            黑名單:/etc/at.deny拒絕該文件中的用戶執行at命令,而沒有在at.deny文件中的用戶可以執行at命令。

           如果兩個文件都不存在,則只有root可以執行at命令。

 

       at命令:執行的一次性計劃任務是存放在/var/spool/at目錄下的

           示例:

             [root@centos6 at]# at 15:22

             at> wall hello

             at> <EOT>

             job 6 at 2016-09-18 15:22

             [root@centos6 at]# pwd

             /var/spool/at

             [root@centos6 at]# ls

             a000060176e77a  spool

             [root@centos6 at]#

        at命令的“-f”選項:從指定的腳本文件中讀取任務。

           示例:

            [root@centos7 testdir]# cat sum100.sh

            #!/bin/bash

            echo "==============================="

            i=1

            sum=0

           while [ $i -le 100  ];do

           let  sum=$sum+$i

           let i++

           done

           echo "1 to 100 sum :$sum"

           echo "=============================="

           unset i

           unset sum

           [root@centos7 testdir]#

           [root@centos7 ~]# at 3:45 -f /testdir/sum100.sh

           job 3 at Sun Sep 18 03:45:00 2016

           [root@centos7 ~]#

        注: at的執行結果需去mail郵件中查看。

 

     注意:作業執行命令的結果中的“標準輸出”和“錯誤輸出”以郵件通知給相關用戶。

    

       示例:

          [root@centos7 ~]# at 3:05

          at> wall da jia hao

          at> echo at test

          at> <EOT>                   //ctrl+d提交計劃任務

          job 2 at Sun Sep 18 03:05:00 2016

          [root@centos7 ~]# at -l

          2 Sun Sep 18 03:05:00 2016 a root

          [root@centos7 ~]#

          Broadcast message from root@centos7 (Sun Sep 18 03:05:01 2016):

 

          da jia hao

 

        You have new mail in /var/mail/root //echo執行的結果是標準輸出,所以有郵件通知

        [root@centos7 ~]#

 

crontab周期性計劃任務

        使用crontab命令設置的計劃任務可以按預設的周期重復執行,可以大大減輕重復設置系統管理任務的操作。有一個前提是,對應的系統服務crond必須運行。

               centos7systemctl   status  crond

               centos6service    crond    status

        周期性計劃任務提交給crond,到指定的時間會自動運行。

          系統crond任務:系統維護計劃任務

                /etc/crontab

          用戶crond任務:

                crontab命令

          日志:/var/log/cron

     用戶自行定義的cron任務將被保存在目錄“/var/spool/cron”中,文件名與對應的用戶賬號同名。

 

用戶crontab周期性計劃任務

crontab命令定義,每個用戶都有專用的cron任務文件:

    /var/spool/cron/USERNAME

 

crontab命令語法:

    crontab  [options]

             -u:僅root可以運行,指定用戶管理cron任務;

             -e:編輯計劃任務;

             -r:刪除計劃任務;

             -l:顯示計劃任務列表;

             -i:同“-r”一同使用,已交互模式移除指定的計劃任務;

 

  crontab計劃任務時間表示法:

       1)特定值:給定時間點有效取值范圍內的值

       2*:表示“每”

       3)離散值:#,##  例如:1,3,5,9

       4)連續值:#-#  例如:2-6

       5)在指定的時間范圍上,定義步長 /#:#即為步長,例如:*/5

 

  時間格式:

        @reboot    run once after reboot

        @yearly     0 0 1 1 *

        @annually   0 0 1 1 *

        @monthly   0 0 1 * *

        @weekly    0 0 * * 0

        @daily      0 0 * * *

        @hourly    0 * * * *

 

sleep命令:

        sleep  NUMBER [SUFFIX]…

             SUFFIX

                s:秒,默認

               m:分

               h:小時

               d:天

        usleep:微秒;

注意:

運行結果的標準輸出和錯誤輸出以郵件通知給相關的用戶。

    command  >  /dev/null

    command  &> /dev/null

對于cron任務來說,%有特殊的用途;如果在命令中要使用%,則需要轉義,不過,如果把%放置在單引號中,也可以不用轉義。

                

系統cron任務:/etc/crontab

   示例:晚上910分以zheng用戶執行一個echo hello

      1 SHELL=/bin/bash

      2 PATH=/sbin:/bin:/usr/sbin:/usr/bin

      3 MAILTO=root

      4 HOME=/

      5

      6 # For details see man 4 crontabs

      7

      8 # Example of job definition:

      9 # .—————- minute (0 – 59)

     10 # |  .————- hour (0 – 23)

     11 # |  |  .———- day of month (1 – 31)

     12 # |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr …

     13 # |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

     14 # |  |  |  |  |

     15 # *  *  *  *  * user-name command to be executed

        10  9  *  *  *   zheng   /bin/echo   “hello”

 

用戶cron任務:crontab  -e

    [root@centos6 ~]# crontab -e

    22 20  * * *  /bin/echo "hello"

0  0   * * *  /sbin/shutdown  -h now

 

示例:執行用戶計劃任務,讓其到點休眠1分鐘,在執行wall

     [root@centos6 ~]# crontab -e

     16  21 * * * /bin/sleep 1m;/usr/bin/wall "hello"

 

 

  

      

 

 

 

 

       

 

    

     

 

     

 

 

 

 

 

 

 

 

 

 

 

 

原創文章,作者:zhengyibo,如若轉載,請注明出處:http://www.www58058.com/48353

(0)
zhengyibozhengyibo
上一篇 2016-09-21
下一篇 2016-09-21

相關推薦

  • Linux網絡屬性管理

    Linux網絡屬性管理 linux的網絡配置方法有多種,而且隨發行版及版本而略微不同。我目前的測試環境為CentOS6和CentOS7。 常用的網絡配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。 首先:命令方法介紹 一、命令簡介 ifconfig:是個比較傳統的命令,可以配置網絡接口的啟用及關閉,IP地址等…

    系統運維 2016-05-29
  • HTTP詳解(1)-工作原理

    1. HTTP簡介          HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用于從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸…

    Linux干貨 2015-04-04
  • 關于shell腳本編程基礎第三篇

                          關于shell腳本編程基礎第三篇   本章主要內容:循環的特殊用法;while;for;select 循環與菜單       &nbsp…

    系統運維 2016-08-21
  • 關于 shell腳本編程第一篇

                                                   shell腳本編程(1) …

    系統運維 2016-08-15
  • 優云Automation:實現IT服務彈性伸縮的利器

    隨著互聯網業務快速持續增長,IT資源使用量按需變化成為常態,這就要求信息部門能快速響應資源使用的變化要求,對運維提出不小挑戰。比如電商、在線教育等企業經常推出一些秒殺、搶紅包活動,在特定時間段對資源的利用處于高峰期,之后基本處于空閑。 幾年前,我們從申請采購到應用部署上線都只能人工操作,需要提前幾個月開始規劃。如今通過云平臺能很好實現資源按需動態管理,運維人…

    系統運維 2017-03-15
  • 優云老王(三)談埋點:人生處處有埋點

    說到埋點,的確是用戶最感興趣的話題之一,優云Web產品在內測階段便收到了用戶的各種反饋,反復問我無碼埋點是怎么做的。在此我專門與大家聊聊埋點以及各種實現方案的利弊。 1、埋點的來歷 先說下埋點的來歷,其實在互聯網沒流行起來之前,埋點并不是用來分析用戶行為的,技術人員為了解決某些問題,就在代碼里面加入了些行為邏輯代碼,如果用戶使用產品的過程中出了問題,就生成一…

    2016-09-19
欧美性久久久久