僅有在新加坡機房(SGP1),文章 裡面說因為新加坡機房是跑比較新的 code,所以可以先升級,其它地區的機房可能還要再等等。
進到後台之後,在 Settings 裡面可以直接啟用 IPv6,再到 Droplet 裡面更改網路設定就可以啟用 IPv6。
記得 Guest OS 也要改網路設定~
僅有在新加坡機房(SGP1),文章 裡面說因為新加坡機房是跑比較新的 code,所以可以先升級,其它地區的機房可能還要再等等。
進到後台之後,在 Settings 裡面可以直接啟用 IPv6,再到 Droplet 裡面更改網路設定就可以啟用 IPv6。
記得 Guest OS 也要改網路設定~
其實 Android 有內建 HttpClient 的 library,但是實在是太舊了(4.0beta2),所以用了熱心人士重新包裝過後的 新版,雖然有點大,不過把常用的都包進去了,應該不會踩到一些陳年老 bug。
下面的 code 還有用到 Apache Commons IO,這裡 可以下載。
private void postData(String url, String filepath, String filename ) throws Exception { byte[] data; HttpPost httppost = new HttpPost(url); HttpClient httpclient = HttpClientBuilder.create().build(); MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); InputStream inputStream = new FileInputStream(filepath); data = IOUtils.toByteArray(inputStream); InputStreamBody inputStreamBody = new InputStreamBody(new ByteArrayInputStream(data), filename); //entityBuilder.addTextBody("action", "test"); //entityBuilder.addBinaryBody("file", file); entityBuilder.addPart("file", inputStreamBody); HttpEntity entity = entityBuilder.build(); httppost.setEntity(entity); HttpResponse response = httpclient.execute(httppost); HttpEntity httpEntity = response.getEntity(); String result = EntityUtils.toString(httpEntity); Log.d("uploader", result); }
DefaultHttpClient
已經過時了,不建議使用,所以用 HttpClientBuilder
代替。
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
裡面加入:
WITH_PKGNG=YES
不過,在安裝軟體之前,先設定官方的套件庫,建立以下的檔案:
FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", mirror_type: "srv", enabled: yes }
之後,你就可以下 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
因為之前網站被打,收集 log 的時候痛苦萬分,因此希望架設一個中心的 log server 統一收集 log,如此一來寫一些分析的 script、跑一些服務可以更方便。
雖然 FreeBSD 內建的 syslogd 也有 server 的功能,但其過濾的能力不足,從遠端送過來的 log 會全部混在一起,無法照服務(例:apache)分開,而網路上大部分的教學多是採用 syslog-ng,因此決定來實驗 syslog-ng。
syslog 的標準 RFC 5424 定義了可以用的 syslog facility level,其中我們取 local1 來作為 httpd-access 的記錄檔使用。
以下的範例我要設定來自 client 主機的記錄檔,把 httpd-access 統一存在一個檔案,剩下的照 "$HOST-$FACILITY"
的規則存在 server 上。 繼續閱讀 “建置 syslog-ng server 統一收集 log”