Tag: Shell Script

Shell Script 限制執行時間

在撰寫 Shell Script 時,有時會遇到需要限制程式執行時間的情況,例如防止程式無限執行或避免程式佔用過多系統資源等。以下是一些常用方法可以幫助您限制 Shell Script 的執行時間。 1. 使用 timeout 命令 timeout 命令可以限制某個命令或腳本的執行時間,當時間到期時它會向該命令或腳本發送 SIGTERM 信號以終止其執行。例如: timeout 10s ./myscript.sh 這條命令將執行 myscrip.sh 腳本,並限制其執行時間為 10 秒。 2. 使用 ulimit 命令 ulimit 命令可以限制某個使用者對系統資源的使用,包括 …

Shell Script 建立臨時檔案

在寫 Shell Script 時, 有時需要建立臨時檔案, 很多時會用 temp 或 tmp 這類副檔名實現。但如果這些檔案名稱和其他 process 的臨時檔案名稱相同, 便會錯誤地覆寫其他臨時檔案的內容。 在 Linux 系統可以用 mktemp 工具, 它可以很簡單地建立, 使用及移除不會重覆檔名的臨時檔案。 執行 mktemp 時, 它們預設會出檔案名稱及路徑: $ mktemp /tmp/tmp.94uGx1HYiS 如果沒有指定路徑, 臨時檔案的的位置是 …

VIM 使用自動縮排下貼上程式碼

在 VIM 寫程式時, 很多時會設定使用自動縮排, 即用 audoindent 或 smartindent, 這樣只是寫程式沒問題, 但如果要複製並貼上一些程式碼, 這會重覆縮排。 要解決這個問題, 可以在用 vim 時, 輸入以下指令: 完成貼上後, 要回復原來的自動縮排, 便再次輸入以下指令: 如果預設值是會自動縮排, 那便關閉檔案後, 會自動開啟縮排。 但要輸入上面的指令也很麻煩, 所以在 .vimrc 檔案設定, 用 F3 鍵進行切換, …

Python 讀取 Pipe 輸入

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

Shell Script 將指令輸出儲存到變數

在 Shell Script 要將執行指令的輸出儲存到變數, 而不是直接輸出結果, 可以用以下兩種寫法: 或 要留意的是, 跟 PHP 或 Python 等不同, 在等號 (=) 前後不可以加入空間。 例如要將日期儲存到變數 today, 可以用以下寫法: 或 將變數內容輸出跟其他變數一樣, 可以用 echo 或 printf: 以上是在 Shell Script 把指令輸出儲存到變數, …

Shell Script 加入今天的日期

在寫程式時很多時也需要使用今天的日期, 例如在建立檔案或目錄名稱時, 會加入日期以作識別。 Linux 的 date 指令可以輸出日期, 如果只要單純地輸出日期, 可以這樣寫: 以上指令會用以下格式輸出今天日期: Today is Tue Dec 10 08:21:01 HKT 2019 如果想要建立一個目錄, 在後面加入今天日期以作識別, 例如建立像這樣的目錄 /backup/files-20191210/, 可以用以下寫法”

Shell Script 自動檢查硬碟使用量

Linux 下要用 Shell Script 自動檢查硬碟分割區的使用量, 可以透過 df 指令實現。 df 指令可以在 Linux 下檢視硬碟分割區使用量, 配合 grep 及 awk 擷取所需的資訊, 便可以用 Shell Script 自動檢查硬碟使用量, 當發現使用量超過設定的百分比 (例如 80%) 時, 再用 mail 指令發出電子郵件通知系統管理員。 執行 …