last
-a 把從何處登入系統的主機名稱或ip地址,顯示在最後一行。
-d 指定記錄文件。指定記錄文件。將IP地址轉換成主機名稱。
-f <記錄文件> 指定記錄文件。
-n <顯示列數>或-<顯示列數> 設置列出名單的顯示列數。
-R 不顯示登入系統的主機名稱或IP地址。
-x 顯示系統關機,重新開機,以及執行等級的改變等信息
以下看所有的重啟、關機記錄
last | grep reboot
last | grep shutdown
history
列出所有的歷史記錄:
[zzs@Linux] # history
只列出最近10條記錄:
[zzs@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[zzs@linux] #!99 (!和99中間沒有空格)
重復執行上一個命令
[zzs@linux] #!!
執行最後一次以rpm開頭的'命令(!? ?代表的是字元串,這個String可以隨便輸,Shell會從最後一條歷史命令向前搜索,最先匹配的一條命令將會得到執行。)
[zzs@linux] #!rpm
逐屏列出所有的歷史記錄:
[zzs@linux]# history | more
立即清空history當前所有歷史命令的記錄
[zzs@linux] #history -c
cat, tail 和 watch
系統所有的日誌都在 /var/log 下面自己看(具體用途可以自己查,附錄列出一些常用的日誌)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日誌在更新,如何實時查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會直接返回命令行,而是實時列印日誌文件中新增加的內容,
這一特性,對於查看日誌是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
除此之外還有more, less ,dmesg|more,這里就不作一一列舉了,因為命令太多了,關鍵看個人喜好和業務需求.個人常用的就是以上那些
linux日誌文件說明
/var/log/message 系統啟動後的信息和錯誤日誌,是Red Hat Linux中最常用的日誌之一
/var/log/secure 與安全相關的日誌信息
/var/log/maillog 與郵件相關的日誌信息
/var/log/cron 與定時任務相關的日誌信息
/var/log/spooler 與UUCP和news設備相關的日誌信息
/var/log/boot.log 守護進程啟動和停止相關的日誌消息
/var/log/wtmp 該日誌文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件
『貳』 路由器上的「Syslog伺服器」是干什麼的,有什麼用處
日誌伺服器。
日誌就是記錄我們做過的一些操作。
比如你敲入介面UP 或DOWN的命令,就會出現一條日誌。提示介面打開或關閉。
我們一般用LOGGING SYN來同步命令和日誌。
『叄』 linux下怎麼用syslog記錄日誌文件
1 syslogd的配置文件
syslogd的配置文件/etc/syslog.conf規定了系統中需要監視的事件和相應的日誌的保存位置
cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages #除了mail/news/authpriv/cron以外,將info或更高級別的消息送到/var/log/messages,其中*是通配符,代表任何設備;none表示不對任何級別的信息進行記錄
# The authpriv file has restricted access.
authpriv.* /var/log/secure #將authpirv設備的任何級別的信息記錄到/var/log/secure文件中,這主要是一些和認證,許可權使用相關的信息.
# Log all the mail messages in one place.
mail.* -/var/log/maillog #將mail設備中的任何級別的信息記錄到/var/log/maillog文件中, 這主要是和電子郵件相關的信息.
# Log cron stuff
cron.* /var/log/cron #將cron設備中的任何級別的信息記錄到/var/log/cron文件中, 這主要是和系統中定期執行的任務相關的信息.
# Everybody gets emergency messages
*.emerg * #將任何設備的emerg級別或更高級別的消息發送給所有正在系統上的用戶.
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler #將uucp和news設備的crit級別或更高級別的消息記錄到/var/log/spooler文件中.
# Save boot messages also to boot.log
local7.* /var/log/boot.log #將和本地系統啟動相關的信息記錄到/var/log/boot.log文件中.
2. syslogd語法
該配置文件的每一行的格式如下:
facility.priority action 設備.級別 動作
3. Syslogd設備欄位
設備欄位用來指定需要監視的事件.它可取的值如下:
authpriv cron daemon kern lpr syslog user uucp mail news
報告認證活動通常,口令等私有信息不會被記錄 報告與cron和at有關的信息 報告與xinetd有關的信息 報告與內核有關的信息 報告與列印服務有關的信息 由syslog生成的信息 報告由用戶程序生成的任何信息由UUCP生成的信息 報告與郵件服務有關的信息 報告與網路新聞服務有關的信息
4. syslogd級別欄位
級別欄位用於指明與每一種功能有關的級別和優先順序:
alert crit err warning notice info debug none * emerg
需要立即引起注意的情況 危險情況的警告 除了emerg,alert,crit的其他錯誤 警告信息需要引起注意的情況 值得報告的消息 由運行於debug模式的程序所產生的消息 用於禁止任何消息 所有級別,除了none 出現緊急情況使得該系統不可用
5. syslogd動作欄位
動作欄位用於描述對應功能的動作
file username device @hostname
指定一個絕對路徑的日誌文件名記錄日誌信息 發送信息到指定用戶,*表示所有用戶 將信息發送到指定的設備中,如/dev/console將信息發送到可解析的遠程主機hostname,且該主機必須正在運行syslogd並可以識別syslog的配置文件
6. 查看日誌文件
常見的日誌文件日誌文件通常存放在/var/log目錄下.在該目錄下除了包括syslogd 記錄的日誌之外,同時還包含所有應用程序的日誌. 為了查看日誌文件的內容必須要有root許可權.日誌文件中的信息很重要,只能讓超級用戶有訪問這些文件的許可權.
7. log
cups/ httpd/ mail/ news/ boot.log dmesg maillog messages secure wtmp
存儲CUPS列印系統的日誌目錄 記錄apache的訪問日誌和錯誤日誌目錄 存儲mail日誌目錄 存儲INN新聞系統的日誌目錄 記錄系統啟動日誌記錄系統啟動時的消息日誌 記錄郵件系統的日誌 由syslogd記錄的info或更高級別的消息日誌 由syslogd記錄的認證日誌 一個用戶每次登錄進入和退出時間的永久記錄
8. 查看文本日誌文件
絕大多數日誌文件是純文本文件,每一行就是一個消息.只要是在Linux下能夠處理純文本的工具都能用來查看日誌文件.可以使用 cat,tac, more,less,tail和grep進行查看文件中每一行表示一個消息,而且都由四個域的固定格式組成: 時間標簽(Timestamp):表示消息發出的日期和時間. 主機名(Hostname):表示生成消息的計算機的名字. 生成消息的子系統的名字:可以是"Kernel",表示消息來自內核或者 是進程的名字,表示發出消息的程序的名字. 在方括弧里的是進程的PID. 消息(Message),即消息的內容.
syslog發出的消息,說明了守護進程已經在 Dec 16,03:32:41 重新啟動了. Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart. # 在 Dec 19,00:20:56 啟動了內核日誌 klogd Dec 19 00:20:56 cnetos5 kernel: klogd 1.4.1, log source = /proc/kmsg started. # 在 Dec 19,00:21:01 啟動了xinetd Dec 19 00:21:01 cnetos5 xinetd[2418]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.
9. 查看非文本日誌文件Lastlog
也有一些日誌文件是二進制文件,需要使用相應的命令進行讀取.
使用lastlog命令來檢查某特定用戶上次登錄的時間,並格式化輸出上次登錄日誌 /var/log/lastlog 的內容
rpc **從未登錄過** rpcuser **從未登錄過** sshd **從未登錄過** pcap **從未登錄過** haldaemon **從未登錄過** xfs **從未登錄過** gdm **從未登錄過** boobooke **從未登錄過** baobao pts/1 192.168.1.2 三 11月 26 12:44:32 +0800 2008 abc **從未登錄過** test pts/1 192.168.1.5 四 11月 27 17:30:53 +0800 2008 test01 **從未登錄過**
last命令往回搜索/var/log/wtmp來顯示自從文件第一次創建以來登錄過用戶
root pts/1 116.226.69.195 Fri Aug 31 15:48 - 18:37 (02:49)
10. 查看非文本日誌文件lastb
lastb命令搜索/var/log/btmp來顯示登錄未成功的信息.
root ssh:notty 222.143.27.97 Thu Sep 6 19:43 - 19:43 (00:00)
11. 查看非文本日誌文件who
who命令查詢wtmp文件並報告當前登錄的每個用戶.who命令的預設輸出包括用戶名,終端類型,登錄日期及遠程主機.
[root@server ~]# who
root pts/0 2012-09-08 10:18 (116.226.69.195)
[root@server ~]# w
10:41:31 up 212 days, 20:19, 1 user, load average: 0.21, 0.16, 0.14
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 116.226.69.195 10:18 0.00s 0.09s 0.00s w
12.日誌滾動
為什麼使用日誌滾動所有的日誌文件都會隨著時間的推移和訪問次數的增加而迅速增長,因此必須對日誌文件進行定期清理以免造成磁碟空間的不必要的浪費.同時也 加快了管理員查看日誌所用的時間,因為打開小文件的速度比打開大文件的速度要快.
Logrotate 其命令格式為: logrotate [選項] <configfile>
-d:詳細顯示指令執行過程,便於排錯或了解程序執行的情況.
-f:強行啟動記錄文件維護操作,即使logrotate指令認為無需要亦然 -m command:指定發送郵件的程序,默認為 /usr/bin/mail. -s statefile:使用指定的狀態文件. -v:在執行日誌滾動時顯示詳細信息.
13. 日誌滾動
logrotate 默認的主配置文件是 /etc/logrotate.conf /etc/logrotate.d 的目錄下的文件,這些文件被 include 到主配置文件 /etc/logrotate.conf 中
# see "man logrotate" for details # 每周清理一次日誌文件
weekly #保存過去四周的日誌文件
rotate 4 #清除舊日誌文件的同時,創建新的空日誌文件
create #若使用壓縮的日誌文件,請刪除下面行的注釋符
#compress #包含/etc/logrotate.d目錄下的所有配置文件
include /etc/logrotate.d #設置/var/log/wtmp的日誌滾動
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
可以使用ls命令顯示/etc/logrotate.d目錄:
[root@server ~]# ls /etc/logrotate.d
mgetty psacct rpm setroubleshoot snmpd syslog yum
每個文件的基本格式均相同
[root@server ~]# cat /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { #對日誌文件
sharedscripts #調用日誌滾動通用函數sharedscripts
postrotate #在日誌滾動之後執行語句括弧postrotate和endscript之間的命令postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true #重新啟動syslogd
endscript
}
logrotate是由crond運行的,在默認配置中,可以發現在/etc/cron.daily目錄中有一個名為logrotate的文件
[root@server ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
『肆』 如何在windows伺服器中使用syslog功能
方法/步驟:
1. 首先根據自己的windows系統的版本(32/64位),在網上下載相應的版本。我的系統為64位版本,因此下載64位版本;
『伍』 烏班圖系統如何生成日誌
在ubuntu server版本中,syslog命令用於設置日誌。 設置syslog ubuntu server中,由syslogd進程處理日誌。通過ps命令輸出的syslogd進程信激坦息: syslog 4275 1 0 2008 ? 00:00:02 /sbin/syslogd -u syslog 該進程讀取配明檔桐置文件: /etc/syslog.conf 該蠢手配置文件指定記錄哪些日誌並記錄到哪個位置。
『陸』 如何使用syslog向伺服器協議
Syslog是一種工業標準的協議,可用來記錄設備的日誌。
Ubuntu下安裝syslog apt-get install inetutils-syslogd
這裡面的三個函數openlog, syslog, closelog是一套系統日誌寫入介面。另外那個vsyslog和syslog功能一樣,只是參數格式不同。
通常,syslog守護進程讀取三種格式的記錄消息。此守護進程在啟動時讀一個配置文件。一般來說,其文件名為/etc/syslog.conf,該文件決定了不同種類的消息應送向何處。例如,緊急消息可被送向系統管理員(若已登錄),並在控制台上顯示,而警告消息則可記錄到一個文件中。該機制提供了 syslog函數,其調用格式如下
#include <syslog.h>
void openlog (char*ident,int option ,int facility);
void syslog(int priority,char*format,……)
void closelog();
調用openlog是可選擇的。如果不調用openlog,則在第一次調用syslog時,自動調用openlog。調用closelog也是可選擇的,它只是關閉被用於與syslog守護進程通信的描述符。調用openlog 使我們可以指定一個ident,以後, 此ident 將被加至每則記錄消息中。ident 一般是程序的名稱(例如 ,cron ,ine 等)
程序的用法示例代碼如下:
#include <syslog.h>
int main(int argc, char **argv)
{
openlog("MyMsgMARK", LOG_CONS | LOG_PID, 0);
syslog(LOG_DEBUG,
"This is a syslog test message generated by program '%s'\n",
argv[0]);
closelog();
return 0;
}
編譯生成可執行程序後,運行一次程序將向/var/log /message文件添加一行信息如下:
Feb 12 08:48:38 localhost MyMsgMARK[7085]: This is a syslog test message generated by program './a.out'
syslog函數及參數
syslog函數用於把日誌消息發給系統程序syslogd去記錄,此函數原型是:
void syslog(int priority, const char *format, ...);
第一個參數是消息的緊急級別,第二個參數是消息的格式,之後是格式對應的參數。就是printf函數一樣使用。
如果我們的程序要使用系統日誌功能,只需要在程序啟動時使用openlog函數來連接 syslogd程序,後面隨時用syslog函數寫日誌就行了。
下面介紹在RedHat和ubuntu中如何配置它:
Ubuntu和紅帽常使用它,並且通過文件/etc/rsyslog.conf進行管理。文件中包含許多指定的特殊系統日誌:有的是控制台方面的,有的是文件方面或其它主機的。
首先,我們需要載入合適的TCP和UDP插件以支持接收系統日誌。把下面的代碼添加到rsyslog.conf的頭部:
$modload imtcp
$modload imudp
$InputTCPServerRun 10514
$UDPServerRun 514
載入的這兩個模塊能支持監聽TCP和UDP的埠,並且指定哪個埠來接受事件,在這種情況下,使用TCP的10514埠和UDP的514埠。你需要確認一下本地防火牆(在你的主機和中央系統日誌伺服器之間的防火牆)
下面我們需要指定一些規則來告訴rSyslog在哪放輸入事件。如果你不添加任何規則,輸入事件將按照本地的規則進行處理,並且與本地主機的事件交織在一起。我們需要在上面添加節之後和本地處理系統日誌之前來正確的指定這個規則,例如:
if $fromhost-ip isequal '192.168.0.2' then /var/log/192.168.0.2.log
& ~
這里我們說的每一個來自於192.168.0.2的系統日誌都應該保存在/var/log/192.168.0.2.log文件中。&~這個符號是非常重要的,因為它告訴rSyslog將停止處理消息。如果你把它忘寫了,消息將越過下一個規則,並且繼續處理。在這一規則中還有其他的變數。例如:
if $fromhost-ip startswith '192.168.' then /var/log/192.168.log
& ~
這里我們用192.168.*替代了以這個為開始的所有IP地址,寫入到/var/log/192.168.log文件中。你還可以看到一些其它的過濾。
你將需要重啟這個rsyslog服務來激活我們所做的新的配置:
$ sudo service rsyslog restart
現在,對於發送方的主機,我們還需要對文件rsyslog.conf進行一些更改,在文件的頭部,添加下面這行:
*.* @@192.168.0.1:10514
這是發送的所有事件,來自於所有源代碼和所有重要級別(用*.*),通過TCP協議傳給IP地址為192.168.0.1的10514埠。你可是用你所在環境的地址來替換這個IP地址。要啟用此配置,你將需要重啟主機上的rSyslog。
你可以通過SSL/TLS更進一步地發送你的系統日誌。如果你在互聯網上或其它網路間傳輸系統日誌,這也沒什麼壞處,你可能會發現這個的簡單說明。
現在,如果給你的配置管理系統(如果不使用這個,你可以試一試Puppet或Cfengine工具)添加這個配置,然後,您可以用適當的系統日誌來有效地配置每台主機,以確保你的日誌將被發送到中央系統日誌伺服器。
『柒』 查看日誌的linux命令
在 Linux 系統中,查看日誌的命令主要有以下幾個:
tail 命令:可以實時查看文件的最後幾行或某個基茄鏈區間內的內容,非常適合查看日誌文件。例如:
bashCopy code
tail -f /var/log/syslog
該命令會實時顯示 /var/log/syslog 文件的最後幾行,可以隨時更新納橡文件內容。
less 命令:可以打開大文件,支持上下翻頁、搜索等功能,也可以用於查看日誌文件。例如:
bashCopy code
less /var/log/syslog
該命令會打開 /var/log/syslog 文件,可以用箭頭鍵上下翻頁,輸入 / 進入搜索模式,輸入關鍵字查找日誌內容。
cat 命令:可以查看整個文件的內容,適合查看較小的日誌文件。例如:
bashCopy code
cat /var/log/syslog
該命令會顯示 /var/log/syslog 文件的所有內容,可以直接在終端查看,但不支持翻頁和搜索搏孫等功能。
grep 命令:可以根據關鍵字查找日誌內容,非常實用。例如:
perlCopy code
grep "error" /var/log/syslog
該命令會查找 /var/log/syslog 文件中包含 "error" 關鍵字的行,並輸出這些行的內容。
以上是常用的 Linux 查看日誌的命令,根據實際情況選擇合適的命令即可。