Tag: FreeBSD

Linux 找出重覆檔案

當系統使用一段時間後, 裡面會有為數不少重覆的檔案, 以下會介紹使用 rdfind 找出系統重覆的檔案,, Rdfind 的全寫為 redundant data find, 它會在不同的目錄內找出相同的檔案。要安裝 rdfind 只要用系統的套件管理工具安裝即可: $ sudo apt-get install rdfind $ sudo yum install epel-release && $ sudo yum install rdfind …

Linux 下的 &, &&, | 及 || 的用法

在 Linux 下執行指令, 很多時會用到 &, &&, | 及 ||, 以下是它們的用法:& 如果在指令後面加上 & 符別, 即表示指令在背景執行, 例如 my-script.sh &&& 用 “&&” 分開兩個指令, 即第一道指令執行成功後, 才會執行第二道指令, 例如 make && make install| 這是管線的符號, 即是將第一道指令的輸出, 作為第二道指令的輸入, …

Shell Script 使用 #!/usr/bin/env

在 Shell Script 的第一行稱為 shebang, shebang 由 “#!” 開頭, 並在後面加上解譯器的絕對路徑, 即類似:#!/bin/sh #!/bin/bash #!/usr/bin/perl #!/usr/bin/python如果 Shell Script 不同的平台執行, 指定的解譯器可能位置有所不同, 如果想增加 Shell Script 在不同 Unix Like 環璄的可流動性, 可以使用 /usr/bin/env 作為 shebang.使用方法只要在 /usr/bin/env …

make 及 make clean 的作用

在編譯源代碼安裝軟體時,很熟悉的步驟是 make 及 make install, 例如: # ./configure # make # make install 以下是 make 及 make clean 的分別:make 一般上, make 是 make all 的簡寫,它根據 makefile 的規則,將 C/C++ 檔案編譯成 .o …

Shell Script 產生亂數

Shell Script 提供了 $RANDOM 變數,直接用 echo 印出或調用已經可以產生亂數。用 $RANDOM 產生的隨機數會在 0 – 32767 之間,而每次使用 $RANDOM 後,它便會被定義一個新的數值,以下是使用例子: $ echo $RANDOM 這樣便會印出一個隨機數。以上方法雖然簡單,但最大的問題是不能定義隨機數的長度,因為 $RANDOM 只會產生介乎 0 – 32767 之間的數值。要定義亂數的長度,可以用 awk 來做,例如:以上定義了產生 6 個位長度的亂數,介乎 100000 …

產生 /etc/shadow 格式的加密密碼

Linux 將系統帳號關於密碼的資訊儲存在檔案 /etc/shadow, 而密碼是經過加密。不論基於任何原因, 如果需要手動編輯 /etc/shadow 的密碼, 便需要產生一個與 /etc/shadow 使用相同加密方式的密碼。而且不用安裝其他工具, 用 Python 便可以產生這個加密密碼。在 shadow 內的加密密碼, 以下列格式儲存:$ID$SALT$ENCRYPTED上面的 $ID 是加密方式, $SALT 是一個最多 16 位的隨機字串, $ENCRYPTED 則是 password hash.其中 $ID 分別有以下幾種:$1 -> MD5 …

甚麼是 DNS Non-authoritative answer

用 nslookup 指令查詢域名的 ip 時,會有一行 “Non-authoritative answer”,例如這樣:這裡的 Non-authoritative answer 表示所查詢的 DNS (上面是 8.8.8.8),並不是原始的 DNS 紀錄來源,是由域名所設定的 DNS Server 取得資料。那麼甚麼時候不會出現 Non-authoritative answer 呢,就是直接向域名登記的 DNS 查詢,例如 google.com 使用的 DNS 是 ns1.google.com, 用以下指令查詢便不會出現 Non-authoritative …

擷取 Log 紀錄檔最後 60 分鐘紀錄

Linux 有很多不同種類的 Log 紀錄檔,很多時需要在 log 裡面找資料,但當 log 的體積越來越大時,要查看還真是很吃力。這時可以用不同的 Linux 指令配合使用,將 log 紀錄檔最後的資料抽出,抽出資料的時間可以按需要更改。例如 /var/log/message 預設紀錄檔的格式可以用以下指令:上面指令需要修改最後的檔案名稱,以及 “+%b %_d %H:%M” 這一組參數,需要配合 log 的日期時間格式。另一個例子是 log 裡面不是用一般的日期時間格式,像 QMail 是用 tai64n 格式儲存時間,需要用 tai64nlocal 轉換成普通時間格式,可以用以下指令擷取 /var/log/qmail/smtpd/current 最後 …

Wrapper Script – 替現有指令擴充功能

Wrapper Script 在 Unix Like 環境十分常見,它不會重新建立一個新的程式,而是會讀取 input 後加入所需的功能,再將 input 直接傳送給現有的指令。以下是 wrapper script 的簡單例子:以上 Wrapper Script 實際上沒有甚麼用途,它只是將輸入直接傳送給 /root/bin/my-script.sh,所以執行以上 Wrapper 跟執行 /root/bin/my-script.sh 是沒有分別,因為沒有加入任何新功能。如果有用過 QMail 的應該會編輯過 daemontools 的 run script, 這個 run script …

埠號 25, 465, 587 的分別

電郵伺服器會設定不同的埠號給 email client 作 relay 的用途,主要是埠號 25, 465 及 587, 以下是這些埠號的分別。Port 25Internet Assigned Numbers Authority (IANA) 把埠號 25 預留用作預設的 SMTP 埠號。但很多 ISP 避免客戶發送垃圾電郵,很多 ISP 將客戶的 port 25 封鎖,只允許客戶使用 ISP 提供的 …