Tag: Shell Script

Shell Script 自動檢查硬碟使用量

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

Shell Script 檢查檔案或目錄是否存在

寫程式時很多時候需要檢查檔案或目錄是否存在, 在 Shell Script 檢查檔案及目錄是否存在, 可以在 if 條件判斷式裡面加上 -e 或 -d 實現, 以下是具體寫法: 檢查檔案是否存在: 上面的 if 判斷式也可以用一行來實現: 檢查目錄是否存在: 用一行來實現上面的程式碼: 其中一個十分實用的例子, 是檢查檔案或目錄是否存在, 如果不存在就便宜檔案或目錄: This is the best practice to check …

Shell Script 檢查檔案是否有指定字串

在 Linux CLI 下可以用 grep 指令, 將檔案包含有指定字串的行印出, 或者配合 -c 參數直接印出匹配的行數, 例如: $ grep -c string filename.txt 如果在 Shell Script 要檢查檔案是否有指定字串, 當然可以檢查以上指令輸出的數值, 但另一個更方便的方法, 是用 grep 的 -q 參數, 具體寫法是這樣: grep …

touch – 修改檔案時間戳記及建立新檔

touch 指令可以建立空白的新檔案, 改變現有檔案及目錄的戳記, 以下是 touch 指令的用法。 linux-touch-command 在介紹 touch 指令的用法前, 首先講一下 Linux 的檔案的 3 種時間戳記: atime (access time) -> 檔案最後被開啟、讀取或存取的時間。 mtime (modify time) -> 檔案最後被修改的時間。 ctime (change time) -> …

crontab 開機自動執行指令

一般上設定開機自動執行指令, 可以編輯 /etc/rc.local 檔案, 而除了編輯 /etc/rc.local 外, 也可以用 crontab 完成。 crontab 是十分好用的排程自動執行工具, 它指定執行時間間隔十分靈活, 其中一個做法是用 @reboot 參數, 設定成每次開機自動執行。 首先開啟 crontab: # crontab -e 加入以下一行: 以上一行設定開機後等待 1 分鐘 (60 秒), 自動執行 …

MySQL / MariaDB 重新命名資料庫

以前 MySQL 的 “RENAME DATABASE” 指令, 已經在 5.1.23 後的版本刪除, 原因是重新命名資料庫時存在資料遺失的風險。 以下示範用 “RENAME TABLE” 指令及 mysqldump 指令, 替資料庫重新命名的方法: RENAME TABLE 這個方法適合資料庫比較大的情況, 但缺點是需要對每個資料表逐一執行。 先建立一個空白的資料庫, 名稱用要變更的資料庫名稱, 以下假設舊資料庫是 oldname; 新資料庫是 newname: 然後把資料表逐一用 RENAME …

Linux 限制指令執行時間

timeout 指令可以在 Linux 下限制一個指令的執行時間, 當超出指定的時間後, 便自動終止執行. 例如想限制一個指令的執行時間在 10 秒, 當超過 10 秒便自動將它 kill 掉: $ timeout 10 tail -f /var/log/httpd/access.log timeout 的預設時間單位是秒, 上面的 10 沒有指定單位, 預設代表 10 秒, 以下時間單位的寫法: …

rename 指令 – 批次大量修改檔案名稱

在 Linux 要修改檔案名稱, 可以用 mv 指令, 但如果要重新命名的檔案很多, 用 mv 逐一修改會很痛苦, 也增加出錯的機會。而 rename 指令則可以批次大量修改檔案名稱。 例如我想將所有 .jpeg 結尾的圖片, 改變副檔名成 .jpg, 可以用以下指令: $ rename ‘s/.jpeg/.jpg/’ * 以上指令會將當前目錄下, 所有 .jpeg 結尾的檔案, 改名成 .jpg …