Linux 系統日誌、screen 工具

1、Linux 系統日誌

Linux 系統日誌、screen 工具

日誌重要嗎?必須的,沒有日誌我們怎麼知道系統狀況?沒有日誌如何排查一個trouble?日誌記錄了系統每天發生的各種各樣的事情,你可以通過它來檢查錯誤發生的原因,或者受到***時***者留下的痕跡。日誌主要的功能有:審計和監測,還可以實時的監測系統狀態,監測和追蹤侵入者等等。
我們常查看的日誌文件爲/var/log/message, 它是核心系統日誌文件,包含了系統啓動時的引導消息,以及系統運行時的其他狀態消息。IO錯誤、網絡錯誤和其他系統錯誤都會記錄到這個文件中。另外其他信息,比如某個人的身份切換爲root以及用戶自定義安裝的軟件(apache)的日誌也會在這裏列出。

輸入命令 ls /var/log/messages,回車,見下圖,
Linux 系統日誌、screen 工具
接着使用命令 less !$ 來查看一下,見下圖,
Linux 系統日誌、screen 工具
可以看到日誌裏面記錄了各種各樣的信息。按字母“q”即可退出。通常,/var/log/messages 是在做故障診斷時首先要查看的文件。那你肯定會說了,這麼多日誌都記錄到這個文件中,那如果服務器上有很多服務豈不是這個文件很快就會寫的很大。現在來看一下日誌文件的大小,輸入命令 du -sh !$,回車,見下圖,
Linux 系統日誌、screen 工具
3.5M,比想象中小太多了。這是因爲系統有一個日誌輪詢的機制,每星期切換一個日誌,變成message.xxxxxxxx, message.xxxxxxxx, ... messages.xxxxxxxx 連同 messages 一共有5個這樣的日誌文件。這裏的xxxxxxxx就是按照日期的格式生成的文件,這是通過 logrotate 工具的控制來實現的,它的配置文件是 /etc/logrotate.conf 如果沒有特殊需求請不要修改這個配置文件。
接着來看一下配置文件 /etc/logrotate.conf,使用 cat 命令查看,見下圖,
Linux 系統日誌、screen 工具
上面寫着,可以使用命令 man logrotate,查看更詳細的信息。接下來就顯示每隔星期切割1次,總共切割4次,相當於保留1個月的意思,切割完就會創建一個新的文件,後綴用日期,文件可以壓縮。還有一個配置文件 /etc/logrotate.d,後面還有每個月切割一次的文件 /var/log/wtmp 和 /var/log/btmp ,都只保存一個文件,創建的時候還設置了文件權限、屬主和屬組。
接下來,輸入命令 ls /etc/logrotate.d 查看文件,回車,見下圖,
Linux 系統日誌、screen 工具
/var/log/messages是由syslogd這個守護進程產生的,如果停掉這個服務則系統不會產生/var/log/messages,所以這個服務不要停。syslogd服務的配置文件爲/etc/syslog.conf這個文件定義了日誌的級別,具體詳細的東西不再闡述,因爲若沒有特殊需求是不需要修改這個配置文件的,請使用 man syslog.conf 獲得更多關於它的信息。

關於配置文件,就這麼多內容,想要詳細瞭解的,可以參考 https://my.oschina.net/u/2000675/blog/908189

除了關注/var/log/messages外,還應該多關注一下 dmesg 這個命令,它可以顯示系統的啓動信息,如果你的某個硬件有問題(比如說網卡)用這個命令也是可以看到的。輸入 dmesg,直接回車,見下圖,
Linux 系統日誌、screen 工具
內容非常多,僅截取最後一屏。顯示的是系統硬件相關的日誌,它保存在內存中,可以使用命令 dmesg -c 清空掉,見下圖,
Linux 系統日誌、screen 工具
這只是屏幕清空,系統重啓之後還會有的。接着查看日誌文件,ls /var/log/dmesg,見下圖,
Linux 系統日誌、screen 工具
這個一個系統啓動時的日誌,和 /var/log/messages 這個文件毫無聯繫。輸入 less /var/log/dmesg,回車,見下圖,
Linux 系統日誌、screen 工具
內容太多,還是截取一屏。
接着講解 last 命令,直接輸入 last ,回車,見下圖,
Linux 系統日誌、screen 工具
last 命令用來查看登錄 Linux 歷史信息,從左至右依次爲賬戶名稱、登錄終端、登錄客戶端ip、登錄日期及時長。last 命令輸出的信息實際上是讀取了二進制日誌文件 /var/log/wtmp, 只是這個文件不能直接使用 cat, vim, head, tail 等工具查看。
與 last 對應的命令是 lastb,直接回車,見下圖,
Linux 系統日誌、screen 工具
用來查看登錄失敗的用戶,對應的二進制日誌文件是 /var/log/btmp,與 /var/log/wtmp 類似。
另外一個和登陸信息有關的日誌文件爲/var/log/secure, 該日誌文件記錄驗證和授權等方面的信息,比如ssh登陸系統成功或者失敗,都會把相關信息記錄在這個日誌裏。輸入命令 less /var/log/secure,回車,見下圖,
Linux 系統日誌、screen 工具
以後在日常的管理工作中要養成多看日誌的習慣,尤其是一些應用軟件的日誌,比如apache, mysql, php等常用的軟件,看它們的日誌(錯誤日誌)可以幫助我們排查問題以及監控它們的運行狀況是否良好。

