記錄檔設定 syslog , logrotate 介紹

copy from http://canred.blogspot.tw/2013/03/logrotate.html

在各種作系統中有,有效的紀錄是不可缺的,記錄可以讓我們知道事件發生的過程,以及系統處理的方式。對於記錄,我們必須針對性質與嚴重性加以分類,而紀錄在特定的檔案之中。

  • syslog.conf
    • /etc/syslog.conf 是 syslogd 這個常駐程式的主要設定檔,它可以記錄linux的系統資訊,並且分類紀錄到各個檔案之中。
    • 每一個規則包含2個欄位,第1個欄位是訊息的種類,第2個欄位是動作,也就是記錄的方式。2個欄位中間可用空白或是<tab>鍵分隔。以#開頭的一行會被忽略。訊息的種類當中,包含了2個資訊,1是訊息的種類,另1個是嚴重性,當者以 . 分隔;如下所示
      • mail.none
        • 訊息的種類包含了下列的關鍵字。auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security(the same as auth),syslog,user,uucp,local0~local7
          • authpriv:登入系統的訊息,包含管理者首一般使用者的帳號;將消息記錄到只有相關用戶能讀取的文件內
          • cron:計時器的訊息
          • daemon:各種常駐服務程式
          • kern:系統核心
          • local7:開機系統啟動的訊息
          • lpr:列印指令的訊息
          • mail:電子郵件的訊息
          • news:新聞伺服器的訊息
          • user:使用者相關訊息
          • uucp:UNIX-toUNIX Copy Protocol之訊息
          • auth:與用戶登錄,驗証密碼有關的訊息
          • mark:定時發陝消息的時標程式
          • ftp:與ftp守護進程有關的消息
          • ntp:與網絡時間協議相關的消息
        • 嚴重性則包含:debug->info->notice->warning->warn->err->error->crit->alert->emerg->panic ; 
          • 在設置級別的時侯通常不要使用err以下的級別,否則可能大量的消息很快就充滿整個disk,並且還會引起系統性能下降。
          • 還有一個none的級別表程式中未給出選擇的偽級別
        • 如果使用*,則表示所有的種類,或是所有的嚴重性。如mail.*,*.err,*.*
        • 如果有多個重類期嚴重性相同,且使用相同的動作,可用逗號隔開。如
          • uucp,news.crit
        • 若多個種類其嚴重性不全相同,且使用相同的動作,可用分號隔開。如:
          • *.info;mail.none;authpriv.none;cron.none    /var/log/messages
        • news.=err                /var/log/news.err
          • 把關於新聞伺服器的訊息,只要優先權等於會誤的訊息記錄到/var/log/news.err中
        • cron.*  /var/log/cron
          • 所有來於cron的程序消息放入/var/log/cron的檔案中
        • *.info;mail.none;authprive.none;cron.none  /var/log/message
          • *.info表示所有的大於info的消息會記錄到/var/log/message中,其他的mail如上項目雷同。
        • mail.*     @192.168.1.10
          • 將消息發送到192.168.1.10的伺服器上
        • mail.*     @ServerName
        • authprive.*;authprive.!=info       /var/log/authprive.log
          • 將登入系統的所有訊息,統統記錄在此檔案,但是對包含優先權為info的。
    • 日誌消息的格式
      • time        hostname        process    version:informat
        • time:產生的時間
        • hostname:產生日誌的主機
        • process:產生日誌的應用程序
        • version:產生此日誌的應用程序或系統服務版本號
        • infomation:內容
    • 發出消息/記錄/日誌 logger 指令
        • logger [option] message
        • i:使用logger的pid作為消息的pid
        • p:使用指定選擇域
        • t:使用指定進程的名稱
      • sample
        • logger -i -p local7.err test.sh "Canred Test"
    • 在以上的動作是寫到記錄檔,但這個紀錄檔並不一定是真實的檔案,有可能是終端機,可能是別台主機etc。
      • 本機的檔案
        • /var/log/maillog
      • 終端機或是主機前的console
        • /dev/console , /dev/pts/0
      • 遠端的主機
        • @canredHome

再下來就要介紹一下logrotate了
日誌輪循logrotate,隨著時間越來越長syslogd將新篩選的日誌消息不斷地寫入指定的文件未尾。日誌文件會變得越來越長,占用的disk空間也越來越多。另一方面,如果系統管理員要查看娛一時刻的日誌消息,太大也不便查看,這時就要有一個日誌輪循的功能啦…

  • logrotate是一個循環、壓縮、以及郵寄系統記錄檔的系統程式。
    • 語法如下:logrotate [-dv] [-f] [-s] config_file +
    • 例如執行default的/etc/logrotate.conf,可以執行下行指令
      • logrotate /etc/logrotate.conf
  • logrotate是設計來簡化系統產生的龐大紀錄檔案,它允許自動的循環使用、壓縮、移動以及郵寄記錄檔,當紀錄檔太大時,可以每天、每週、每月的管理
  • 一般面言,logrotate可視為每天執行的例行性工作,其功能如下:
    • -d:開啟除錯模式。在除錯模式之下,紀錄檔將不會有任何的改變
    • -f:強制模制。告訴logrotate強迫循環,即使logrotate本身認為並不需要
    • -m:寄信。告訴logrotate用什麼指令去寄出紀錄檔
    • -s:告訴logrotate使用一個交換狀態的紀錄檔。當我們使用不同的帳號來設定多樣的紀錄檔,這是有用的。預設的狀態紀錄在/var/lib/logrotate/status。
    • –usage:使用量,列出使用者的狀態。
  • 範例1(以下是程式碼哦)
#紀綠檔在循環過後將被壓縮。

compress

#要撐握 /var/log/message 的記錄檔,紀錄再經過5週的循環後將被移除,也
#就是說備存5週,並且在循環後,系統會透過/sbin/killall -HUP syslogd的指令
#來重新啟動syslogd服務

