1. 程式人生 > >linux基礎篇(七):基於Redhat7系統的系統日誌與延時任務

linux基礎篇(七):基於Redhat7系統的系統日誌與延時任務

系統日誌

配置檔案: /etc/rsyslog.conf

系統日誌是記錄系統中硬體、軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。

常用日誌型別與日誌級別

型別

auth            使用者登陸日誌(pam產生的日誌)
authpriv        服務認證日誌(sshd認證)
kern            核心日誌
corn            定時任務日誌
lpr            印表機日誌
mail            郵件日誌
news            新聞
user            使用者相關程式日誌
local 1-7        使用者自定義日誌

級別

debug            系統除錯資訊
info            常規資訊
warning            警告資訊
err            報錯(級別低,阻止了某個軟體不能正常工作)
crit            報錯(級別高,阻止了整個軟體或整個系統不能正常工作)
alert            需要立即修改資訊
emerg            核心崩潰
none            不採集任何日誌資訊

格式

日誌型別.日誌級別 日誌存放檔案
例如:

auth.debug           檔名稱    ##使用者登陸日誌的除錯資訊
auth.*               檔名稱    ##使用者登陸日誌的所有資訊
*.*                  檔名稱   ##所有日誌型別的所有級別的資訊

vim /etc/rsyslog.conf
在這裡插入圖片描述
auth.debug /var/log/westos ###將使用者登入日誌的除錯資訊儲存在/var/log/westos檔案中

. /var/log/log.all ####將所有型別日誌的所有級別資訊儲存在/var/log/log.all檔案中

系統常用日誌

/var/log/messages    所有日誌級別的常規資訊(不包含郵件,服務認證,定時任務)
/var/log/maillog    郵件日誌
/var/log/secure        服務認證日誌
/var/log/cron        定時任務日誌

遠端日誌同步

需要兩臺節點
節點一:日誌傳送方server1 172.25.66.11
節點二:日誌接收方server2 172.25.66.12

在日誌傳送方
vim /etc/rsyslog.conf
. @172.25.66.12 #日誌接受方地址
在這裡插入圖片描述
systemctl restart rsyslog
在這裡插入圖片描述
在日誌接收方

vim /etc/rsyslog.conf
編輯第15、16行
15 $ModLoad imudp 日誌接受程式
16 $UDPServerRun 514 接收程式介面
在這裡插入圖片描述
systemctrl restart rsyslog.srvice
systemctrl stop firewalld 關閉防火牆
systemctrl disabl firewalld 關閉防火牆開機自啟動
在這裡插入圖片描述
測試:
清空日誌接受方的日誌記錄 > /var/log/message
在這裡插入圖片描述
在日誌傳送方:
在這裡插入圖片描述
在日誌接受方可以檢視到日誌傳送方的日誌
cat /var/log/message
在這裡插入圖片描述

定義日誌採集格式

vim /etc/rsyslog.conf
$template 格式名稱(自定義),"日誌採集格式"
*.info;mail.none;authpriv.none;cron.none                /var/log/messages;westos
$template westos,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

%timegenerated%        日誌生成時間
%FROMHOST-IP%        日誌來源主機的ip
%syslogtag%        日誌生成程式
%msg%            日誌內容

在這裡插入圖片描述

systemctl restart rsyslog

測試:
在這裡插入圖片描述

journalctl

journalctl ##日誌檢視工具,直接檢視記憶體中的日誌

journalctl -n 3            檢視最新三條日誌
journalctl -p err        檢視報錯日誌
journalctl -f            日誌監控   用ctrl+c 結束監控
journalctl --since  --until    檢視一個時間區間的日誌
journalctl -o verbose        產看日誌詳細引數

對systemd-journald管理

預設此程式只負責對日誌進行檢視而不對日誌進行儲存和採集,那麼在關機後在開機,對日誌進行檢視,只能檢視到開機後的日誌,系統之前的日誌是因為儲存在記憶體中的,所以關機後就被清空了,那麼在開機是用journalctl看不到的
如何讓systemd-journald儲存日誌到硬碟中
(1)mkdir /var/log/journal
(2)chgrp systemd-journal /var/log/journal
(3)chmod 2755 /var/log/journal
(4)killall -1 systemd-journald
在這裡插入圖片描述
測試:
journalctl 重啟之前檢視日誌時間
date 檢視當前時間
reboot 重啟
journalctl 重啟後檢視日誌,看重啟之前的日誌是否存在,存在即為正確

系統中的at延時任務

at類似列印程序,會把任務放到/var/spool/at目錄中,到指定時間執行它 。at命令相當於另一個shell,執行at time命令時,它傳送一個個命令,可以輸入任意命令或者程式。

AT Time中的時間表示方法

  -----------------------------------------------------------------------
  時 間 例子 說明
  -----------------------------------------------------------------------
  Minute    at now + 5 minutes   任務在5分鐘後執行
  Hour      at now + 1 hour      任務在1小時後執行
  Days      at now + 3 days      任務在3天后執行
  Weeks     at now + 2 weeks     任務在兩週後執行
  Fixed     at midnight          任務在午夜執行
  Fixed     at 10:30pm           任務在晚上10點30分
  Fixed     at 23:59 12/31/2018   任務在2018年12月31號23點59分 

引數詳解

at [-V] [-q x] [-f file] [-mldbv] time
at -c job ...
atq [-V] [-q x]
atrm [-V] job ...
-V : 印出版本編號 
-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 以及 A, B, ... Z 共 52 個 
-m : 即使程式/指令執行完成後沒有輸出結果, 也要寄封信給使用者 
-f file : 讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案後再一次讀入 網路應用
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l) 
-d : 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d) 
-v : 列出所有已經完成但尚未刪除的指定 

舉例:
at now+1min
at> touch /mnt/file{1…5}
ctrl+d
五分鐘之後,在/mnt目錄建立file1-file5五個檔案
在這裡插入圖片描述
在這裡插入圖片描述

at黑白名單

/etc/at.deny ##黑名單
/etc/at.allow ##白名單本身不存在,建立後黑名單失效,除了超級使用者外的其他使用者都不能使用at作業,除非將使用者加入白名單

vim /etc/at.deny 將指定使用者加入黑名單
vim /etc/at.allow 將指定使用者加入白名單