Archive of ‘電腦軟硬體’ category

變更 lvm 分割區大小

lvm (Logical Volume Manager) 是一個複雜的邏輯分割區管理工具。

今天撞到一臺主機不知道怎麼搞得,/var 被切的超級大導致 /home 不夠用了,所以需要搬移一下空間…

首先先將 /var 的檔案系統縮小,保險起見建議可以縮小到目的大小的 90% 左右,之後可以再調整回來。

進行這個前步驟前需要先把 /var 解除掛載,使用 # fuser -vm /var 可以檢查有哪些 daemon 正在使用這個分割區,並且將其停止之,同時也要檢查一下檔案系統有沒有錯誤。

# e2fsck -f /dev/mapper/vg0-var

# resize2fs /dev/mapper/vg0-var 180G

然後使用 lvreduce 縮小 lvm 分割區的大小

# lvreduce -L 200G /dev/mapper/vg0-var

最後再將 /var 的檔案系統調整回目標的 200G

# resize2fs /dev/mapper/vg0-var

如此一來就可以把 /var 縮小了。

接下來我們需要增加 /home 的大小,做法類似,差異在 lvreduce 換成 lvextend

如果需要知道系統現在所有的 lvm partition, volume group 大小資訊等可以下 lvdisplay, pvdisplay, vgdisplay 等確定剩餘空間還有多少。

# lvextend -L 200G /dev/mapper/vg0-home

# e2fsck -f /dev/mapper/vg0-home

# resize2fs /dev/mapper/vg0-home

就大功告成。

用 ssmtp 取代 sendmail

情境是,某主機僅提供網頁之服務,要將所有透過網頁或是系統寄出去的信轉到同一網域下的 smtp server。
雖然 sendmail 也可以做這件事,但 sendmail 的設定是在是太麻煩了,安裝新的程式還比較省時 😛

ssmtp 是一隻專門做這件事的程式,他本身沒有寄信的功能,僅能 forward 信件到外部 smtp server。

# cd /usr/ports/mail/ssmtp; make install replace

replace 可以把 sendmail 直接取代掉。

安裝好之後,修改設定檔:

另外,也可以修改 php.ini:

記得 man ssmtp 一下看看 ssmtp 有哪些男人可以看。

DigitalOcean 支援 IPv6

僅有在新加坡機房(SGP1),文章 裡面說因為新加坡機房是跑比較新的 code,所以可以先升級,其它地區的機房可能還要再等等。

進到後台之後,在 Settings 裡面可以直接啟用 IPv6,再到 Droplet 裡面更改網路設定就可以啟用 IPv6。

ipv6

記得 Guest OS 也要改網路設定~

[Android] 使用 HttpClient post 資料到伺服器

其實 Android 有內建 HttpClient 的 library,但是實在是太舊了(4.0beta2),所以用了熱心人士重新包裝過後的 新版,雖然有點大,不過把常用的都包進去了,應該不會踩到一些陳年老 bug。

下面的 code 還有用到 Apache Commons IO,這裡 可以下載。

DefaultHttpClient 已經過時了,不建議使用,所以用 HttpClientBuilder 代替。

FreeBSD pkgng 套件管理系統

FreeBSD 套件管理分為 ports 與 pkg,其中 ports 主要是包含軟體的原始碼,如果要安裝軟體需要從原始碼編譯,優點是可以更改一些編譯選項,自訂一些平常可能不會用到的設定。pkg 則是預先編譯好的軟體,直接下載回來就可以用。使用上其實不是相當方便,舉例來說相依性的問題要自己處理,雖然有像是 portmaster 之類的工具,但是比起 pacman、aptitude 之流,還是有一段距離。

pkgng 是 FreeBSD 下一代的套件管理系統(FreeBSD 10 的預設值),由現有的 pkg 轉移到 pkgng 十分簡單,官方什麼都想好了。

如果還沒有安裝 pkg,使用以下指令安裝:
# cd /usr/ports/ports-mgmt/pkg; make install clean

然後,用 # pkg2ng 將現有的 pkg 轉移到 pkgng 格式。

轉換好了之後,為了確定以後都使用 pkgng 的格式,在 /etc/make.conf 裡面加入:

不過,在安裝軟體之前,先設定官方的套件庫,建立以下的檔案:

之後,你就可以下 pkg install <軟體> 來安裝檔案了!
pkg 可以知道有哪些指令可以下,大致上都跟以前類似,例如 pkg_version -v 改成 pkg version -v,還可以用 # pkgng audit -F 取代以前的 # portaudit -adF 來檢查現有的套件是否有安全性問題!

我的建議:如果要安裝預先編譯的 binary 套件,就使用 pkg 安裝,如果想要自訂編譯選項,就用 portmaster,也很方便!

舊的 pkg_* 工具會在 2014/09/01 正式停止支援。

參考資料

來,跟 pkg_ 說掰掰
http://www.freebsd.org/doc/handbook/pkgng-intro.html
http://lists.freebsd.org/pipermail/freebsd-pkg/2013-October/000107.html
https://wiki.freebsd.org/pkgng

1 2 3 9