2、screen 工具

有時候,我們也許會有這樣的需求,要執行一個命令或者腳本,但是需要幾個小時甚至幾天。這就要考慮一個問題,就是中途斷網或出現其他意外情況,執行的任務中斷了怎麼辦?你可以把命令或者腳本丟到後臺運行,不過也不保險。下面就介紹兩種方法來避免這樣的問題發生。

Linux 系統日誌、screen 工具

使用 nohup

把任務丟到後臺去,再加一個日誌的輸出,雖然沒有輸出到屏幕上,輸出到日誌裏也是可以的。使用命令 nohup command &,其中 command 是日誌的意思。 直接加一個 ‘&’ 雖然丟到後臺了,但是當退出該終端時很有可能這個腳本也會退出的,而在前面加上 nohup 就沒有問題了,nohup 的作用就是不掛斷地運行命令。
這個命令雖然可以保證運行不中斷,但是不能實時查看任務輸出的東西。

使用 screen

screen 工具可以填補 nohup 工具的缺點。簡單來說,screen 是一個可以在多個進程之間多路複用一個物理終端的窗口管理器。screen 中有會話的概念,用戶可以在一個 screen 會話中創建多個 screen 窗口,在每一個 screen 窗口中就像操作一個真實的 SSH 連接窗口那樣。下面介紹screen的一個簡單應用。
需要先安裝一下,輸入命令 yum install -y screen,回車,見下圖,
Linux 系統日誌、screen 工具
安裝完成之後,直接輸入 screen ,回車,見下圖,
Linux 系統日誌、screen 工具
這就進入了一個 screen 窗口,就相當於虛擬終端。使用 w 命令是看不出來的 。現在運行一個命令 vmstat 1,這是一個不斷運行的命令,回車,見下圖,
Linux 系統日誌、screen 工具
使用命令 ctrl a + d,可以把這個 screen 窗口丟到後臺去。ctrl a 是同時按住的,d 後面再按。然後就回到原來的界面,見下圖,
Linux 系統日誌、screen 工具
第一個紅色框框的內容顯示了剛纔後臺運行的 screen 窗口,ID 是3847。回到剛纔的 screen 窗口,使用命令 screen -r 3847,回車即可,見下圖,
Linux 系統日誌、screen 工具
停止命令使用 ctrl + c,不想要這個 screen 窗口,輸入 exit 回車或按住 ctrl+d,即可終止。
Linux 系統日誌、screen 工具
然後下圖中就可以看到 screen is terminating,意思是 screen 終止。接着使用命令 screen -ls 查看,就看不到 screen 運行了。
Linux 系統日誌、screen 工具
也可以同時使用多個 screen 窗口,具體操作見下圖,
Linux 系統日誌、screen 工具
輸入 screen 回車,然後再使用 ctrl a + d 退出 screen,連續操作3次,創建3個 screen 窗口。使用 screen -ls 也可以看到3個窗口。進入其中一個,使用命令 screen -r ID號就可以。這邊還有一個問題,3個窗口的除了 ID 不一樣,其他信息都是一樣,如果記混了怎麼辦呢?有一個參數 S(大寫)可以解決這個問題,重命名 screen 窗口。輸入命令 screen -S "test_screen",回車,見下圖,
Linux 系統日誌、screen 工具
直接進入第一個 screen 窗口,輸入內容 sleep 100,不回車,爲了等會區分。然後使用 ctrl a + d 退出來。接着使用命令 screen -ls 查看,見下圖,
Linux 系統日誌、screen 工具
可以看到一個重命名爲 test_screen 的 screen 窗口,之後進入的時候,screen -r 後面可以加 4050,也可以加 test_screen,回車進入後,就能看到剛纔輸入的 sleep 100。這邊不再圖片顯示了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章