『壹』 linux 下syslog,syslogd()的編程
你是想讓一台機器的日誌寫到另一台機器上吧?就是remote syslog。
看看這個:
http://news.softpedia.com/news/Setting-Up-a-Central-Syslog-Server-44063.shtml
syslog是個daemon,寫腳本不如配現成的服務了。
『貳』 如何查看linux的系統log日誌
日誌文件詳細地記錄了系統每天發生的各種各樣的事件。用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到攻擊和黑客入侵時追蹤攻擊者的蹤跡。日誌的兩個比較重要的作用是:審核和監測。 Linux系統的日誌主要分為兩種類型: 1.進程所屬日誌 由用戶進程或其他系統服務進程自行生成的日誌,比如伺服器上的access_log與error_log日誌文件。 2.syslog消息 系統syslog記錄的日誌,任何希望記錄日誌的系統進程或者用戶進程都可以給調用syslog來記錄日誌。 日誌系統可以劃分為三個子系統: 1. 連接時間日誌--由多個程序執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。 2. 進程統計--由系統內核執行。當一個進程終止時,為每個進程往進程統計文件(pacct或acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。 3. 錯誤日誌--由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。 2.察看日誌文件 Linux系統所有的日誌文件都在/var/log下,且必須有root許可權才能察看。 日誌文件其實是純文本的文件,每一行就是一個消息。察看方式有很多。 1. cat命令。日誌文件總是很大的,因為從第一次啟動Linux開始,消息都累積在日誌文件中。如果這個文件不只一頁,那麼就會因為顯示滾動得太快看不清文件的內容。 2. 文本編輯器。最好也不要用文本編輯器打開日誌文件,這是因為一方面很耗費內存,另一方面不允許隨意改動日誌文件。 3.用more或less那樣的分頁顯示程序。 4.用grep查找特定的消息。 每一行表示一個消息,而且都由四個域的固定格式組成: n 時間標簽(timestamp),表示消息發出的日期和時間 n 主機名(hostname)(在我們的例子中主機名為escher),表示生成消息的計算機的名字。如果只有一台計算機,主機名就可能沒有必要了。但是,如果在網路環境中使用syslog,那麼就可能要把不同主機的消息發送到一台伺服器上集中處理。 n 生成消息的子系統的名字。可以是"kernel",表示消息來自內核,或者是進程的名字,表示發出消息的程序的名字。在方括弧里的是進程的PID。 n 消息(message),剩下的部分就是消息的內容。 舉例: 在[root@localhost root]# 提示符下輸入:tail /var/log/messages Jan 05 21:55:51 localhost last message repeated 3 times Jan 05 21:55:51 localhost kernel: [drm] AGP 0.99 on Intel i810 @ 0xf0000000 128M B Jan 05 21:55:51 localhost kernel: [drm] Initialized i830 1.3.2 20021108 on minor 0 Jan 05 21:55:51 localhost kernel: mtrr: base(0xf0000000) is not aligned on a siz e(0x12c000) boundary Jan 05 21:56:35 localhost 1月 28 21:56:35 gdm(pam_unix)[4079]: session opened f or user root by (uid=0) Jan 05 21:56:39 localhost 1月 28 21:56:39 gconfd (root-4162): 正在啟動(版本 2. 2.0),pid 4162 用戶"root" Jan 05 21:56:39 localhost 1月 28 21:56:39 gconfd (root-4162): 解析的地址"xml:re adonly:/etc/gconf/gconf.xml.mandatory"指向位於 0 的只讀配置源 Jan 05 21:56:39 localhost 1月 28 21:56:39 gconfd (root-4162): 解析的地址"xml:re adwrite:/root/.gconf"指向位於 1 的可寫入配置源 Jan 05 21:56:39 localhost 1月 28 21:56:39 gconfd (root-4162): 解析的地址"xml:re adonly:/etc/gconf/gconf.xml.defaults"指向位於 2 的只讀配置源 Jan 05 21:58:20 localhost kernel: MSDOS FS: IO charset cp936 值得注意的是,與連接時間日誌不同,進程統計子系統默認不激活,它必須啟動。在Linux 系統中啟動進程統計使用accton命令,必須用root身份來運行。accton命令的形式為:accton file,file必須事先存在。先使用touch命令創建pacct文件:touch /var/log/pacct,然後運行accton:accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令監測系統中任何時候執行的命令。若要關閉統計,可以使用不帶任何 參數的accton命令。 3.日誌系統工作原理及配置 3.1 syslog 它同closelog, openlog共同給system logger發送消息。 Linux內核由很多子系統組成,包括網路、文件訪問、內存管理等。子系統需要給用戶傳送一些消息,這些消息內容包括消息的來源及其重要性等。所有的子系統都要把消息送到一個可以維護的公用消息區。於是,就有了一個叫Syslog的程序。 這個程序負責接收消息(比如:系統核心和許多系統程序產生的錯誤信息、警告信息和其他信息,每個信息都包括重要級),並把消息分發到合適的地方。通常情況 下,所有的消息都被記錄到特定的文件——日誌文件中(通常是/var/adm或/var/log目錄下的messages文件),特別重要的消息也會在用 戶終端窗口上顯示出來。 syslog工具有兩個重要文件:syslogd和syslog.Conf 它能接受訪問系統的日誌信息並且根據 "/etc/syslog.conf" 配置文件中的指令處理這些信息。守護進程和內核提供了訪問系統的日誌信息。因此,任何希望生成日誌信息的程序都可以向 syslog 介面呼叫生成該信息。 3.2 syslogd守護進程 就象其它復雜的操作系統那樣,Linux也是由很多不同的子系統組成的。有些叫做daemon的程序一直在後台運行(daemon:守護神之意。也就是 說,他們"默默無聞",不需要和用戶交互),處理一些象列印、發送郵件、建立Internet連接,等等日常工作。每一個子系統發出日誌消息的時候都會給 消息指定一個類型。一個消息分成兩個部分:"設備(facility)"和"級別(level)"。"設備"標識發出消息的子系統,可以把同一類型的消息組合在一起,"級別"表示消息的重要性,其范圍從debug(最不重要)到emerg(最重要),facility和level組合起來稱為priority。(詳細解釋參照5.3) /usr/include/sys/syslog.h中對此有相關的定義。 用戶看不到daemon程序,因為它們沒有窗口和用戶界面。但是,這些程序有時候也要給用戶傳遞一些信息。為了實現這個目的,就需要一個特殊的機制。syslogd就是daemon的一個很好的例子,它在後台運行並且把消息從日誌區轉移到日誌文件中去。 函數介面 #include void openlog( char * , int , int ) 其中,可以是以下值的OR組合: LOG_CONS : 如果消息無法送到syslogd,直接輸出到系統console。 LOG_NDELAY : 立即打開到syslogd的連接,默認連接是在第一次寫入訊息時才打開的。 LOG_PERROR : 將消息也同時送到stderr 上 LOG_PID : 將PID記錄到每個消息中 void syslog( int , char * ) 其中,是facility和level的OR組合 void closelog( void ) 一般只需要用syslog()函數,其他函數可以不用。 3.3 syslog.conf 這是一個非常重要的文件。位於"/etc/"目錄下。通知 syslogd 如何根據設備和信息重要級別來報告信息。 該文件使用下面的形式: facility.level action syslog.conf 的第一列facility.level用來指定日誌功能和日誌級別,中間用.隔開,可以使用*來匹配 所有的日誌功能和日誌級別。第二列action是消息的分發目標。 空白行和以#開頭的行是注釋,可以忽略。 Facility.level 欄位也被稱做選擇域(seletor)。 n facility 指定 syslog 功能,主要包括以下這些: auth 由 pam_pwdb 報告的認證活動。 authpriv 包括特權信息如用戶名在內的認證活動 cron 與 cron 和 at 有關的信息。 daemon 與 inetd 守護進程有關的信息。 kern 內核信息,首先通過 klogd 傳遞。 lpr 與列印服務有關的信息。 mail 與電子郵件有關的信息 mark syslog 內部功能用於生成時間戳 news 來自新聞伺服器的信息 syslog 由 syslog 生成的信息 user 由用戶程序生成的信息 uucp 由 uucp 生成的信息 local0----local7 與自定義程序使用,例如使用 local5 做為 ssh 功能 * 通配符代表除了 mark 以外的所有功能 level 級別,決定訊息的重要性。 與每個功能對應的優先順序是按一定順序排列的,emerg 是最高級,其次是 alert,依次類推。預設時,在 /etc/syslog.conf 記錄中指定的級別為該級別和更高級別。如果希望使用確定的級別可以使用兩個運算符號!(不等)和=。 例如:user.=info 表示告知 syslog 接受所有在 info 級別上的 user 功能信息。 n 以下的等級重要性逐次遞減: emerg 該系統不可用 alert 需要立即被修改的條件 crit 阻止某些工具或子系統功能實現的錯誤條件 err 阻止工具或某些子系統部分功能實現的錯誤條件 warning 預警信息 notice 具有重要性的普通條件 info 提供信息的消息 debug 不包含函數條件或問題的其他信息 none 沒有重要級,通常用於排錯 * 所有級別,除了none n action 欄位為動作域,所表示的活動具有許多靈活性,特別是,可以使用名稱管道的作用是可以使 syslogd 生成後處理信息。 syslog 主要支持以下活動: file 將消息追加到指定的文件尾 terminal 或 print 完全的串列或並行設備標志符 @host 遠程的日誌伺服器 username 將消息寫到指定的用戶 named pipe 指定使用 mkfifo 命令來創建的 FIFO 文件的絕對路徑。 * 將消息寫到所有的用戶 選擇域指明消息的類型和優先順序;動作域指明syslogd接收到一個與選擇標准相匹配的消息時所執行的動作。每個選項是由設備和優先順序組成。當指明一個優先順序時,syslogd將紀錄一個擁有相同或更高優先順序的消息。比如如果指明"crit",則所有標為crit、alert和emerg的消息將被紀錄。每行的行動域指明當選擇域選擇了一個給定消息後應該把他發送到什麼地方。 以下是一個實際站點的配置(syslog.conf)文件: # Store critical stuff in critical # *.=crit;kern.none /var/adm/critical 這個將把所有信息以優先權的crit保存在/var/adm/critical文件中,除了一些內核信息 # Kernel messages are first, stored in the kernel # file, critical messages and higher ones also go # to another host and to the console # kern.* /var/adm/kernel kern.crit @finlandia kern.crit /dev/console kern.info;kern.!err /var/adm/kernel-info 第一條代碼指引一些內核設備訪問文件/var/adm/kernel的信息。 第二條代碼直接引導所有擁有crit和更高優先權的內核信息訪問遠程主機。如果它們也存儲在遠程主機上,仍舊可以試著找到毀壞的原因。 第四行說明syslogd 保存了所有擁有info 到warning優先順序的內核信息在/var/adm/kernel-info文件夾下。所有err和更高優先順序的被排除在外。 # The tcp wrapper loggs with mail.info, we display # all the connections on tty12 # mail.=info /dev/tty12 這個引導所有使用mail.info (in source LOG_MAIL LOG_INFO)的信息到/dev/tty12下,第12 個控制台。例如tcpwrapper tcpd (8)載預設時使用這個 # Store all mail concerning stuff in a file mail.*;mail.!=info /var/adm/mail 模式匹配了所有具有mail功能的信息,除了擁有info優先順序的。他們將被保存在文件/var/adm/mail中 # Log all mail.info and news.info messages to info # mail,news.=info /var/adm/info 提取所有具有mail.info 或news.info 功能優先順序的信息存儲在文件/var/adm/info中 # Log info and notice messages to messages file # *.=info;*.=notice;\ mail.none /var/log/messages 使所有syslogd日誌中具有info 或notice功能的信息存儲在文件/var/log/messages中,除了所有mail功能的信息 # Log info messages to messages file # *.=info;\ mail,news.none /var/log/messages 這個聲明使syslogd日誌中所有具有info優先權的信息存儲在/var/log/messages文件中。但是一些有mail 或news功能的信息不能被存儲。 # Emergency messages will be displayed using wall # *.=emerg * 這行代碼告訴syslogd寫所有緊急信息到所有當前登陸用戶日誌中。這個將被實現 # Messages of the priority alert will be directed # to the operator # *.alert root,joey *.* @finlandia 這個代碼指引所有具有alert 或更高級許可權的信息到終端操作。 第二行代碼引導所有信息到叫做finlandia的遠程主機。這個代碼非常有用,特別是在所有syslog信息將被保存到一台機器上的群集計算機。 3.4 klogd 守護進程 klog是一個從UNIX內核接受消息的設備 klogd 守護進程獲得並記錄 Linux 內核信息。通常,syslogd 會記錄 klogd 傳來的所有信息。也就是說,klogd會讀取內核信息,並轉發到syslogd進程。然而,如果調用帶有 -f filename 變數的 klogd 時,klogd 就在 filename 中記錄所有信息,而不是傳給 syslogd。當指定另外一個文件進行日誌記錄時,klogd 就向該文件中寫入所有級別或優先權。Klogd 中沒有和 /etc/syslog.conf 類似的配置文件。使用 klogd 而避免使用 syslogd 的好處在於可以查找大量錯誤。 總結 其中,箭頭代表發送消息給目標進程或者將信息寫入目標文件。 圖1 Linux日誌系統 日誌管理及日誌保護 logrotate程序用來幫助用戶管理日誌文件,它以自己的守護進程工作。logrotate周期性地旋轉日誌文件,可以周期性地把每個日誌文件重命名 成一個備份名字,然後讓它的守護進程開始使用一個日誌文件的新的拷貝。在/var/log/下產生如maillog、maillog.1、 maillog.2、boot.log.1、boot.log.2之類的文件。它由一個配置文件驅動,該文件是 /etc/logroatate.conf。 以下是logroatate.conf文件例子: # see "man logrotate" for details # rotate log files weekly weekly #以7天為一個周期 # keep 4 weeks worth of backlogs rotate 4 #每隔4周備份日誌文件 # send errors to root errors root #發生錯誤向root報告 # create new (empty) log files after rotating old ones create #轉完舊的日誌文件就創建新的日誌文件 # uncomment this if you want your log files compressed #compress #指定是否壓縮日誌文件 # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own lastlog or wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 } # system-specific logs may be configured here 在網路應用中,有一種保護日誌的方式,在網路中設定一台秘密的syslog主機,把這台主機的網卡設為混雜模式,用來監聽子網內所有的syslog包,這 樣把所有需要傳送日誌的主機配置為向一台不存在的主機發送日誌即可。這樣即使黑客攻陷了目標主機,也無法通過syslog.conf文件找到備份日誌的主 機,那隻是一個不存在的主機。實際操作中還可以輔以交換機的配置,以確保syslog包可以被備份日誌主機上的syslog進程接受到。比如把 syslog.conf中的傳送日誌主機設為 @192.168.0.13,但實際網路中不存在這個日誌主機,實際可能是192.168.0.250或者其他主機正在接受syslog包。
『叄』 如何將Linux主機設置成syslog伺服器
鳥哥在書中介紹了這樣的一種環境。 辦公室內有10台Linux主機,每一台負責一個網路服務。為了無需登錄每台主機去查看登錄文件,需要設置一台syslog伺服器,其他主機的登錄文件都發給它。這樣做的話,只需要登錄到syslog伺服器上就能查看所有主機的登錄文件。 RedHat上的設置方法,鳥哥已經介紹了。 【伺服器端】step 1:查看伺服器是否開啟了UDP 514埠 grep '514' /etc/services step 2:修改syslogd的啟動設置文件/etc/sysconfig/syslog 將SYSLOGD_OPTIONS="-m 0"修改成SYSLOGD_OPTIONS="-m 0 -r" step 3:重啟syslogd服務 /etc/init.d/syslog restart 重啟後,你會發現UDP 514埠已經打開。 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:514 0.0.0.0:* 5628/syslogd 【客戶端】step 1:在/etc/syslog.conf中,添加下行。 user.* @192.168.0.Y # syslog伺服器的IP地址 在Ubuntu中配置syslogd伺服器的方法類似。 step 1:查看伺服器是否開啟了UDP 514埠,有下面一行說明埠514被打開,沒有需要加入 # grep '514' /etc/services 184:shell 514/tcp cmd # no passwords used 185:syslog 514/udp step 2: 修改/etc/init.d/sysklogd,將SYSLOGD=""修改成SYSLOGD=" -r" step 3: 修改/etc/default/syslogd,將SYSLOGD=""修改成SYSLOGD=" -r" step 4: 重啟服務 /etc/init.d/sysklogd restart step 5: 驗證 在/var/log/messages中找到 May 1 23:31:59 flagonxia-desktop syslogd 1.5.0#5ubuntu3: restart (remote reception) # netstat -tlunp 得到syslogd服務正在監聽埠514 udp 0 0 0.0.0.0:514 0.0.0.0:* 3912/syslogd step 6: 假設syslog伺服器的IP地址:192.168.1.25,在其他主機上的/etc/syslog.conf中加入 *.* @192.168.1.25 註:/etc/syslog.conf文件的解析日誌文件按/etc/syslog.conf 配置文件中的描述進行組織。下圖是/etc/syslog.conf 文件的內容:[root@localhost ~]# 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 # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg *# Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log syslog.conf 行的基本語法是: [ 消息類型][ 處理方案] 注意:中間的分隔符必須是Tab 字元!消息類型是由" 消息來源" 和" 緊急程度" 構成,中間用點號連接。例如上圖中,news.crit 表示來自news 的「 關鍵」 狀況。在這里,news是消息來源,crit 代表關鍵狀況。通配符* 可以代表一切消息來源。 說明:第一條語句*.info ,將info 級以上(notice,warning,err,crit,alert 與emerg )的所有消息發送到相應日誌文件。日誌文件類別(按重要程度分類)日誌文件可以分成八大類,下面按重要性從大到下列出:emerg emergency ,緊急alert 警報crit critical ,關鍵errerror ,錯誤warning 警告notice 通知info 信息debug 調試簡單列一下消息來源auth 認證系統,如login 或su ,即詢問用戶名和口令cron 系統執行定時任務時發出的信息daemon 某些系統的守護程序的 syslog ,如由in.ftpd 產生的log kern 內核的信息lpr 列印機的信息mail 處理郵件的守護進程發出的信息mark 定時發送消息的時標程序news 新聞組的守護進程的信息user 本地用戶的應用程序的信息uucp uucp 子系統的信息* 表示所有可能的信息來源處理方案" 處理方案" 選項可以對日誌進行處理。可以把它存入硬碟,轉發到另一台機器或顯示在管理員的終端上。處理方案一覽:文件名 寫入某個文件,要注意絕對路徑。 @ 主機名 轉發給另外一台主機的syslogd 程序。@IP 地址 同上,只是用IP 地址標識而已。/dev/console 發送到本地機器屏幕上。* 發送到所有用戶的終端上。 | 程序 通過管道轉發給某個程序。例如:kern.emerg /dev/console( 一旦發生內核的緊急狀況,立刻把信息顯示在控制台上) 說明: 如果想修改syslogd 的記錄文件,首先你必須殺掉syslogd 進程,在修改完畢後再啟動syslogd 。攻擊者進入系統後通常立刻修改系統日誌,因此作為網管你應該用一台機器專門處理日誌信息,其他機器的日誌自動轉發到它上面,這樣日誌信息一旦產生就立刻被轉移,這樣就可以正確記錄攻擊者的行為。
『肆』 配置Linux日誌文件
不要低估日誌文件對網路安全的重要作用,因為日誌文件能夠詳細記錄系統每天發生的各種各樣的事件,用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到攻擊、被入侵時追蹤攻擊者的蹤跡。日誌的兩個比較重要的作用是審核和監測。配置好的Linux的日誌非常強大。對於Linux系統而言,所有的日誌文件在/var/log下。默認情況下,Linux的日誌文件沒有記錄FTP的活動。用戶可以通過修改/etc/ftpacess讓系統記錄FTP的一切活動。
/etc/syslog.conf的格式
Linux系統的日誌文件是可以配置的,在前面的章節中已經介紹了如何定製Apache、wu-ftpd、Sendmail的日誌文件。Linux系統的日誌文件是由/etc/syslog.conf決定的,用戶有必要花時間仔細配置一下/etc/syslog.conf.下面是/etc/syslog.conf的範例:
# Log all kernel messages to the kernlog.
# Logging much else clutters up the screen.
kern.*/var/log/kernlog
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none
/var/log/messages
*.warning/var/log/syslog
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.*/var/log/maillog
# Log cron stuff
cron.*/var/log/cron
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg
# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit/var/log/spooler
# Save boot messages also to boot.log
local7.*/var/log/boot.log
# INN
news.=crit /var/log/news/news.crit
news.=err /var/log/news/news.err
news.notice /var/log/news/news.notice
.
可以看出,該配置文件的每一行的第一個欄位列出要被記錄的信息種類,第二個欄位則列出被記錄的位置。第一個欄位使用下面的格式:facility.level[;facility.level…]
此處的faciity是產生信息的系統應用程序或工具,level則是這個信息的重要程度。level的重要程度由低到高依次是:debug(調試消息)、info(一般消息)、notice(值得注意的消息)、warning(警告)、err(一般性錯誤)、crit(嚴重錯誤)、alert(或emerg,緊急情況)。
facility包含有:auth(認證系統,如login或su,即詢問用戶名和口令)、cron(系統執行定時任務時發出的信息)、daemon(某些系統的守護程序的syslog,如由in.ftpd產生的log)、kern(內核的信息)、lpr(列印機的信息)、mail(處理郵件的守護進程發出的信息)、mark(定時發送消息的時標程序)、news(新聞組的守護進程的信息)、user(本地用戶的應用程序的信息)、uucp(uucp子系統的信息)和「*」(表示所有可能的facility)。
將日誌文件記錄到遠程主機
如果有另一個Linux或UNIX系統,那麼可以配置日誌文件,讓其把消息發到另外一個系統並記錄下來。這也是為什麼上面的所有日誌文件都記錄了主機名的原因。要實現這個功能,在該配置文件中,指定一個記錄動作,後面接一個由「@」開頭的遠程系統的主機名,如下例:*.warn;authpriv.notice;auth.notice @bright.hacker.com.cn
同時,還要將接受消息的目的系統設置為允許這種操作。此例主機bright.hacker.com.cn的syslogd守護進程要用-r參數啟動。如果不使用-r參數,則目標主機的syslogd將丟棄這個消息以避免DoS攻擊使硬碟塞滿虛假消息。並且確保目標主機的/etc/service文件必須設置syslog服務所使用的UDP埠514(這也是RedHat Linux默認的設置)。如果syslogd守護進程用了-r和-h參數,那麼,參數-h將允許轉發消息。也就是說,如果系統B的syslogd用了-h參數,這樣,當系統A把消息轉發到系統B後,系統B就把來自系統A和它自己的消息轉發到系統C.
將警告信息發送到控制台
syslogd可以將任何從內核發出的重要程度為emerg或alert的信息發送到控制台。控制台是指虛擬控制台或啟動時加-C參數的xterm.要實現這一功能,在/etc/syslog.conf文件中加上下面一行:kern.emerg /dev/console
這樣,當系統內核發生錯誤而發出消息時,用戶能夠馬上知道並且進行處理。如果用了「*」,就是一旦內核發生錯誤,就將消息發送給所有在線用戶,但只有這個用戶正在登錄的時候才能看到。修改了/etc/syslog.conf文件後,必須重新啟動syslogd守護進程以使配置更改生效,請執行下面的命令:#/etc/rc.d/init.d/syslog restart
『伍』 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
『陸』 常用的linux命令
1、cd命令
這是一個非常基本,也是大家經常需要使用的命令,它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。如:
cd
/root/Docements # 切換到目錄/root/Docements
cd ./path #
切換到當前目錄下的path目錄中,「.」表示當前目錄
cd ../path #
切換到上層目錄中的path目錄中,「..」表示上一層目錄
2、ls命令
這是一個非常有用的查看文件與目錄的命令,list之意,它的參數非常多,下面就列出一些我常用的參數吧,如下:
-l
:列出長數據串,包含文件的屬性與許可權數據等
-a
:列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)
-d
:僅列出目錄本身,而不是列出目錄的文件數據
-h
:將文件容量以較易讀的方式(GB,kB等)列出來
-R
:連同子目錄的內容一起列出(遞歸列出),等於該目錄下的所有文件都會顯示出來
註:這些參數也可以組合使用,下面舉兩個例子:
ls -l
#以長數據串的形式列出當前目錄下的數據文件和目錄
ls -lR
#以長數據串的形式列出當前目錄下的所有文件
3、grep命令
該命令常用於分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等,它的簡單語法為
grep [-acinv]
[--color=auto] '查找字元串' filename
它的常用參數如下:
-a
:將binary文件以text文件的方式查找數據
-c
:計算找到『查找字元串』的次數
-i
:忽略大小寫的區別,即把大小寫視為相同
-v
:反向選擇,即顯示出沒有『查找字元串』內容的那一行
# 例如:
#
取出文件/etc/man.config中包含MANPATH的行,並把找到的關鍵字加上顏色
grep --color=auto
'MANPATH' /etc/man.config
# 把ls
-l的輸出中包含字母file(不區分大小寫)的內容輸出
ls -l | grep -i
file
4、find命令
find是一個基於查找的功能非常強大的命令,相對而言,它的使用也相對較為復雜,參數也比較多,所以在這里將給把它們分類列出,它的基本語法如下:
find [PATH]
[option] [action]
# 與時間有關的參數:
-mtime n :
n為數字,意思為在n天之前的「一天內」被更改過的文件;
-mtime +n :
列出在n天之前(不含n天本身)被更改過的文件名;
-mtime -n :
列出在n天之內(含n天本身)被更改過的文件名;
-newer file :
列出比file還要新的文件名
# 例如:
find /root -mtime
0 # 在當前目錄下查找今天之內有改動的文件
# 與用戶或用戶組名有關的參數:
-user name :
列出文件所有者為name的文件
-group name :
列出文件所屬用戶組為name的文件
-uid n :
列出文件所有者為用戶ID為n的文件
-gid n :
列出文件所屬用戶組為用戶組ID為n的文件
# 例如:
find
/home/ljianhui -user ljianhui # 在目錄/home/ljianhui中找出所有者為ljianhui的文件
# 與文件許可權及名稱有關的參數:
-name filename
:找出文件名為filename的文件
-size [+-]SIZE
:找出比SIZE還要大(+)或小(-)的文件
-tpye TYPE
:查找文件的類型為TYPE的文件,TYPE的值主要有:一般文件(f)、設備文件(b、c)、
目錄(d)、連接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode
:查找文件許可權剛好等於mode的文件,mode用數字表示,如0755;
-perm -mode
:查找文件許可權必須要全部包括mode許可權的文件,mode用數字表示
-perm +mode
:查找文件許可權包含任一mode的許可權的文件,mode用數字表示
# 例如:
find / -name
passwd # 查找文件名為passwd的文件
find . -perm 0755
# 查找當前目錄中文件許可權的0755的文件
find . -size +12k
# 查找當前目錄中大於12KB的文件,注意c表示byte
5、cp命令
該命令用於復制文件,之意,它還可以把多個文件一次性地復制到一個目錄下,它的常用參數如下:
-a :將文件的特性一起復制
-p
:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份
-i
:若目標文件已經存在時,在覆蓋時會先詢問操作的進行
-r
:遞歸持續復制,用於目錄的復制行為
-u
:目標文件與源文件有差異時才會復制
例如 :
cp -a file1 file2
#連同文件的所有特性把文件file1復製成文件file2
cp file1 file2
file3 dir #把文件file1、file2、file3復制到目錄dir中
6、mv命令
該命令用於移動文件、目錄或更名,move之意,它的常用參數如下:
-f
:force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i
:若目標文件已經存在,就會詢問是否覆蓋
-u
:若目標文件已經存在,且比目標文件新,才會更新
註:該命令可以把一個文件或多個文件一次移動一個文件夾中,但是最後一個目標文件一定要是「目錄」。
例如:
mv file1 file2
file3 dir # 把文件file1、file2、file3移動到目錄dir中
mv file1 file2 #
把文件file1重命名為file2
7、rm命令
該命令用於刪除文件或目錄,remove之間,它的常用參數如下:
-f
:就是force的意思,忽略不存在的文件,不會出現警告消息
-i
:互動模式,在刪除前會詢問用戶是否操作
-r
:遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數
例如:
rm -i file #
刪除文件file,在刪除之前會詢問是否進行該操作
rm -fr dir #
強制刪除目錄dir中的所有文件
8、ps命令
該命令用於將某個時間點的進程運行情況選取下來並輸出,process之意,它的常用參數如下:
-A :所有的進程均顯示出來
-a
:不與terminal有關的所有進程
-u :有效用戶的相關進程
-x
:一般與a參數一起使用,可列出較完整的信息
-l
:較長,較詳細地將PID的信息列出
其實我們只要記住ps一般使用的命令參數搭配即可,它們並不多,如下:
ps aux #
查看系統所有的進程數據
ps ax #
查看不與terminal有關的所有進程
ps -lA #
查看系統所有的進程數據
ps axjf #
查看連同一部分進程樹狀態
9、kill命令
該命令用於向某個工作(%jobnumber)或者是某個PID(數字)傳送一個信號,它通常與ps和jobs命令一起使用,它的基本語法如下:
kill -signal PID
signal的常用參數如下:
註:最前面的數字為信號的代號,使用時可以用代號代替相應的信號。
1:SIGHUP,啟動被終止的進程
2:SIGINT,相當於輸入ctrl+c,中斷一個程序的進行
9:SIGKILL,強制中斷一個進程的進行
15:SIGTERM,以正常的結束進程方式來終止進程
17:SIGSTOP,相當於輸入ctrl+z,暫停一個進程的進行
例如:
#
以正常的結束進程方式來終於第一個後台工作,可用jobs命令查看後台中的第一個工作進程
kill -SIGTERM
%1
#
重新改動進程ID為PID的進程,PID可用ps命令通過管道命令加上grep命令進行篩選獲得
kill -SIGHUP PID
10、killall命令
該命令用於向一個命令啟動的進程發送一個信號,它的一般語法如下:
killall [-iIe]
[command name]
它的參數如下:
-i
:互動式的意思,若需要刪除時,會詢問用戶
-e :表示後面接的command
name要一致,但command name不能超過15個字元
-I :命令名稱忽略大小寫
# 例如:
killall -SIGHUP
syslogd # 重新啟動syslogd
11、file命令
該命令用於判斷接在file命令後的文件的基本數據,因為在Linux下文件的類型並不是以後綴為分的,所以這個命令對我們來說就很有用了,它的用法非常簡單,基本語法如下:
file filename
#例如:
file ./test
12、tar命令
該命令用於對文件進行打包,默認情況並不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓。它的常用參數如下:
-c :新建打包文件
-t
:查看打包文件的內容含有哪些文件名
-x
:解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中
-j
:通過bzip2的支持進行壓縮/解壓縮
-z
:通過gzip的支持進行壓縮/解壓縮
-v
:在壓縮/解壓縮過程中,將正在處理的文件名顯示出來
-f filename
:filename為要處理的文件
-C dir
:指定壓縮/解壓縮的目錄dir
上面的解說可以已經讓你暈過去了,但是通常我們只需要記住下面三條命令即可:
壓縮:tar -jcv -f
filename.tar.bz2 要被處理的文件或目錄名稱
查詢:tar -jtv -f
filename.tar.bz2
解壓:tar -jxv -f
filename.tar.bz2 -C 欲解壓縮的目錄
註:文件名並不定要以後綴tar.bz2結尾,這里主要是為了說明使用的壓縮程序為bzip2
13、cat命令
該命令用於查看文本文件的內容,後接要查看的文件名,通常可用管道與more和less一起使用,從而可以一頁頁地查看數據。例如:
cat text | less #
查看text文件中的內容
# 註:這條命令也可以使用less
text來代替
14、chgrp命令
該命令用於改變文件所屬用戶組,它的使用非常簡單,它的基本用法如下:
chgrp [-R]
dirname/filename
-R
:進行遞歸的持續對所有文件和子目錄更改
# 例如:
chgrp users -R
./dir # 遞歸地把dir目錄下中的所有文件和子目錄下所有文件的用戶組修改為users
15、chown命令
該命令用於改變文件的所有者,與chgrp命令的使用方法相同,只是修改的文件屬性不同,不再詳述。
16、chmod命令
該命令用於改變文件的許可權,一般的用法如下:
chmod [-R] xyz
文件或目錄
-R:進行遞歸的持續更改,即連同子目錄下的所有文件都會更改
同時,chmod還可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(刪除)、=(設置)跟rwx搭配來對文件的許可權進行更改。
# 例如:
chmod 0755 file #
把file的文件許可權改變為-rxwr-xr-x
chmod g+w file #
向file的文件許可權中加入用戶組可寫許可權
18、vim命令
該命令主要用於文本編輯,它接一個或多個文件名作為參數,如果文件存在就打開,如果文件不存在就以該文件名創建一個文件。vim是一個非常好用的文本編輯器,它裡面有很多非常好用的命令,在這里不再多說。你可以從這里下載vim常用操作的詳細說明。
19、gcc命令
對於一個用Linux開發C程序的人來說,這個命令就非常重要了,它用於把C語言的源程序文件,編譯成可執行程序,由於g++的很多參數跟它非常相似,所以這里只介紹gcc的參數,它的常用參數如下:
-o
:output之意,用於指定生成一個可執行文件的文件名
-c
:用於把源文件生成目標文件(.o),並阻止編譯器創建一個完整的程序
-I :增加編譯時搜索頭文件的路徑
-L
:增加編譯時搜索靜態連接庫的路徑
-S :把源文件生成匯編代碼文件
-lm:表示標准庫的目錄中名為libm.a的函數庫
-lpthread
:連接NPTL實現的線程庫
-std=
:用於指定把使用的C語言的版本
# 例如:
#
把源文件test.c按照c99標准編譯成可執行程序test
gcc -o test
test.c -lm -std=c99
#把源文件test.c轉換為相應的匯編程序源文件test.s
gcc -S test.c
20、time命令
該命令用於測算一個命令(即程序)的執行時間。它的使用非常簡單,就像平時輸入命令一樣,不過在命令的前面加入一個time即可,例如:
time ./process
time ps aux
在程序或命令運行結束後,在最後輸出了三個時間,它們分別是:
user:用戶CPU時間,命令執行完成花費的用戶CPU時間,即命令在用戶態中執行時間總和;
system:系統CPU時間,命令執行完成花費的系統CPU時間,即命令在核心態中執行時間總和;
real:實際時間,從command命令行開始執行到運行終止的消逝時間;
來自 <https://www.cnblogs.com/yunliu0603/p/10118189.html>
『柒』 為什麼 Linux 好多命令都帶字母 d
syslogd就是syslog服務daemon
httpd就是http服務daemon
按這個節奏理解就行
『捌』 linux中怎麼終止正在運行的進程
Linux中終止一個正在運行運行的進程最常用的是kill命令,它是用進程PID作為參數來殺死進程。那如何獲得指定進程的PID呢?用pidof命令啊。比如獲取syslogd進程PID的命令是:pidof syslogd。知道了進程PID,就可以用kill命令終止它了:
kill -9 PID號碼
或者kill -2 PID號碼
-9參數是強制結束進程,而-2參數是相當於用鍵盤組合鍵Ctrl+C的方式正常結束進程,兩種方式可以根據進程的運行情況來用。
終止進程還可以選擇killall命令,顧名思義就是殺死所有以某個命令啟動的所有進程(以殺死httpd命令啟動的所有進程為例):
killall -9 httpd
『玖』 linux的日誌監控程序默認開啟嗎那開啟的命令是啥
cat /var/log/*.log
如果日誌在更新,如何實時查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會直接返回命令行,而是實時列印日誌文件中新增加的內容,這一特性,對於查看日誌是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
在Linux系統中,有三個主要的日誌子系統:
連接時間日誌--由多個程序執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
進程統計--由系統內核執行。當一個進程終止時,為每個進程往進程統計文件(pacct或acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤日誌--由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日誌。像HTTP和FTP這樣提供網路服務的伺服器也保持詳細的日誌。
常用的日誌文件如下:
access-log 紀錄HTTP/web的傳輸
acct/pacct 紀錄用戶命令
aculog 紀錄MODEM的活動
btmp紀錄失敗的紀錄
lastlog紀錄最近幾次成功登錄的事件和最後一次不成功的登錄
『拾』 用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文件中, 這主要是和系統中定期執行的任務相關的信息.