Category: Linux

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

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

Certbot 刪除沒用的 SSL 憑證

現在用 certbot 申請及 renew SSL 憑證十分方便, 但有時轉換網域, 或者想將幾個網域整合成一個憑證申請, 系統內便會儲存有很多沒用的舊憑證。要澈底刪除這些舊憑證及它的相關檔案, 可以用 certbot 的 delete 來做。 首先確認要刪除的憑證, 可以檢視 /etc/letsencrypt/renewal/ 目錄, 那裡儲存了所有透過 certbot 申請的憑證: # ls /etc/letsencrypt/renewal/ 上面指令會列出所以透過 certbot 申請的憑證, 每個檔案後面會加上 .conf …

CentOS 7 使用 Firewalld 預防 DDOS

DDOS 是十分常見的攻擊,即使是一般使用者,下載一套 DDOS 軟體,或者直接安裝 kali linux, 便可以很簡單發動 DDOS 攻擊,除了遇到 DDOS 攻擊才採取攔截外,也可以透過一些 Linux 設定來預防 DDOS 攻擊,以下會列出一些預防 DDOS 的設定及 Firewalld 規則。 Firewalld 限制每個 IP 連線數量 以下會設定 Firewalld 限制每個 IP 在 60 …

Shell Script 檢查輸入的參數數量

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

Linux 開啟檔名有空格的檔案

在 Linux 下一般不會用空格 (Space) 作為檔案名稱, 會用 底線 (_) 或橫線 (-) 分隔字串, 但如果檔案是從 Windows 複製進來, 或者是掛載 Windows 的分割區, 可能會有空格作為檔案名稱的一部分。 如果有一個檔案名為 “file name.txt”, 在 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 …

Linux 建立 SWAP 檔案空間

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

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

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