1. 程式人生 > >shell學習:Linux系統日誌的相關命令、檔案和管理工具

shell學習:Linux系統日誌的相關命令、檔案和管理工具

日誌檔案是Linux系統維必不可少的部分,日誌檔案會隨著時間的推移變的越來越大,需要使用一種被稱為輪替的技術來限制日誌的體積,一旦超過了限制的大小,就對它的內容進行抽取,同時將日誌檔案中的舊條目儲存到歸檔檔案中,以便日後的查閱。

logrotate命令

logrotate命令是一個日誌檔案管理工具,能夠將日誌檔案的大小限制在給定的範圍之內,各種應用程式會將資訊新增到日誌檔案中,最新新增的資訊總是儲存在日誌檔案的尾部,logrotate根據配置檔案掃描特定的日誌檔案。

logrotate的配置目錄位於/etc/logrotate.d/,這個目錄中已經包含了還能多其他程式的日誌檔案配置,開啟就可以發現。

logrotate命令示例

【示例】建立一個日誌檔案配置:

cat /etc/logrotate.d/test
/var/log/test.log {
    missingok
    notifempty
    size 30k
    commpress
    weekly
    rotate 5
    create 0600 root root
}

以上是全部配置,其中/var/log/test.log是指定了日誌檔案路徑,舊的日誌檔案歸檔之後也放在同一個目錄下,引數解釋:

  • missingok如果日誌檔案丟失,則忽略,然後返回(不對日誌檔案進行輪替)。
  • notifempty僅當源日誌檔案非空時才會對其進行輪替。
  • size 30k限制實施輪替的日誌檔案的大小,可以用1M表示1MB。
  • commpress允許用gzip對較舊的日誌進行壓縮。
  • weekly指定進行輪替的時間間隔,可以是weekly、yearly、daily。
  • rotate 5需要儲存的就日誌歸檔數量,這裡是5,歸檔後的檔名將會是test.log.1.gz、test.log.2.gz....
  • create 0600 root root指定所要建立的歸檔檔案的模式、使用者、使用者組。

logrotate命令引數

引數 功能
compress 通過gzip壓縮轉儲以後的日誌。
nocompress 不需要壓縮時,用這個引數。
copytruncate 用於還在開啟中的日誌檔案,把當前日誌備份並截斷。
nocopytruncate 備份日誌檔案但是不截斷。
create mode owner group 轉儲檔案,使用指定的檔案模式建立新的日誌檔案。
nocreate 不建立新的日誌檔案。
delaycompress和compress 一起使用時,轉儲的日誌檔案到下一次轉儲時才壓縮。
nodelaycompress 覆蓋delaycompress選項,轉儲同時壓縮。
errors address 專儲時的錯誤資訊傳送到指定的Email地址。
ifempty 即使是空檔案也轉儲,這個是logrotate的預設選項。
notifempty 如果是空檔案的話,不轉儲。
mail address 把轉儲的日誌檔案傳送到指定的E-mail地址。
nomail 轉儲時不傳送日誌檔案。
olddir directory 轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在同一個檔案系統。
noolddir 轉儲後的日誌檔案和當前日誌檔案放在同一個目錄下。
prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行。
postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行。
daily 指定轉儲週期為每天。
weekly 指定轉儲週期為每週。
monthly 指定轉儲週期為每月。
rotate count 指定日誌檔案刪除之前轉儲的次數,0指沒有備份,5指保留5個備份。
tabootext [+] list 讓logrotate 不轉儲指定副檔名的檔案,預設的副檔名是:.rpm-orig, .rpmsave, v, 和 ~。
size size功能 當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB (sizek)或者MB (sizem)。

用syslog記錄日誌

日誌檔案有助於幫助我們推斷系統出現的故障,因此在系統管理中要善於分析日誌,在編寫指令碼、程式時,應當將程式執行過程記錄在日誌檔案中。syslog日誌配置檔案位置:/etc/syslog.conf

日誌的級別

日誌的級別分為七級,從緊急程度由高到底:

  • emerg系統已經不可用,級別為緊急。
  • alert警報,需要立即處理和解決。
  • crit既將發生,得需要預防,事件就要發生。
  • warnig警告。
  • err錯誤資訊,普通的錯誤資訊。
  • notice提醒資訊,很重要的資訊。
  • info通知資訊,屬於一般資訊。
  • debug這是除錯類資訊。

