<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

        電腦實(shí)用Linux系列教程

        時(shí)間: 懷健0 分享

        本系列教程將完整的講解整個(gè)Linu__相關(guān)的知識(shí),這是樓主學(xué)完兄弟連的Linu__教程之后重新對(duì)Linu__知識(shí)體系的整理。下面就讓小編帶你去看看電腦實(shí)用Linu__系列教程,希望能幫助到大家!

        整理了Linu__全套自學(xué)教程!

        為什么要用Linu__?

        Linu__極其強(qiáng)大,可以讓聰明人干任何他們想干的事情。

        Linu__ 從誕生之日起,它的工作方式就比 Windows 的先進(jìn)。

        Linu__ 屬于能勇敢面對(duì)符號(hào)的人。只有符號(hào)才能完全操縱計(jì)算機(jī)。

        歐美發(fā)達(dá)國(guó)家的傳統(tǒng)科研單位、黑客們從幾十年前就從事這些行當(dāng)了,使用Linu__/Uni__的習(xí)慣延續(xù)至今。

        鼠標(biāo)雖然是很好的工具,但是它的表達(dá)能力是有限的。

        你不可能光用鼠標(biāo)就讓電腦完全明白你的意思,它畢竟只有3個(gè)按鈕。所以我們雖然很喜歡鼠標(biāo),但是卻不能完全依賴它。

        熟練的Linu__黑客可以很快敲出一行命令,組合系統(tǒng)里面的各種工具來(lái)完成一個(gè)任務(wù)。很多工具本身就是一個(gè)黑客工具,壓根就沒(méi)考慮windows用戶們,在圖形界面下用起來(lái)反而非常麻煩。圖形界面的優(yōu)勢(shì)是數(shù)據(jù)展示方式多樣,劣勢(shì)是從使用者的角度看,它混淆了數(shù)據(jù)展示和數(shù)據(jù)本身。

        在Linu__大量工作抽象地看是這樣的:

        把一堆數(shù)據(jù)扔進(jìn)一個(gè)程序,得到另一堆數(shù)據(jù),再扔進(jìn)另一個(gè)程序……

        不用關(guān)心數(shù)據(jù)展示,它要的是數(shù)據(jù)本身。

        什么是 Windows 能干而 Linu__ 干不了的事情?

        “Windows 能干而 Linu__ 干不了的事情,那就是不需要干的事情。”

        幾乎所有科學(xué)計(jì)算程序,EDA 程序,高性能圖像處理程序都不是基于 Windows 的。

        消除學(xué)計(jì)算機(jī)很難的幻覺(jué),勇敢的拿起像 bash, FVWM, Te__, VIM, Emacs, Mutt ……這樣強(qiáng)大的程序,勇敢的面對(duì)符號(hào)。不要再埋怨“Linu__ 為什么不能像 Windows 那樣”,不要再浪費(fèi)時(shí)間試用這樣那樣的程序,不要再忙著升級(jí)。你需要理解 UNI__ 的工作方式,因?yàn)槟鞘谴蠖鄶?shù)科學(xué)家的工作方式。

        Linu__入門教程:Linu__開機(jī)啟動(dòng)過(guò)程淺析

        asic Input/Output System),完成一些系統(tǒng)的完整性檢查、搜索、

        加載并且執(zhí)行引導(dǎo)程序(boot loader), 它在軟盤,CD-ROM或者硬盤上尋找引導(dǎo)程序。你可以在

        系統(tǒng)啟動(dòng)時(shí)按下鍵盤(通常是F12或者F2,但是因系統(tǒng)而異)來(lái)修改啟動(dòng)順序

        一旦引導(dǎo)程序被檢測(cè)到并且加載到內(nèi)存,BIOS會(huì)將控制權(quán)移交給它

        MBR

        MBR表示主引導(dǎo)記錄(Master Boot Record)

        用于加載并執(zhí)行GRUB

        GRUB

        GRUB是多重引導(dǎo)管理器(GRand Unified Bootloader)

        執(zhí)行 /etc/grub.conf, 加載內(nèi)核鏡像

        vim /etc/grub.conf

        default=0

        timeout=5

        splashimage=(hd0,0)/grub/splash.__pm.gz

        hiddenmenu

        title CentOS 6 (2.6.32-504.el6.__86_64)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-504.el6.__86_64 ro root=/dev/mapper/vg_ddz-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_ddz/lv_root crashkernel=128M.UTF-8 rd_LVM_LV=vg_ddz/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

        initrd /initramfs-2.6.32-504.el6.__86_64.img

        Kernel

        執(zhí)行內(nèi)核首個(gè)進(jìn)程 /sbin/init, 進(jìn)程號(hào)為1, 是接下來(lái)所有其它進(jìn)程的父進(jìn)程

        initrd表示Initial RAM Disk

        initrd被內(nèi)核用作臨時(shí)的根目錄,直到內(nèi)核啟動(dòng)完成并且真正的根目錄掛載成功。

        它也包括一些編譯好的必要的驅(qū)動(dòng)程序,這些程序有助于它訪問(wèn)硬盤和其他硬件

        Init

        執(zhí)行 /etc/inittab, 來(lái)確定啟動(dòng)級(jí)別

        vim /etc/intttab

        # Default runlevel. The runlevels used are:

        # 0 - halt (Do NOT set initdefault to this)

        # 1 - Single user mode

        # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

        # 3 - Full multiuser mode (終端模式)

        # 4 - unused

        # 5 - __11(圖形用戶界面)

        # 6 - reboot (Do NOT set initdefault to this)

        #

        id:5:initdefault:執(zhí)行 /etc/rc.d/rc.sysinit, 來(lái)啟動(dòng)系統(tǒng)進(jìn)程,比如說(shuō)NetWork

        RunLevel

        執(zhí)行啟動(dòng)級(jí)別相對(duì)應(yīng)的一系列系統(tǒng)服務(wù)

        對(duì)應(yīng)啟動(dòng)級(jí)別的目錄如下

        ll /etc/rc.d/

        drw__r-__r-__. 2 root root 4096 11月 29 09:49 rc0.d

        drw__r-__r-__. 2 root root 4096 11月 29 09:49 rc1.d

        drw__r-__r-__. 2 root root 4096 3月 10 17:18 rc2.d

        drw__r-__r-__. 2 root root 4096 3月 10 17:18 rc3.d

        drw__r-__r-__. 2 root root 4096 3月 10 17:18 rc4.d

        drw__r-__r-__. 2 root root 4096 3月 10 17:18 rc5.d

        drw__r-__r-__. 2 root root 4096 11月 29 09:49 rc6.d

        RunDefinition

        最后執(zhí)行 /etc/rc.d/rc.local, 來(lái)運(yùn)行自定義的服務(wù)

        vim /etc/rc.d/rc.local

        1 #!/bin/sh

        2 #

        3 # This script will be e__ecuted __after__ all the other init scripts.

        4 # You can put your own initialization stuff in here if you don't

        5 # want to do the full Sys V style init stuff.

        6

        7 touch /var/lock/subsys/local

        8 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

        9 echo never > /sys/kernel/mm/transparent_hugepage/enabled

        10 fi

        11 if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

        12 echo never > /sys/kernel/mm/transparent_hugepage/defrag

        13 fi

        14

        15 /bin/bash /usr/local/apps/kylin/bin/kylin.sh start

        其中第15行為自定義啟動(dòng)腳本

        Final

        Linu__終端神器tmu__使用教程

        一、Tmu__ 是什么?

        1.1 會(huì)話與進(jìn)程

        命令行的典型使用方式是,打開一個(gè)終端窗口(terminal window,以下簡(jiǎn)稱"窗口"),在里面輸入命令。用戶與計(jì)算機(jī)的這種臨時(shí)的交互,稱為一次"會(huì)話"(session) 。

        會(huì)話的一個(gè)重要特點(diǎn)是,窗口與其中啟動(dòng)的進(jìn)程是連在一起的。打開窗口,會(huì)話開始;關(guān)閉窗口,會(huì)話結(jié)束,會(huì)話內(nèi)部的進(jìn)程也會(huì)隨之終止,不管有沒(méi)有運(yùn)行完。

        一個(gè)典型的例子就是,SSH 登錄遠(yuǎn)程計(jì)算機(jī),打開一個(gè)遠(yuǎn)程窗口執(zhí)行命令。這時(shí),網(wǎng)絡(luò)突然斷線,再次登錄的時(shí)候,是找不回上一次執(zhí)行的命令的。因?yàn)樯弦淮?SSH 會(huì)話已經(jīng)終止了,里面的進(jìn)程也隨之消失了。

        為了解決這個(gè)問(wèn)題,會(huì)話與窗口可以"解綁":窗口關(guān)閉時(shí),會(huì)話并不終止,而是繼續(xù)運(yùn)行,等到以后需要的時(shí)候,再讓會(huì)話"綁定"其他窗口。

        1.2 Tmu__ 的作用

        Tmu__ 就是會(huì)話與窗口的"解綁"工具,將它們徹底分離。

        (1)它允許在單個(gè)窗口中,同時(shí)訪問(wèn)多個(gè)會(huì)話。這對(duì)于同時(shí)運(yùn)行多個(gè)命令行程序很有用。

        (2) 它可以讓新窗口"接入"已經(jīng)存在的會(huì)話。

        (3)它允許每個(gè)會(huì)話有多個(gè)連接窗口,因此可以多人實(shí)時(shí)共享會(huì)話。

        (4)它還支持窗口任意的垂直和水平拆分。

        類似的終端復(fù)用器還有 GNU Screen。Tmu__ 與它功能相似,但是更易用,也更強(qiáng)大。

        二、基本用法

        2.1 安裝

        Tmu__ 一般需要自己安裝。

        # Ubuntu 或 Debian$ sudo apt-get install tmu__# CentOS 或 Fedora$ sudo yum install tmu__# Mac$ brew install tmu__

        2.2 啟動(dòng)與退出

        安裝完成后,鍵入tmu__命令,就進(jìn)入了 Tmu__ 窗口。

        $ tmu__

        上面命令會(huì)啟動(dòng) Tmu__ 窗口,底部有一個(gè)狀態(tài)欄。狀態(tài)欄的左側(cè)是窗口信息(編號(hào)和名稱),右側(cè)是系統(tǒng)信息。

        按下Ctrl+d或者顯式輸入e__it命令,就可以退出 Tmu__ 窗口。

        $ e__it

        2.3 前綴鍵

        Tmu__ 窗口有大量的快捷鍵。所有快捷鍵都要通過(guò)前綴鍵喚起。默認(rèn)的前綴鍵是Ctrl+b,即先按下Ctrl+b,快捷鍵才會(huì)生效。

        舉例來(lái)說(shuō),幫助命令的快捷鍵是Ctrl+b ?。它的用法是,在 Tmu__ 窗口中,先按下Ctrl+b,再按下?,就會(huì)顯示幫助信息。

        然后,按下 ESC 鍵或q鍵,就可以退出幫助。

        三、會(huì)話管理

        3.1 新建會(huì)話

        第一個(gè)啟動(dòng)的 Tmu__ 窗口,編號(hào)是0,第二個(gè)窗口的編號(hào)是1,以此類推。這些窗口對(duì)應(yīng)的會(huì)話,就是 0 號(hào)會(huì)話、1 號(hào)會(huì)話。

        使用編號(hào)區(qū)分會(huì)話,不太直觀,更好的方法是為會(huì)話起名。

        $ tmu__ new -s

        上面命令新建一個(gè)指定名稱的會(huì)話。

        3.2 分離會(huì)話

        在 Tmu__ 窗口中,按下Ctrl+b d或者輸入tmu__ detach命令,就會(huì)將當(dāng)前會(huì)話與窗口分離。

        $ tmu__ detach

        上面命令執(zhí)行后,就會(huì)退出當(dāng)前 Tmu__ 窗口,但是會(huì)話和里面的進(jìn)程仍然在后臺(tái)運(yùn)行。

        tmu__ ls命令可以查看當(dāng)前所有的 Tmu__ 會(huì)話。

        $ tmu__ ls# or$ tmu__ list-session

        3.3 接入會(huì)話

        tmu__ attach命令用于重新接入某個(gè)已存在的會(huì)話。

        # 使用會(huì)話編號(hào)$ tmu__ attach -t 0# 使用會(huì)話名稱$ tmu__ attach -t

        3.4 殺死會(huì)話

        tmu__ kill-session命令用于殺死某個(gè)會(huì)話。

        # 使用會(huì)話編號(hào)$ tmu__ kill-session -t 0# 使用會(huì)話名稱$ tmu__ kill-session -t

        3.5 切換會(huì)話

        tmu__ switch命令用于切換會(huì)話。

        # 使用會(huì)話編號(hào)$ tmu__ switch -t 0# 使用會(huì)話名稱$ tmu__ switch -t

        3.6 重命名會(huì)話

        tmu__ rename-session命令用于重命名會(huì)話。

        $ tmu__ rename-session -t 0

        上面命令將0號(hào)會(huì)話重命名。

        3.7 會(huì)話快捷鍵

        下面是一些會(huì)話相關(guān)的快捷鍵。

        Ctrl+b d:分離當(dāng)前會(huì)話。

        Ctrl+b s:列出所有會(huì)話。

        Ctrl+b $:重命名當(dāng)前會(huì)話。

        四、最簡(jiǎn)操作流程

        綜上所述,以下是 Tmu__ 的最簡(jiǎn)操作流程。

        新建會(huì)話tmu__ new -s my_session。

        在 Tmu__ 窗口運(yùn)行所需的程序。

        按下快捷鍵Ctrl+b d將會(huì)話分離。

        下次使用時(shí),重新連接到會(huì)話tmu__ attach-session -t my_session。

        五、窗格操作

        Tmu__ 可以將窗口分成多個(gè)窗格(pane),每個(gè)窗格運(yùn)行不同的命令。以下命令都是在 Tmu__ 窗口中執(zhí)行。

        5.1 劃分窗格

        tmu__ split-window命令用來(lái)劃分窗格。

        # 劃分上下兩個(gè)窗格$ tmu__ split-window# 劃分左右兩個(gè)窗格$ tmu__ split-window -h

        5.2 移動(dòng)光標(biāo)

        tmu__ select-pane命令用來(lái)移動(dòng)光標(biāo)位置。

        # 光標(biāo)切換到上方窗格$ tmu__ select-pane -U# 光標(biāo)切換到下方窗格$ tmu__ select-pane -D# 光標(biāo)切換到左邊窗格$ tmu__ select-pane -L# 光標(biāo)切換到右邊窗格$ tmu__ select-pane -R

        5.3 交換窗格位置

        tmu__ swap-pane命令用來(lái)交換窗格位置。

        # 當(dāng)前窗格上移$ tmu__ swap-pane -U# 當(dāng)前窗格下移$ tmu__ swap-pane -D

        5.4 窗格快捷鍵

        下面是一些窗格操作的快捷鍵。

        Ctrl+b %:劃分左右兩個(gè)窗格。

        Ctrl+b ":劃分上下兩個(gè)窗格。

        Ctrl+b :光標(biāo)切換到其他窗格。是指向要切換到的窗格的方向鍵,比如切換到下方窗格,就按方向鍵↓。

        Ctrl+b ;:光標(biāo)切換到上一個(gè)窗格。

        Ctrl+b o:光標(biāo)切換到下一個(gè)窗格。

        Ctrl+b {:當(dāng)前窗格左移。

        Ctrl+b }:當(dāng)前窗格右移。

        Ctrl+b Ctrl+o:當(dāng)前窗格上移。

        Ctrl+b Alt+o:當(dāng)前窗格下移。

        Ctrl+b __:關(guān)閉當(dāng)前窗格。

        Ctrl+b !:將當(dāng)前窗格拆分為一個(gè)獨(dú)立窗口。

        Ctrl+b z:當(dāng)前窗格全屏顯示,再使用一次會(huì)變回原來(lái)大小。

        Ctrl+b Ctrl+:按箭頭方向調(diào)整窗格大小。

        Ctrl+b q:顯示窗格編號(hào)。

        六、窗口管理

        除了將一個(gè)窗口劃分成多個(gè)窗格,Tmu__ 也允許新建多個(gè)窗口。

        6.1 新建窗口

        tmu__ new-window命令用來(lái)創(chuàng)建新窗口。

        $ tmu__ new-window# 新建一個(gè)指定名稱的窗口$ tmu__ new-window -n

        6.2 切換窗口

        tmu__ select-window命令用來(lái)切換窗口。

        # 切換到指定編號(hào)的窗口$ tmu__ select-window -t # 切換到指定名稱的窗口$ tmu__ select-window -t

        6.3 重命名窗口

        tmu__ rename-window命令用于為當(dāng)前窗口起名(或重命名)。

        $ tmu__ rename-window

        6.4 窗口快捷鍵

        下面是一些窗口操作的快捷鍵。

        Ctrl+b c:創(chuàng)建一個(gè)新窗口,狀態(tài)欄會(huì)顯示多個(gè)窗口的信息。

        Ctrl+b p:切換到上一個(gè)窗口(按照狀態(tài)欄上的順序)。

        Ctrl+b n:切換到下一個(gè)窗口。

        Ctrl+b :切換到指定編號(hào)的窗口,其中的是狀態(tài)欄上的窗口編號(hào)。

        Ctrl+b w:從列表中選擇窗口。

        Ctrl+b ,:窗口重命名。

        Linu__ 日志終極指南

        Linu__ 日志分析

        雖然提取的時(shí)候,不總是和你想的一樣簡(jiǎn)單,但是日志中有大量信息在等著你。在這部分,我們會(huì)講一些基本分析示例,你可以馬上拿來(lái)處理你的日志(只是搜索里面有什么)。我們還會(huì)講一些高級(jí)分析方法,開始的時(shí)候可能要花時(shí)間來(lái)做配置,但會(huì)為以后省很多時(shí)間。你可以把高級(jí)分析的示例用在待解析的數(shù)據(jù)上,比如生成摘要計(jì)數(shù),過(guò)濾字段值等。

        首先我們會(huì)演示,你應(yīng)該如何使用不同的工具在命令行進(jìn)行日志分析;然后,演示一個(gè)日志管理工具,它能夠讓大多數(shù)乏味的工作變得自動(dòng)化和高效。

        使用 Grep 搜索

        搜索文本是找到你想要的信息的最基本方法。搜索文本最常用的工具是 grep 。這個(gè)命令行工具,大多數(shù) Linu__ 發(fā)行版上都有,它支持你用正則表達(dá)式來(lái)搜索日志。正則表達(dá)式是一種用專門語(yǔ)言寫成的語(yǔ)句,可用來(lái)識(shí)別匹配文本。最簡(jiǎn)單的正則表達(dá)式是把你搜索的字符串加上引號(hào)。

        正則表達(dá)式

        這里有個(gè)例子,它在 Ubuntu 的認(rèn)證日志里搜索 “user hoover”:

        $ GREP "USER HOOVER" /VAR/LOG/AUTH.LOG

        ACCEPTED PASSWORD FOR HOOVER FROM 10.0.2.2 PORT 4792 SSH2

        PAM_UNI__(SSHD:SESSION): SESSION OPENED FOR USER HOOVER BY (UID=0)

        PAM_UNI__(SSHD:SESSION): SESSION CLOSED FOR USER HOOVER

        構(gòu)造精確的正則表達(dá)式很難。例如,假設(shè)我們搜索一個(gè)數(shù)字,比如端口號(hào)“4792” ,它也可以匹配時(shí)間戳,URLs和其他不需要的數(shù)據(jù)。在下面針對(duì) Ubuntu 的例子里,它匹配了 Apache 日志,但這并不是我們想要的。

        $ grep "4792" /var/log/auth.log

        Accepted password for hoover from 10.0.2.2 port 4792 ssh2

        74.91.21.46 - - [31/Mar/2015:19:44:32 +0000] "GET /scripts/samples/search?q=4972HTTP/1.0" 404 545 "-" "-”

        延伸搜索

        另一個(gè)有用的技巧是你可以用grep 做延伸搜索。它會(huì)輸出匹配項(xiàng)的前幾行和后幾行內(nèi)容。它可以幫你調(diào)試是什么導(dǎo)致了錯(cuò)誤或問(wèn)題。B 選項(xiàng)指定顯示匹配項(xiàng)前面的行數(shù),A 選項(xiàng)指定顯示匹配項(xiàng)后面的行數(shù)。如下所示,我們看到,當(dāng)有人以 admin 身份登陸失敗后, 反向映射也會(huì)失敗,這說(shuō)明他們可能沒(méi)有有效的域名。這很可疑!

        $ grep -B 3 -A 2 'Invalid user' /var/log/auth.log

        Apr 28 17:06:20 ip-172-31-11-241 sshd[12545]: reverse mapping checking getaddrinfo for 216-19-2-8.commspeed.net[216.19.2.8] failed - POSSIBLE BREAK-IN ATTEMPT!

        Apr 28 17:06:20 ip-172-31-11-241 sshd[12545]: Received disconnect from 216.19.2.8: 11: Bye Bye [preauth]

        Apr 28 17:06:20 ip-172-31-11-241 sshd[12547]: Invalid user; admin from 216.19.2.8

        Apr 28 17:06:20 ip-172-31-11-241 sshd[12547]: input_userauth_request: invalid user admin [preauth]

        Apr 28 17:06:20 ip-172-31-11-241 sshd[12547]: Received disconnect from 216.19.2.8: 11: Bye Bye [preauth]

        Tail命令

        你也可以將 tail 和 grep 搭配起來(lái)使用,以獲取文件最后幾行,或者跟蹤日志并實(shí)時(shí)打印。當(dāng)你在進(jìn)行交互式更改比如架設(shè)服務(wù)器或測(cè)試代碼更改的時(shí)候,非常有用。

        $ tail -f /var/log/auth.log | grep 'Invalid user'

        Apr 30 19:49:48 ip-172-31-11-241 sshd[6512]: Invalid user ubnt from 219.140.64.136

        Apr 30 19:49:49 ip-172-31-11-241 sshd[6514]: Invalid user; admin from 219.140.64.136

        全面介紹 grep 和正則表達(dá)式超出了本文的范圍,Ryan 的教程里有更深入的介紹。

        日志管理系統(tǒng)中有更高效更強(qiáng)大的搜索工具。它們通常對(duì)數(shù)據(jù)建立索引和并行查詢,因此你可以在數(shù)秒之內(nèi)快速查詢高達(dá) G 字節(jié)或 T 字節(jié)的日志。相比之下,用 grep ,可能要花幾分鐘,極端情況下會(huì)花費(fèi)數(shù)小時(shí)。日志管理系統(tǒng)也像 Lucene (譯注:一個(gè)開源的全文檢索引擎工具包)一樣使用查詢語(yǔ)言 ,它為數(shù)字,字段等的搜索提供了簡(jiǎn)單的語(yǔ)法。

        用Cut,AWK 和 Grok 解析日志

        命令行工具

        Linu__ 提供了幾種文本解析和分析的命令行工具。如果你想快速解析少量的數(shù)據(jù),它們很強(qiáng)大,但是處理大量數(shù)據(jù)要花很長(zhǎng)時(shí)間。

        Cut 命令

        cut 命令可以從帶分隔符的日志中解析字段。分隔符是類似等號(hào)或逗號(hào)的字符,用來(lái)劃分字段或鍵值對(duì)。

        比如說(shuō),我們想從這個(gè)日志中提取用戶名:

        pam_uni__(su:auth): authentication failure; logname=hoover uid=1000 euid=0 tty=/dev/pts/0 ruser=hoover rhost= user=root

        我們可以和下面一樣使用 cut 命令,獲取第八個(gè)等號(hào)后邊的文本。這是 Ubuntu 上的例子:

        $ grep "authentication failure" /var/log/auth.log | cut -d '=' -f 8

        root

        hoover

        root

        nagios

        nagios

        AWK 命令

        此外,你還可以用 awk,它擁有更強(qiáng)的解析字段的功能。它提供了一個(gè)腳本語(yǔ)言,讓你幾乎可以過(guò)濾出任何毫不相關(guān)的信息。

        舉個(gè)例子,假設(shè)我們?cè)?Ubuntu 上有如下的日志,我們想提取登陸失敗的用戶名:

        Mar 24 08:28:18 ip-172-31-11-241 sshd[32701]: input_userauth_request: invalid user guest [preauth]

        下面是使用 awk 的例子。首先,用一個(gè)正則表達(dá)式 /sshd.__invalid user/ 匹配 sshd 無(wú)效用戶的那一行。然后使用 { print } 打印第九個(gè)字段(默認(rèn)的分隔符是空格)。這樣就輸出了用戶名。

        $ awk '/sshd.__invalid user/ { print }' /var/log/auth.log

        guest

        admin

        info

        test

        ubnt

        你可以從 Awk 用戶指南中獲取更多關(guān)于如何使用正則表達(dá)式和打印字段的信息。

        日志管理系統(tǒng)

        日志管理系統(tǒng)讓解析更容易并且讓用戶可以快速分析大量日志文件。它們可以自動(dòng)解析標(biāo)準(zhǔn)日志格式,比如公共 Linu__ 日志或 web 服務(wù)日志。這會(huì)節(jié)省很多時(shí)間,因?yàn)槟阍诙ㄎ幌到y(tǒng)問(wèn)題的時(shí)候不用去想如何寫你的解析邏輯。

        這里你可以看一個(gè)來(lái)自 sshd 的日志信息,解析出了遠(yuǎn)程主機(jī)和用戶字段。這個(gè)截圖來(lái)自 Loggly,一個(gè)基于云計(jì)算的日志管理服務(wù)。

        對(duì)非標(biāo)準(zhǔn)格式的日志,你也可以自定義解析規(guī)則。最常用的工具是 Grok,它用通用正則表達(dá)式庫(kù)把純文本解析成 JSON 格式。這是 Grok 的配置示例,用來(lái)解析 Logstash 的內(nèi)核日志 :

        filter{

        grok {

        match => {"message" => "%{CISCOTIMESTAMP:timestamp} %{HOST:host} %{WORD:program}%{NOTSPACE} %{NOTSPACE}%{NUMBER:duration}%{NOTSPACE} %{GREEDYDATA:kernel_logs}"

        }

        }

        這是用 Grok 解析后輸出的結(jié)果:

        使用 Rsyslog 和 AWK 過(guò)濾

        過(guò)濾是搜索特定的字段,而不是全部文本。這讓你的日志分析更精確,因?yàn)樗鼤?huì)忽略其他不需要的日志信息。為了搜索一個(gè)字段值,你需要先解析你的日志或者至少有一種基于事件結(jié)構(gòu)的搜索方法。

        如何篩選出同一個(gè)應(yīng)用的日志

        通常,你只想看來(lái)自同一個(gè)應(yīng)用的日志。如果你的應(yīng)用總是把日志記錄在單個(gè)文件中,這樣很容易分析。如果你要從聚合或集中起來(lái)的日志里篩選出和某個(gè)程序相關(guān)的日志,會(huì)很復(fù)雜。這里有幾種解決的辦法。

        用 Rsyslog 服務(wù)解析和過(guò)濾日志。這個(gè)例子是將 sshd 應(yīng)用程序的日志寫入名為 sshd-messages 的文件中,然后丟棄事件,所以它不會(huì)在其他日志里重復(fù)出現(xiàn)。你可以把它加到你的 Rsyslog.conf 文件里試一下。

        :programname, isequal, “sshd” /var/log/sshd-messages

        &~

        使用命令行工具比如 awk ,提取特定字段的值,比如取 sshd 用戶名。這是 Ubuntu 上的例子。

        $ awk '/sshd.__invalid user/ { print }' /var/log/auth.log

        guestadmin

        info

        test

        ubnt

        使用日志管理系統(tǒng)自動(dòng)解析你的日志,然后點(diǎn)擊目標(biāo)應(yīng)用的名字進(jìn)行過(guò)濾。這個(gè)截圖顯示了 syslog 的各個(gè)字段,在一個(gè)叫做 Loggly 的日志管理服務(wù)中。如圖中文氏圖所示,當(dāng)前正在過(guò)濾 sshd 這個(gè)應(yīng)用。

        如何篩選出錯(cuò)誤信息

        最常見(jiàn)的事情是,人們想看到日志中的錯(cuò)誤。不巧的是,默認(rèn)的 syslog 配置不會(huì)直接輸出錯(cuò)誤的級(jí)別,這使得錯(cuò)誤信息很難被篩選。

        這里有兩種方案來(lái)解決這個(gè)問(wèn)題。首先,你可以修改 rsyslog 配置,讓它輸出級(jí)別到日志文件中,使得錯(cuò)誤信息容易被讀取和搜索。在你的 Rsyslog 配置中你可以加一個(gè)pri-te__t 模版,如下所示:

        " : %timegenerated%,%HOSTNAME%,%syslogtag%,%msg%n"

        這個(gè)例子的輸出如下,可以看到級(jí)別是 err。

        : Mar 11 18:18:00,hoover-VirtualBo__,su[5026]:, pam_authenticate: Authentication failure

        你可以用 awk 或grep 篩選出錯(cuò)誤信息。這是 Ubuntu 下的例子,我們加了開始結(jié)束標(biāo)志 . 和 > ,這樣它就只匹配這個(gè)字段。

        $ grep '.err>' /var/log/auth.log

        : Mar 11 18:18:00,hoover-VirtualBo__,su[5026]:, pam_authenticate: Authentication failure

        第二種選擇是使用日志管理系統(tǒng)。好的日志管理系統(tǒng)會(huì)自動(dòng)解析 syslog 消息并提取出級(jí)別字段。只需點(diǎn)一下,就會(huì)按指定的級(jí)別篩選日志。

        這是 Loggly 的截圖。顯示了 syslog 各個(gè)字段, Error 級(jí)別高亮顯示了,說(shuō)明正在按級(jí)別 Error 過(guò)濾

        電腦實(shí)用Linu__系列教程相關(guān)文章

        Linu__教程基礎(chǔ)知識(shí)大全

        Linu__基本命令知識(shí)教程

        windows安裝教程入門基本知識(shí)

        Linu__環(huán)境下使用git提交更新代碼教程

        linu__ 路由器限速實(shí)現(xiàn)方法教程

        電腦實(shí)用Linux系列教程

        本系列教程將完整的講解整個(gè)Linu__相關(guān)的知識(shí),這是樓主學(xué)完兄弟連的Linu__教程之后重新對(duì)Linu__知識(shí)體系的整理。下面就讓小編帶你去看看電腦實(shí)用Linu__系列教程,希望能幫助到大家!整理了
        推薦度:
        點(diǎn)擊下載文檔文檔為doc格式

        精選文章

        830008
        主站蜘蛛池模板: 亚洲午夜爱爱香蕉片| 日本亚洲中文字幕不卡| 风韵丰满熟妇啪啪区老老熟妇 | 久久综合五月丁香久久激情| 老湿机香蕉久久久久久| 色777狠狠狠综合| 国产精品免费视频网站| 国产日韩精品欧美一区灰| 综合区一区二区三区狠狠| 精品无人区一码二码三码| 国产仑乱无码内谢| 在线观看AV永久免费| 一二三四中文字幕日韩乱码| 少妇尿尿一区二区在线免费| 国产一区二区在线观看粉嫩| 日韩国产精品区一区二区| 国产精品亚洲一区二区z| 久久中文字幕一区二区| 日韩亚洲国产综合高清| 亚洲欧美日韩另类| 亚洲一区二区约美女探花| 99精品国产中文字幕| 亚洲av无码牛牛影视在线二区| 欧美成人a在线网站| 婷婷色综合视频在线观看| 亚洲国产成人久久综合三区| 国产AV国片精品有毛| 亚洲另类无码一区二区三区| 亚洲熟妇自偷自拍另欧美| 日韩中文字幕av有码| 免费无遮挡毛片中文字幕| 夜夜添狠狠添高潮出水| 欧美拍拍视频免费大全| 精品三级在线| 久热久热免费在线观视频| 亚洲第一极品精品无码久久| 欧美精品v| 饥渴的熟妇张开腿呻吟视频| 粉嫩在线一区二区三区视频| 久久精品国产亚洲精品2020| 黄色三级亚洲男人的天堂|