Tag: Shell Script

nohup 指令 – 背景執行指令

當執行 Linux 指令時, 會在終端機一直執行, 直到指令完成後才會結束, 並給使用者重新輸入指令。而 nohup 指令就可以讓指令在背景執行, 不會影響使用者的正常工作。例如要將一些體積較大的檔案 rsync 到遠端伺服器, 用 nohup 指令便可以一邊 rsync 一邊完成手邊的工作。有關 nohup nohup 的全寫是 “no hangup”, HUP hangup (HUP) 訊號會在使用者登出時, 系統向 process 發出, 通知 process …

wget 將 FTP 伺服器製作鏡像備份

wget 是 Linux 下十分流行的下載工具, 可以下載 HTTP, HTTPS 及 FTP 的檔案。除了下載檔案外, wget 也可以對 FTP 伺服器的內容製作鏡像備份, 即是下次執行時, 只會下載 FTP 伺服器內變更了的內容, 並製作一個跟 FTP 伺服器相同內容的鏡像, 如同 rsync 一樣, 以下是具體語法:例如以下是登入 FTP 伺服器的資料:FTP Server: ftp.ftpserver.com Login: …

加密 Shell Script 原始碼

Shell Script 的好處是簡單方便, 可以直接將 Linux 指令放到 Shell Script, 但 Shell Script 其中一個問題是, 如果 Shell Script 裡面有一些敏感的信息, 例如密碼, 裡面的內容可以被其他使用者看到。shc 是一支將 Shell Script 用 RC4 加密, 並制作成 binary 檔的工具, 本篇文章會示範用 shc 將 …

Linux 日期格式 – Shell Script 自訂格式

Linux 的 date 指令可以輸出目前的日期及時間, 例如直接輸入 date 指令, 會輸出很詳細的日期及時間: $ date Fri Mar 10 09:15:51 HKT 2017 而 date 指令除了預設的格式外, 也可以自訂日期格式, 語法是 date +”FORMAT”, 例如我想顯示 DD-MM-YYYY 格式的日期, 可以這樣做:這樣自訂日期時間格式在 Shell Script 很常用, …

MySQL 管理相關指令

以下是一些常用的 MySQL 管理相關指令匯整, 以下的指令如果以 # 字符開頭, 代表是在 CLI 輸入的指令, 如果是以 “mysql>” 開始, 則表示登入 MySQL 後輸入的指令。登入 MySQL: 建立資料庫: 匯入資料庫: (將 /path/to/backup.sql 匯入到 database_name 資料庫) 匯出資料庫: (將 database_name 資料庫匯出到 /path/to/backup.sql) 刪除資料庫: 新增使用者: …

MySQL 修改使用者密碼

修改 MySQL 密碼可以透過 mysql 指令 (在 Windows 下是 mysql.exe),mysqladmin 指令或 phpMyAdmin 完成,以下是用 mysql 及 mysqladmin 修改 MySQL 使用者密碼的方法。mysql 指令 在指令模式用 root 帳號透過 mysql 登入 MySQL 伺服器: # mysql -u root …

Shell Script 檢查是否有輸入參數

在寫 Shell Script 時, 可以用變數 $1, $2, $3…… 很方便讀取使用者輸入的參數, 以下提供兩個檢查使用者是否有輸入參數的方法。1. $# $# 變數儲存了使用者輸入的參數數量, 如果 $# 是 0, 便表示使用者沒有輸入參數, 而這個變數也可以用作檢查使用者輸入了多少個參數, 具體寫法如下:2. $1 另一種做法是檢查 $1 變數, $1 是使用者輸入的第一個參數, 如果 $1 是空白, 那便表示使用者沒有輸入參數, …

對 rsync 實施限速

rsync 是一套 Linux 下的同步備份工具, 對日常備份十分有用。如果是從遠端主機進行備份, 而且備份的檔案容量很大, 有可能會將主機的頻寬全部吃掉, 那便會在備份時影響主機的正常使用。rsync 內建已經支援限速的功能, 只要使用 –bwlimit 參數, 便可以限制傳送檔案時硬碟的 I/O 速度, 從而達到限速的效果。即使是本機備份, –bwlimit 也可以避免備份時系統的負載過高。例如將 I/O 限制為 1000 KBytes, 語法是這樣:備份到逹端主機的做法相同, 只要加上 –bwlimit=速度 便可以:

Shell Script – 發現 Load Average 高自動執行指令

當系統的 Load Average 很高時, 可能面臨當機的風險, 遇到這個問題可以用 Shell Script 定時檢查系統的 Load Average, 當發現 Load Average 到達某一個設定好的數值時, 便自動執行一些指令, 例如重啟服務, kill process 或向系統管理員發出電郵通知等。以下 Shell Script 會透過定時讀取 /proc/loadavg 的數值, 當發現 Load Average 高時 (以下設定為 …

Shell Script 檢查並自動重啟 Apache httpd

如果主機出現問題時, 可能負載過高或者服務當掉, 最理想的做法還是要找出原因, 很多時只要修改一些設定便可以。 早前遇到一位客戶, 他安裝在 VPS 的 Apache 會無故當掉, 間隔由幾小時到一天不等, 檢查後 Load Average 一點也不高, 當掉後只要重新啟動 Apache 便沒問題, 初部估計可能是 mpm_prefork 的設定問題。由於修改後要觀察一段時間, 這段時間 Apache 也可能當掉, 便寫了這支 Shell Script, 會自動檢查 Apache 是否能回應請求, …