系統常見重要日誌

  • /var/log/boot.log系統引導事件,就是開機自檢過程資訊。
  • /var/log/messages釋出核心啟動資訊。
  • /var/log/audit/audit.log使用者認證日誌。
  • /var/log/dmesg系統啟動資訊。
  • /var/log/cron該日誌檔案記錄crontab守護程序crond所派生的子程序的動作。
  • /var/log/maillog記錄了傳送到系統或從系統發出的郵件。
  • /var/log/xferlogFTP會話日誌,記錄使用者向FTP伺服器或從伺服器拷貝了什麼檔案。
  • /var/log/kernlog核心訊息,預設沒有開啟。需要在/etc/syslog.conf檔案中開啟。
  • /var/log/Xorg.0.logX-Window服務日誌。

使用者登入情況

  • /var/log/lastlog記錄最近成功登入事件和最後一次登入失敗事件,由login生成。
  • /var/log/wtmp永久記錄每個使用者登入、登出及系統的啟動、停機事件。
  • /var/run/utmp當前登入使用者資訊。隨著使用者登入登出不斷變化,只保留當時聯機的使用者記錄,不永久保留。

logger命令

/var/log中建立並寫入日誌資訊是由syslog協議處理的,是由守護程序sylogd負責執行。每個標準的程序都可以用syslog記錄日誌。可以使用logger命令通過syslogd記錄日誌。

【示例】要向syslog檔案/var/log/messages中記錄日誌資訊:

logger this is a test log line

輸出:
tail -n 1 messages
Jan  5 10:07:03 localhost root: this is a test log line

如果要記錄特定的標記(tag)可以使用:

logger -t TAG this is a test log line

輸出:
tail -n 1 messages
Jan  5 10:37:14 localhost TAG: this is a test log line


相關推薦

shell學習Linux系統日誌相關命令檔案管理工具

日誌檔案是Linux系統維必不可少的部分,日誌檔案會隨著時間的推移變的越來越大,需要使用一種被稱為輪替的技術來限制日誌的體積,一旦超過了限制的大小,就對它的內容進行抽取,同時將日誌檔案中的舊條目儲存到歸檔檔案中,以便日後的查閱。 logrotate命令 logrotat

Linux系統下python學習筆記——Linux系統資訊相關命令

系統資訊相關命令 目的:主要是為了方便通過遠端終端維護伺服器時,檢視伺服器上當前的  系統日期  和   時間/磁碟空間佔用情況/   程式執行情況。基本都是查詢命令,通過這些命令可以對系統資源的使用情況有個瞭解。 1、時間和日期 date&nbs

linux系統日誌的介紹檢視儲存

幾個關於日誌檔案的介紹 Linux使用者登入記錄日誌和相關檢視命令彙總:https://blog.csdn.net/jsd2honey/article/details/78404337 linux系統日誌的介紹、檢視和儲存:https://blog.csdn.net/hh5820/article/deta

學習筆記Linux系統網絡命令常用匯總

services 統計 ant 查看本機 modprobe tun 所有 自動 使用 在Linux系統,DNS 主機 IP 的設定在 /etc/resolv.conf 文件裏確認Linux 核心是否捕捉到網絡卡:指令 demesg | grep -in eth或者透過

Linux系統下python學習筆記——Linux系統使用者許可權命令

1、基本概念 使用者是Linux系統工作中重要的一環,使用者管理包括使用者與組管理。在Linux系統中,不論是由本機或是遠端登入系統,每個系統都必須擁有一個賬號,並且對於不同的系統資源擁有不同的使用許可權。在Linux中,可以指定每一個使用者針對不同的檔案或者目錄的不同許可權。 對檔案/目錄

linux系統使用vi命令進入檔案後修改儲存資料

以下是VI有關檔案修改與儲存的命令:插入命令i 在當前位置生前插入I 在當前行首插入a 在當前位置後插入A 在當前行尾插入o 在當前行之後插入一行O 在當前行之前插入一行查詢命令/text  查詢text,按n健查詢下一個,按N健查詢前一個。?text  查詢text,反向

linux--系統中的簡單分區管理

分盤 分區 磁盤一、添加文件系統空間簡單分區和文件系統1.認識1> 存儲是每個計算機系統的基本需求。 Red Hat EnterpriseLinux 提供了一些強大的工具 , 它們能在大量的場景中管理多種類型的存儲設備2> disk 是用於管理磁盤分區的實用程序。您可以通過選擇 -l選項和指定磁

