2 月 20
管理員FreeBSD筆記本, 網路技術 2T, FreeBSD, GPT, HDD, UEFI
好一陣子沒有管理自己的主機,才發現它已經跑了 1003 天~~~所以就著手換一台電腦來轉移系統。
選擇的配備是
intel E3 CPU + 16GB ram + HGST 3T 硬碟 + ASUS B85M-E 主機板
結果到 freebsd.org 下載 ISO image 之後,發現怎麼灌都無法開機,只好開始爬文。
More
6 月 26
管理員FreeBSD筆記本
ps ax | grep http | awk '{print $1}' | xargs kill
好用的指令組合, 讚!!
5 月 01
管理員FreeBSD筆記本 cronjob, daemon, FreeBSD, php, 主機管理
因為 php 擁有許多方便的函示庫,越來越多情況會習慣用它來處理,但是在 FreeBSD 主機上 cronjob 的最短間隔是一分鐘,不能即時回應總是有那麼一點不爽快。
而且透過 cronjob 每分鐘都去執行,如果程式跑很久的話,系統上會有一堆程式,佔掉很多資源。
總結下來,必須讓程式在兼具即時回應和資源有效使用的情況下運作。
作法上,假設我們寫一個 service.php 然後由 cronjob 每分鐘去執行一次。這時,程式裡應該有以下的機制:
- 檢查是否有其他執行緒存在,如果有就結束執行,以維持單一程式在執行。(當然也可以允許多個程式一起跑)
- 記錄程式的啟動時間 $startup = time() ;
- 開始辦正事,但記得盡可能 KISS (Keep it simple and stupid)。如果有一堆事要作,也讓它一件一件作,這樣可以避免佔用太多資源,花太多時間執行。
- 執行完畢後,檢查程式是否超過有效期限,例如可以設定程式生命週期為 3 分鐘,在週期內它會一直檢查有沒有工作要作,有就作,沒有就停止。如果超出週期,則不論有沒有工作要作,都會停止,讓下一分鐘的程式接手。這是為了避免程式活太久,產生一些不必要的問題。
$concurrency = 1 ;
$startup = time() ;
$ttl = 180 ; /* seconds, time to life of this process */
$cycle_latency = 500 ; /* micro seconds, usleep between each query */
$off_duty = 3 ; /* seconds, keep working until next process is about to coming in $off_duty seconds. */
3 月 19
管理員FreeBSD筆記本 FreeBSD, NTFS, USB, 隨身碟
- 安裝 ntfs-3g 程式
cd /usr/ports/sysutils/fusefs-ntfs/
make install clean
* 這程式需要一些額外的東西,如 libtool 要 2.4 以上,如果編譯錯誤,就檢查一下是什麼漏了裝。
- 把你的 ntfs 磁碟機或 USB 隨身碟插上電腦
這時會看到它的 device name,例如 da0。
- 修改 rc.conf
加入 fusefs_enable="YES"
這個設定按理說在步驟一就會自動加入了。
- 修改 fstab 自動掛載
為了讓系統一開機就掛上去,加入
/dev/da0s1 /media/NTFS ntfs rw,mount_prog=/usr/local/bin/ntfs-3g,late 0 0
- 或者,手動將系統掛上
ntfs-3g /dev/da0s1 /media/NTFS -o rw,uid=1000,gid=1000,umask=0
詳細參數請見 ntfs-3g manpage。
12 月 21
管理員FreeBSD筆記本 FreeBSD, proftpd, 主機管理
在 proftpd 1.3.1rc1 之後,開發者似乎替程式加入了一些語言上的規劃,雖然目的是為了解決檔名的問題,但卻也造成不少困擾。
在爬文測試過後,發現有幾個前提要先釐清: More