Author: Sam Tang

手動設定網址與 IP 對應 — /etc/hosts

Unix Like 系統在向 DNS 查詢網址與 IP 對應前, 會先查詢檔案 /etc/hosts 的內容, 下文會介紹 Linux 的 /etc/hosts 檔案, 及手動設定網址與 IP 對應的方法。 方法同樣適用於 Mac OS X 及 Windows, 格式是一樣的, 只是檔案位置不同, 它們的位置在: Linux: /etc/hosts Mac …

防止 Shell Script 重複執行

Shell Script 對日常系統維護很實用,對於多用戶系統,Shell Script 經常面對一個問題是重複執行,即一個 Shell Script 正在執行時,避免另一個使用者執行。另一個情況是,當 Shell Script 變得複雜及龐大時,放到 crontab 定時執行時 (例如每分鐘執行一次),Shell Script 還未完成上次的執行,就重複自動執行一次。 要防止 Shell Script 重複執行,一般上會用 lock file 及 PID 的方法,不論是 lock file 還是 PID,除了用 Bash …

解決 bash: scp: command not found lost connection

scp 可以在透過 SSH 加密下, 在本機或兩台主機間複製檔案, 今天執行 scp 時出現以下錯誤: 主機原來已經有安裝 scp, 為何會出現 “command not found” 呢? 而且如果沒有安裝 scp, 應該不會出現要我輸入遠端主機密碼的提示, 再細心想一想, 原來只是自己太大意。scp 在兩台主機間複製檔案時, 需要在兩邊都有安裝好 scp, 而遠端主機是新安裝的, 沒有安裝 scp. 用 SSH 登入遠端主機, …

解決 Nginx 504 Gateway Time-out

當 Nginx 發生 504 Gateway Time-out 時, 一般上原因是一些程式執行需時較長時間, 當執行時間超出 Nginx 的限制時, 便會出現 504 Gateway Time-out 問題, 如果排除了程式上的問題, 解決方法是將執行時限延長 (或者升級主機的硬體也可以)。 首先開啟 Nginx 的網站設定檔, Nginx 將網站設定檔都放在 /etc/nginx/ 目錄下, 下面以 www.phpini.com 為例: # …

MySQL 檢查欄位是否 NULL 或空白

有時需要在 MySQL 資料庫內,檢查欄位的值是否 NULL,這個可以使用 MySQL 內建檢查 NULL 的功能,分別是 “IS NULL” 及 “IS NOT NULL”, 以下是用法: select 資料表 table_name,欄位 col_name 是 NULL 的紀錄: select 資料表 table_name,欄位 col_name 不是 NULL 的記錄: …

rsync 透過 SSH 傳送檔案

rsync 是十分好用的同步備份工具,rsync 預設傳輸時不會加密,但其實 rsync 是支援 SSH 傳輸檔案,以下是 rsync 透過 SSH 同步檔案的方法: 從本機用 rsync 透過 SSH 複製檔案到遠端: 在 rsync 加上參數 “-e” 可以自訂通訊協定,後面加上要用的通訊協定即可。 # rsync -avzhe ssh my_backup.tgz [email protected]:/backups/ [email protected]’s password: 上面指令會將檔案 …

同時安裝多個 PHP 版本

現在 PHP 其中一個很大的問題, 是很多個不同的 PHP 版本都有人使用, 對於開發者需要顧及程式碼是否可以在不同版本執行, 而對系統管理員, 就要面對不同程式可能需要不同 PHP 版本。 以下記錄一下在系統安裝不同 PHP 版本, 並可以按需要設定不同 Virtualhost 或目錄, 可以使用不同 PHP 版本的方法, 以下會以 CentOS 7 及 Apache 作為安裝環境。 首先在系統用 YUM 安裝好 Apache …

Linux 的 useradd 實用例子

Linux 下的 “useradd” 指令用作建立新帳號, 當執行 useradd 指令時, 它會完成以下工作: — 編輯 /etc/passwd, /etc/shadow, /etc/group 及 /etc/gshadow 檔案, 加入新帳號的內容. — 為新帳號建立家目錄. — 設定新帳號家目錄的權限及 owner. 執行 useradd 建立帳號時, 如果沒有指定參數, 會用系統的預設值建立帳號, 以下是建立帳號時改變預設值的例子。 建立新帳號 要使用預設值建立帳號, …

Toyota Wish 換機油

不經不覺 Wish 已經買入一年三個月, 里程數已經累積到 18000 公里, 今天要換機油保養, 在這裡做個紀錄。 今次保養會換機油、機油隔及冷氣隔, 今次機油試用 Miller 5W30. 有時會有人叫我用 5W40 的機油, 原因是香港天氣很熱, 但我一直沒有跟從, 從十多年前的 Civic, 到上次的 Corolla 都一直跟車主手冊的建議用 5W30, 以前兩部車到賣掉時, 都沒有出現引擎固障的問題, 所以現在還是跟車主手冊。

Shell Script 連接 MySQL 安全寫法

在 Shell Script 連接 MySQL, 可以用以下語句實現: $ mysql -u db_user -pdb_password db_name -e ‘sql_query’ 如果系統內沒有其他使用者,這個方法沒什麼問題,但如果系統有其他使用者,在執行 Shell Script 時,其他使用者便可以用 ps 這類指令,看到正在連接 MySQL 的使用者名稱及密碼。 較安全的方法是將 MySQL 使用者名稱及密碼儲存到家目錄的 .my.cnf 檔案,那便不用在 Shell Script 輸入 …