Linux系統上安裝JDKMySQLTomcat

很多初次接觸Linux系統的人不太清楚JDK、MySQL和Tomcat的安裝,在這裡我做一個簡要的步驟,希望可以幫到你們。 安裝之前你要確保你已經安裝過遠端連線工具,遠端連線工具是為了將JDK、MyS

Linux基本命令檔案目錄管理

任務:2.1-2.13 目錄結構,檔案系統,檔案型別,相對和絕對路徑,環境變數PATH,ls, cd, alias, mkdir, rmdir, cp, mv, cat, more, less, head, tail。 目錄結構 Linux的檔案和磁

Linux學習並不難》Linux字符界面(4)重啟Linux系統之reboot命令

Linux 重啟 3.4 《Linux學習並不難》Linux字符界面(4):重啟Linux系統之reboot命令reboot的工作過程與halt相似,不過reboot是引發計算機重啟﹐而halt是引發計算機關閉。它的選項與halt相似。命令語法:reboot [選項] 命令中各選項的含義如

Linux學習並不難》Linux字符界面(2)關閉重啟Linux系統之shutdown命令

Linux shutdown 關機 3.2 《Linux學習並不難》Linux字符界面(2):關閉和重啟Linux系統之shutdown命令shutdown命令可以安全地關閉或重啟Linux系統,有些用戶會使用直接斷掉電源的方式來關閉計算機,這是十分危險的。Linux系統與Windows不同,其

Linux學習(五)——系統資訊相關命令

系統資訊相關命令 本節內容主要是為了方便通過遠端終端維護伺服器時,檢視伺服器上當前 系統日期和時間 / 磁碟空間佔用情況 / 程式執行情況 本小結學習的終端命令基本都是查詢命令,通過這些命令對系統資源的使用情況有個瞭解 目標 時間和日期 date

linux基礎(七)----linux命令系統學習----系統安全相關命令

系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、ps、who; 雖然Linux和Windows NT/2000系統一樣是一個多使用者

Linux學習筆記Linux系統的進程調度(任務調度)

任務 調度 今天我們學習了Linux系統的進程調度,進程調度是為了在未來某個時間點,讓系統自動執行我們事先編寫好的命令或腳本的列表,從而使得即使用戶不在計算機旁邊也可以按時完成任務。這樣有利於我們更好的進行任務計劃以及在需要執行任務的時候自動完成我們設定好的命令,從而完成任務。 當然為

第一次項目上Linux服務器(三安裝Tomcat及相關命令

切換 總結 情況 xshel TP tomcat日誌 跟蹤 src down 一、下載Tomcat   去官網:http://tomcat.apache.org/ 找到要下載的Tomcat      本人下載的是apache-tomcat-8.5.29.tar.gz,百

Linux系統下python學習筆記——Linux系統其他命令

Linux系統其他命令 一、查詢檔案 find    通常用來在特定目錄下搜尋符合條件的檔案 find [路徑] -name "*.py"    查詢指定路徑下副檔名是.py的檔案,包括子目錄(*為萬用字元) 如果省略路徑,表示在當前資料夾下查

Linux系統下python學習筆記——Linux系統遠端管理命令

Linux系統遠端管理常用命令 一、關機/重啟shutdown 格式:shutdown 選項 時間 選項:-r :重新啟動 時間:now(立刻關閉)   22:45  +10(十分鐘之後執行 ) 不指定選項和引數,預設一分鐘之後關閉電腦 遠端維護伺服器時,

linux系統時間相關命令

1.uptime命令 輸出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00 2.檢視/proc/uptime檔案計算系統啟動時間 cat /proc/uptime 輸出: 5113396.94 5759

Redis學習(一)Linux系統環境下安裝及編譯Redis

一、簡介         Redis(Remote Dictionary Server)是由義大利人Salvatore Sanfilippo(網名:antirez)開發的一款記憶體快取記憶體資料庫。它是一個key-value儲存系統,它支援豐富的資料型別,如:String

nmcli 命令Linux 系統命令列網路管理

要想在 Linux 命令下對網路進行相關設定,總的來說不外乎兩類方法:其一乃寫配置檔案,如 /etc/network/interfaces 進行網路介面配置,其二直接在終端呼叫 Linux 網路管理命令,在終端間接同文件打交道。 首先為大家所熟知的,ifconfig 命令和 iwconf