/var/log/message {
    rotate 5
    weekly
    postrotate
    /sbin/killall -HUP syslogd
    endscript 
#設定2個紀錄檔案的規則;這2個檔案將進行循環當內容達到100k的時侯,並且
#在遍環5次時,會將檔案寄給管理者,並移除檔案
"/var/log/httpd/access.log" /var/log/httpd/error.log {
    rotate 5
    mail canred.chen@gmail.com
    size=100k
    sharedscripts
    postrotate
    /sbin/killall -HUP httpd
    endscript
#當中每個檔案都是以一個月為基底來做遍環。這被考慮成一個單獨的循環目錄,
#且若是錯誤發生超過1個檔案,亡錄檔將不會被壓縮
#在使用*字元時要特別小心,因為是循環所有檔案
/var/log/news/* {
    monthly
    rotate 2
    olddir /var/log/news/old
    missingok
    postrotate
    kill -HUP `cat /var/run/inn.pid`
    endscript
    nocompress
  • 範例2(底下將列出並說明RedHat9中的/etc/logrotate.conf),以下內容是一體看的哦
    • weekly
      • 每週循環一次日誌檔的相關紀紀錄
    • rotate 4
      • 最多保留4週
    • create
      • 清除舊的日誌檔時,會自動產生新的日誌檔
    • compress
      • 將紀錄檔壓縮
    • include /etc/logrotate.d
      • RPM的套件會將相關設定檔置於/etc/logrotate.d/之下
    • /var/log/wtmp{
    •     monthly
    •     carete 0644 root utmp
    •     rotate 1

—-編輯紀錄

  • 2013/4/24:
    • syslog.conf 訊息種類的設定方式還可以加上"=","!"的用法

Read more

如何在Raspberry Pi4上安裝Proxmox for ARM64

第一步 準備好Raspberry Pi 4 / CM4 4GB RAM,這裡要留意CM4如果是買有內建eMMC storage會限制不能使用SD卡開機而限制本地空間容量,如果沒有NAS外接空間或使用USB開機的話,建議買CM4 Lite插上大容量SD卡 第二步 去Armbian官網下載最小化Debian bookworm image https://www.armbian.com/rpi4b/ Armbian 25.2.2 Bookworm Minimal / IOT 然後寫入SD/USB開機碟,寫入方法參考官方文件 https://github.com/raspberrypi/usbboot/blob/master/Readme.md Note: 官方提供的預先設定系統方法,可以在Armbian初次啟動自動化完成系統設定。連結在此 https://docs.armbian.com/User-Guide_Autoconfig/

By Phillips Hsieh

世界越快心越慢

在晚飯後的休息時間,我特別享受在客廳瀏灠youtube上各樣各式創作者的影音作品。很大不同於傳統媒體,節目多是針對大多數族群喜好挑選的,在youtube上我會依心情看無腦的動畫、一些旅拍記錄、新聞時事談論。 尤其在看了大量的Youtube的分享後,我真的感受到會限制我的是我的無知,特別是那些我想都沒想過的實際應用,在學習後大大幫助到我的生活和工作層面。 休息在家時,我喜歡想一些沒做過的菜,動手去設計生活和工作上的解決方案,自己是真的很難閒著沒事做。 如創作文章,陪養新的習慣都能感覺到成長的喜悅,是不同於吃喝玩樂的快樂的。 創作不去限制固定的形式,文字是創作、影像聲音也是創作,記錄生活也是創作,我想留下的就是創造—》實現—》回憶,這樣子的循環過程,在留下的足跡面看到自己一路上的成長、失敗、絕望、重新再來。 雖然大部份的時候去做這些創作也不明白有什麼特別的意義,但不去做也不會留下什麼,所以呀不如反事都去試試看,也許能有不一樣的水花也許有意想不到的結果,投資自己永遠不會是失敗的決定,不是嗎?先問問自己再開始計畫下一步,未來沒人說得準。 像最近看youtube仍大一群人在為DOS開

By Phillips Hsieh

知識管理的三個步驟:一小時學會把知識運用到生活上

摘錄瓦基「閱讀前哨站」文章作為自己學習知識管理的內容 Part1「篩選資訊」 如何從海量資訊中篩選出啟發性、實用性和相關性的精華,讓你在學習過程中不再迷失方向。 1. 實用性 2. 啟發性 Part2「提高理解」 如何通過譬喻法和應用法,將抽象的知識與日常生活和工作緊密結合,建立更深刻的理解。 1. 應用法 2. 譬喻法 Part3「運用知識」 如何連結既有知識,跟自己感興趣的領域和專案產生關聯,讓你在運用知識的路途上游刃有餘。 1. 跟日常工作專案、人際活動產生連結 # 為什麼要寫日記? * 寫日記是為了忘記,忘卻瑣碎事情,保持專注力 * 寫日記就像在翻譯這個世界,訓練自己的解讀能力 * 不只是透過日記來記錄生活,而是透過日記來發展生活 #如何寫日記? * 不要寫流水帳式的日記,而是寫覆盤式的日記 當我們試著記錄活動和感受之間的關聯,有助於辦認出真正快樂的事 日記的記錄方式要以過程為主,而非結果 * 感恩日記的科學建議,每日感恩的案例

By Phillips Hsieh
2024年 3月30日 14屆美利達環彰化百K

2024年 3月30日 14屆美利達環彰化百K

這是場半小時就被秒報名額滿的經典賽事, 能順利出賽實屬隊友的功勞, 這次的準備工作想試試新買的外胎, 因為是無內胎用的外胎, 特別緊超級難安裝的, 問了其他朋友才知道, 要沾上肥皂水才容易滑入車框。 一早四點起床準備, 五點集合備好咖啡在車上飲用, 約了六點在彰化田尾鄉南鎮國小, 整好裝四人一起出發前往會場。 被排在最後一批出發, 這次的路線會繞行的員林148上139縣道, 其實在早上五點多天就開始有點飄雨, 大伙就開始擔心不會要雨戰吧! 果不其然才出發準備上148爬坡雨勢越來越大, 戴著防風眼鏡的我在身體的熱氣加上雨水冷凝效果下, 鏡面上滿是霧氣肉眼可視距離才剩不到五公尺, 只能緊依前前方的車友幫忙開路, 之後洪大跟上來我立馬請求他幫忙開路, 上了139停下車把防風眼鏡收起來, 反正下雨天又陰天完全用不到太陽眼鏡了。 雨是邊下邊打雷, 大伙都在這條139上一台一台單車好像避電針, 一時有點害怕不然想平時沒做什麼壞事, 真打到自己就是天意了。 下了139雨勢開始變小, 大伙的速度開始有所提昇, 開高鐵列車的時機己成熟, 物色好列車就跟好跟滿。 最後找了一隊似乎整團有固定在練

By Phillips Hsieh