Bash shell 的 date 印出「年月日時分秒」的參數

Linux 的 Bash Shell 很常會使用到 date 的命令,特別是用到備份、某些固定時間該做的處理等等,參數是哪些呢?

每次都是去 man date 來查看這個參數(因為會有大小寫不同,24hr、前面補0 等不同),在此紀錄最常用的年月日參數,並把跟 awk 搭配的方式列出來。

閱讀全文〈Bash shell 的 date 印出「年月日時分秒」的參數〉

lnav:Linux 的 Log 檢視器 Log File Navigator

lnav (Log File Navigator) 是看 Log 檔的檢視工具,從最粗簡的來說,lnav 可以將 Log 檔著色,把資料欄位區隔出來,再來深入可以將 Log 檔做整合,做些過濾等等的事情。

閱讀全文〈lnav:Linux 的 Log 檢視器 Log File Navigator〉

tail 遠端多台機器 Log 檔的工具

遠端機器很多,或者機器有多台,但是想要將 Log 檔靠 tail 一起持續觀看(ex: 看每台的 syslog.. 等),可以使用下述程式:

  • monkeytail - tail variant designed for web developers monitoring logfiles

閱讀全文〈tail 遠端多台機器 Log 檔的工具〉

依照時間來刪除非固定檔名的 Apache2 Log 檔

依照此篇作法:Apache Log檔 使用日期格式 當 檔名設定,客製化 Log 檔名,卻會造成檔名砍不乾淨的問題,要怎麼正確清掉過期得檔案呢?

閱讀全文〈依照時間來刪除非固定檔名的 Apache2 Log 檔〉

目錄權限修改造成 Logrotate 失敗的修復步驟

Log (/var/log/apache2) 的資料夾權限變更,造成 Logrotate 的時候無法 rotation,錯誤訊息如下:

error: skipping "/var/log/apache2/access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

要如何修正此問題呢?

註:Logrotate 的權限一定是夠,所以不是權限不夠的問題。

閱讀全文〈目錄權限修改造成 Logrotate 失敗的修復步驟〉

Apache Log檔 使用日期格式 當 檔名設定

Apache 預設的 Log 檔是存成: access.log、error.log, 再經過 Log rotation 的話, 會變成如下:

access.log.1
access.log.2.gz
access.log.3.gz
...

如果想要依照日期來產生 log 檔(ex: access-2014-08-01.log), 要如何做呢?

閱讀全文〈Apache Log檔 使用日期格式 當 檔名設定〉

Apache Log Rotation 的運行方式

Apache 預設設定會每周運行 Log Rotation, 會產生如下述的檔案:

  • /var/log/apache2/access.log.1
  • /var/log/apache2/access.log.2.gz
  • /var/log/apache2/access.log.3.gz

那這 Log rotate 時, 程式做了哪些事情呢?

註: 嚴格講, 不是 Apache run Log rotate 的, 但是此篇主要只是要知道 Log rotate 時有做哪些事情就好.

閱讀全文〈Apache Log Rotation 的運行方式〉

Apache2 關閉 VirtualHost 的 Log 記錄

Web server(ex: Apache2、Nginx..) 的存取留下 Log 可以觀察很多東西、追蹤、找問題 等等, 但是量太大的時候, 另外一個困擾也會出現, IO 吃緊, Loading 隨著飆高.

查官方網頁的說明: Log Files - Apache HTTP Server, 居然找不到關閉的方法. XD

於 Apache2 想要將 VirtualHost 內某個 Domain 的 Log 記錄關掉, 要如何做呢?

閱讀全文〈Apache2 關閉 VirtualHost 的 Log 記錄〉