Linux的systemd特性及awk使用

一、簡述systemd的新特性及unit常見類型分析,可以實現編譯安裝的如nginx\apache實現經過systemd來管理
Systemd的新特性:nginx

系統引導時實現服務並行啓動;
        按需激活進程;
        系統狀態快照;
        基於依賴關係定義服務控制邏輯;

核心概念:unitexpress

unit由其相關的配置文件進行標識、識別和配置;文件中主要包含了系統服務、監聽的socket、保存的快照以及其餘與init相關的信息;
        /usr/lib/system
        /run/systemd/system
        /etc/systemd/system

unit的常見類型:apache

Service unit:文件擴展名爲.service,用於定義系統服務;
Target unit:文件擴展爲.target,用於模擬實現「運行級別」;
Device unit: .device,用於定義內核識別的設備;
Mount unit: .mount,定義文件系統掛載點;
Socket unit: .socket,用於標識進程間通訊用到的socket文件;
Snapshot unit: .snapshot, 管理系統快照;
Swap unit: .swap, 用於標識swap設備;
Automount unit: .automount,文件系統自動點設備;
Path unit: .path, 用於定義文件系統中的一文件或目錄;

關鍵特性:數組

基於socket的激活機制;socket與程序分離;
基於bus的激活機制;
基於device的激活機制;
基於Path的激活機制;
系統快照:保存各unit的當前狀態信息於持久存儲設備中;
向後兼容sysv init腳本;
        /etc/init.d/

不兼容:socket

systemctl的命令是固定不變的;
非有systemctl啓動的服務,systemctl沒法與之通訊;

nginx安裝: ide

[root@silasszl ~]# wget http://nginx.org/download/nginx-1.13.12.tar.gz
[root@silasszl ~]# tar -vzxf nginx-1.13.12.tar.gz -C /usr/local
[root@silasszl ~]# cd /usr/local/nginx-1.13.12/
[root@silasszl nginx-1.13.12]# ./configure
[root@silasszl nginx-1.13.12]# make && make install

配置nginx:
Linux的systemd特性及awk使用函數

nginx啓動、關閉、中止和狀態查看:工具

[root@silasszl ~]# systemctl start nginx.service
[root@silasszl ~]# systemctl restart nginx.service
[root@silasszl ~]# systemctl stop nginx.service
[root@silasszl ~]# systemctl status nginx.service

Linux的systemd特性及awk使用


二、描述awk命令用法及示例(至少3例)
文本三劍客之awk
awk是一種報表生成器,與sed,grep都是文本處理工具,能夠將編輯的文本進行格式化排版處理後以更加美觀的形式輸出。命令行

基本用法:awk [options] 'program' FILE ...
                                    program: PATTERN{ACTION STATEMENTS}
語句之間用分號分隔
選項:
-F:指明輸入時用到的字段分隔符;
-v var=value: 自定義變量

print3d

print item1, item2, ...
要點:
(1) 逗號分隔符;
(2) 輸出的各item能夠字符串,也能夠是數值;當前記錄的字段、變量或awk的表達式;
(3) 如省略item,至關於print $0;

變量

1) 內建變量
      FS:input field seperator,默認爲空白字符;
      OFS:output field seperator,默認爲空白字符;
      RS:input record seperator,輸入時的換行符;
      ORS:output record seperator,輸出時的換行符;
      NF:number of field,字段數量
            {print NF}, {print $NF}
      NR:number of record, 行數;
      FNR:各文件分別計數;行數;
      FILENAME:當前文件名;
      ARGC:命令行參數的個數;
      ARGV:數組,保存的是命令行所給定的各參數;

2)自定義變量
        (1) -v var=value
            變量名區分字符大小寫;
        (2) 在program中直接定義

示例:
Linux的systemd特性及awk使用
Linux的systemd特性及awk使用
printf命令

格式化輸出:printf FORMAT, item1, item2, ...
            (1) FORMAT必須給出; 
    (2) 不會自動換行,須要顯式給出換行控制符,\n
    (3) FORMAT中須要分別爲後面的每一個item指定一個格式化符號;
格式符:
    %c: 顯示字符的ASCII碼;
      %d, %i: 顯示十進制整數;
                %e, %E: 科學計數法數值顯示;
                %f:顯示爲浮點數;
                %g, %G:以科學計數法或浮點形式顯示數值;
                %s:顯示字符串;
                %u:無符號整數;
                %%: 顯示%自身;
修飾符:
                #[.#]:第一個數字控制顯示的寬度;第二個#表示小數點後的精度;
                -: 左對齊
                +:顯示數值的符號

操做符

算術操做符:x+y,x-y,x*y,x/y,x^y,x%y
    -x
    +x: 轉換爲數值;
字符串操做符:沒有符號的操做符,字符串鏈接
賦值操做符:=,+=,-=,*=,/=,%=,^=,++,--
比較操做符:>,>=,<,<=,!=,==
模式匹配符:
    ~:是否匹配
    !~:是否不匹配
邏輯操做符:&&,||,!
函數調用:
    function_name(argu1, argu2, ...)
條件表達式:
    selector?if-true-expression:if-false-expression

PATTERN

(1) empty:空模式,匹配每一行;
(2) /regular expression/:僅處理可以被此處的模式匹配到的行;
(3) relational expression: 關係表達式;結果有「真」有「假」;結果爲「真」纔會被處理;
         真:結果爲非0值,非空字符串;
(4) line ranges:行範圍,
   startline,endline:/pat1/,/pat2/
注意: 不支持直接給出數字的格式
        ~]# awk -F: '(NR>=2&&NR<=10){print $1}' /etc/passwd
(5) BEGIN/END模式
   BEGIN{}: 僅在開始處理文件中的文本以前執行一次;
   END{}:僅在文本處理完成以後執行一次;

示例:
Linux的systemd特性及awk使用
Linux的systemd特性及awk使用


三、描述awk函數示例(至少3例)
awk函數:

函數分爲內建函數和用戶自定義函數

內建函數:

數值處理:
        rand():返回0和1之間一個隨機數;
字符串處理:
        length([s]):返回指定的字符串長度;
        sub(r,s[,t]):基於r所表示的模式來匹配字符串的t中的內容,將其第一次被匹配到內容替換爲s所表示的字符串
        gsub(r,s[,t]):基於r所表示的模式來匹配字符串t中的內容,將其全部被匹配到的內容均替換爲s所表示的字符串;
        split(r,s[,t]):以r爲分隔符去切割字符串s,並將切割後的結果保存至s表示的數組中;
注意:awk的數組下標從1開始編號,而非0.
        #awk ‘{split($0,userinfo,」:」」);print userinfo[1]}’/etc/passwd
        substr(s,i[,n]):從s所表示的字符串中取子串,取法:從i表示的位置開始,取n個 
        符;時間類函數:systime(),取當前系統實際按,結果形式爲時間戳;

用戶自定義函數:

function f_name(p,q) {
        …
}

示例:
Linux的systemd特性及awk使用
Linux的systemd特性及awk使用

相關文章
相關標籤/搜索