檢視 Linux 是實體主機還是 VPS

現在的 VPS 十分流行, 如果要在遠端知道現在用的主機是實體主機還是 VPS, 有很多種工具可以實現, 以下是大多數 Linux 發行版內建的 dmidecode 的檢視方法, dmidecode 是可以找出系統硬碟資訊的工具。 要檢查統是否 VPS 可以用以下指令: /opencli.com/terminal $ sudo dmidecode -s system-manufacturer Dell Inc. 如果是實體主機, 會回傳主機廠商的名稱, 上面以 Dell Server …

Python 實現 grep 檔案功能

Linux 下的 grep 指令可以搜尋檔案或 Pipe 輸入的內容,以下是在 Python 要實現 grep 基本搜尋功能的寫法: 以上程式會搜尋 /var/log/nginx/access.log 檔案內,包括 “admin” 的行並印出。 註:由於 WordPress 及 Crayon Syntax Highlighter 相容性問題 如果複製上面的程式碼,第 9 行的 “>” 是全形字符,需要自行改成普通的 “>” 如果將程式改寫一下,可以將程式碼寫入 …

RHEL / CentOS 7 升級 MariaDB 到 10.5

RHEL 及 CentOS 7 預設的 MariaDB 版本是仍然停留在 5.5。MariaDB 10 是以 MySQL 5.5 為基礎, 加上移植自 MySQL 5.6 的功能和自行開發的新功能。 以下是在 CentOS 7 升級到 MariaDB 10.5, 以及將舊有資料轉移的步驟: 首先確認目前安裝的 MariaDB 版本, 如果是透過預設的 YUM …

記錄檔管理工具 – logrotate

記錄檔在遇到問題時, 對於找出出問題及除錯十分有用。但由於記錄檔不斷儲存後, 所佔用的硬碟空間會越來越多, 所以便有了紀錄檔輪替的工具, 而 logrotate 便是 RHEL / CentOS 下的預設記錄檔輪替工具。 logrotate 預設會每天自動執行, 執行時會根據設定檔 /etc/logrotate.conf 對指定的記錄檔輪替, 可以是每天、每星期、按檔案大小等自動輪替, 以及會舊有的記錄檔會保存多久。 /etc/logrotate.conf 內設定了會 include 目錄 /etc/logrotate.d 的檔案, 可以將個別記錄檔的輪替設定, 在這個目錄建立新的檔案設定, 對日後的管理也較方便。 以 httpd …

Python fileinput 模組

Linux 下很多系統管理的工作都會涉及讀取檔案的內容, 在 Python 下可以透過多個方法開啟檔案、讀取 Pipe 及以參數方式讀取檔案。 fileinput 是 Python 的內建模組, 它可以用很簡單的方法, 實現以上的工作。fileinput 模組提供處理一個或多個檔案的功能, 可以是透過 Pipe 輸入、用參數方法指定檔案, 或者在程式碼指定檔案也可以。 以下是 fileinput 模組的使用例子: 看到上面的程式碼很簡單, 但已經可以將 Pipe 及 參數輸入的檔案讀取, 並逐行印出, 例如: $ …

Python 讀取 Pipe 輸入

在 Unix Like 環境下的 Pipe (管線) 十分重要, 它可以將一個程式的輸出, 送給另一個程式處理, 只要中間用 “|” 字符相隔, 讓幾個不同的程式互相配合工作, 以下本章會介紹在 Python 讀取 Pipe 輸入的方法. 在 Python 要讀取 Pipe 輸入, 可以用 sys 模組的 sys.stdin, 它會讀取 /dev/stdin …

RRD 修改舊資料數值

RRD 是十分好用的統計工具,很多伺服的監測也會使用 RRD。 今天發現 RRD 內的一組數據紀錄出錯,但 RRD 內建並沒有修改舊數據的功能,需要將 RRD 資料庫備份成 XML 檔,修改 XML 檔後,再復原到資料庫,以下是修改的方法,在這裡記錄一下。 1. 例如要修改數據的 RRD 檔是 /usr/local/rrd/file.rrd, 先用 rrdtool 的 dump 功能,將 RRD 的資料匯出成 XML 檔: # …

免費下載及更新 RHEL 8

因為 RHEL 需要收費, 很多人也會用 CentOS 代替 RHEL。以下會示範免費下載 RHEL 及更新的方法。 下載 RHEL 8 ISO 要免費下載 RHEL 8 的 ISO 檔, 可以進入 Reh Hat Developer 頁面, 註冊一個帳號。註冊完成後, 會收到一封確認電郵, 按下確認電郵的連結便註冊完成了. 註冊完成後, 進入 …

經濟簡單, DIY 遮光布天台隔熱

一到夏天, 對於我是很痛苦時間, 因為我住在村屋頂樓, 如果沒有開冷氣, 即使用風扇對著吹, 也只感覺到暖風。 今年在夏天來臨前搜尋各種天台的隔熱方法, 比較後決定架設遮光布, 這種方法既經濟實惠, 而是在冬天不熱的時候, 或者打風前要拆下遮光布也很方便。 支架在淘寶找到這種歐標 8080 鋁製的柱: 選用這種柱的原因, 是日後可以很容易調較遮光在的高度, 而且只要加裝滑塊螺絲, 在每條坑內也可以安裝太陽能燈等設備。 今天全部材料也在淘寶訂, 包括 1 塊遮光布, 2 枝長及 2 枝短的鋁製柱, 每枝鋁柱的地腳, 各種不锈鋼滑及塊螺絲等其他五金配件, 連同運費大約 …

Python 用 sys.argv 讀取指令行的參數

執行指令時, 可以在程式後加入一些參數, 這些參數會傳送給程式。在 Python 要讀取這些指令的參數。 sys 模組 sys 模組提供多個 Python 執行時的環境變數, 而 sys.argv() 是儲存執行指令的陣列, 第一個元素是程式本身。 以下是程式碼的寫法: 以上程式碼會印出執行程式的名稱, 配合 len() 函式, 可以知道指令輸入了多少個參數。以下是配合使用 len() 函式, 把輸入的參數印出: