Shell Script 檢查輸入的參數數量

有時在 Shell Script 需要檢查輸入的參數數量, 在 Shell Script 要檢查輸入的參數數量, 可以直接用 $# 變數取得, 例如建立以下 Shell Script: 將以上內容儲存成 test.sh 後, 並給予可執行權限, 可以嘗試執行以下指令: $ test.sh 1 2 3 3上面在執行 test.sh 時, 輸入了 3 …


強制瀏覽器每次重新載入 CSS, JS 檔

當網站的 CSS 及 Javascript (.css 及 .js) 作出修改後,這些更新可能不會立即呈現及訪客,這是因為瀏覽器為了提高開啟網站的速度,會將 .js 及 .css 檔儲存在快取內,下次進入網站時不會重新載入所致。網站訪客可以清除網站的快取然後重新載入,便會看到新內容。但網站管理員總不能要求每個訪客這樣做,需要在網頁的層面解決。一個簡單的解法是在 HTML 的 Meta Tag 加入控制快取的指示,例如: 但這個方法很多時都不會長時間有效。另一個較簡單實用的方法是在檔名後面加上一個 GET 變數,這個 GET 變數可以是日期時間,也可以是版本號,例如: 當下次修改 CSS 或 JS 後,在網站的 HTML …

Linux 開啟檔名有空格的檔案

在 Linux 下一般不會用空格 (Space) 作為檔案名稱, 會用 底線 (_) 或橫線 (-) 分隔字串, 但如果檔案是從 Windows 複製進來, 或者是掛載 Windows 的分割區, 可能會有空格作為檔案名稱的一部分。如果有一個檔案名為 “file name.txt”, 在 Linux 要開啟有以下兩種方法, 分別是用引號包著檔案名稱, 以反在空格前加入 “\” 字符: $ cat ‘file …


CentOS 7 Apache (httpd) 重啟慢問題

在一台安裝了 Apache (httpd) 的 CentOS 主機上, 如果重新啟動 Apache 會很慢, 正常情況應該幾秒內便重啟完成.但啟動 Apache 便很快, 只是停止及重啟很慢。根據 Redhat Bugzilla 的內容, 在 systemd 的 httpd 服務, 將 KillMode 設定成 none 便可以, 以下是解決步驟:開啟 /usr/lib/systemd/system/httpd.service: /linux/ # …

Let’s Encrypt 申請 Wildcard SSL 憑證

Let’s Encrypt 在上年已經推出全網域通用憑證 (Wildcard Certificate), 也就是一張憑證可以讓網域下所有子網域通用, 所有子網域也可以使用同一張憑證。原本的網域下每個子網域都會產生一個新的憑證, 但如果網址較多管理也較麻煩, 以下紀錄一下申請 Let’s Encrypt Wildcard 憑證的方法。網路上有很多申請 Let’s Encrypt 憑證的工具, 以下會使用 Certbot, 先執行以下指令安裝 Certbot: /linux/install-certbot # wget https://www.eff.org/certbot-auto # chmod +x ./certbot-auto # ./certbot-auto …

Linux 建立 SWAP 檔案空間

Swap 檔案跟 Swap 分割區差不多, 分別是 Swap 檔案是用檔案的方式建立, 不是使用獨立硬碟分割區。以下是在 Linux 下建立 Swap 檔案的方法。建立 swap 檔案是使用 block size 作為單位, 每 1 MB 有 1024, 所以建立 1GB 的 swap 檔案便要建立 1024 * 1024 …

3 種檢查遠端埠號是否開啟的方法

除了在 Linux 的主機外, 在其他類型的主機也經常需要檢查埠號是否有開啟埠號, 例如要測試主機的服務是否正常。以下是分別用 nc, nmap 及 telnet 測試埠號是否有開啟的方法。nc (netcat)nc 的意思是 netcat, nc 可以讀取經過 TCP 及 UDP 的網路連線資料, 是一套很實用的網路除錯工具。在 CentOS 用 yum 安裝 nc: /linux/install-nc # yum install nc …

Firewalld 封鎖 ip

Firewalld 是 RHEL 7 及 CentOS 7 預設的防火牆, 如果要用 Firewalld 封鎖 ip 的網路流量, 可以用以下指令.以下指令會封鎖 IP_ADDRESS, 將 IP_ADDRESS 換成要封鎖的 ip 便可以了: /linux/firewalld # firewall-cmd –add-rich-rule=’rule family=”ipv4″ source address=”IP_ADDRESS” reject’ 將整個 Class …