資料來源:http://www.wretch.cc/blog/iantsai/13572128
裝好 FreeBSD 後因為使用 SSH 或 Console 遠端登入,中文顯示會亂碼,所以必須要修改 LOCALE 設定,才能正常顯示出中文編碼。
2. 使用csh /etc/csh.cshrc 加入下面三行後重開機即可顯示中文。
#vi etc/csh.cshrc
setenv LC_CTYPE en_US.ISO8859-1
setenv LC_ALL zh_TW.UTF-8
setenv LANG zh_TW.UTF-8
3. 若使用 BASH ,則在 /etc/profile 中加入下面三行後重開機就可顯示中文。
LC_CTYPE=en_US.ISO8859-1 ; export LC_CTYPE
LC_ALL=zh_TW.UTF-8 ; export LC_ALL
LANG=zh_TW.UTF-8 ; export LANG
2013年12月4日 星期三
2013年11月26日 星期二
Pound HTTPS Configuration
轉貼自:http://www.project-open.org/en/howto_pound_https_configuration
During the process you will create:
You can execute "netstat -nlp" to list all network connections. In the upper part your should see something like this:
Pound HTTPS Configuration
The following steps will guide you through the generation of a self-signed certificate for your ]project-open[ server.During the process you will create:
- server.key: This is a 1024 bit random string ("private key") that uniquely identifies your server
- server.csr: This is a "Certificate Signing Request" file. You can send this to a Certificate Authorities (CA), or sign it yourself.
- server.crt: This is a "certificate" that certifies that server.key belongs to you.
- server.pem: This is the file that Pound needs to work correctly. A PEM file is a bundle of a the "server.key" priviate key and a certificate.
- Generate an RSA private key for the server:
openssl genrsa -out server.key 1024
- Remove the passphrase from the key. Please make sure that nobody will have access to this file except for you. Otherwise the security of your server is at risk:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
- Create the Certificate Signing Request file, or CSR:
openssl req -new -key server.key -out server.csr
You will have to provide certain information for your CSR. Here are some sample values for ]project-open[:
Country Name (2 letter code) [GB]: ES
State or Province Name (full name) [Berkshire]: Catalonia
Locality Name (eg, city) [Newbury]: Barcelona
Organization Name (eg, company) [My Company Ltd]: Project Open Business Solutions S.L.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: www.project-open.org
Email Address []:webmaster@project-open.com
A challenge password []:
An optional company name []:
- Now you could go to some Certificate Authority in the Web (for example: http://www.instantssl.com/ currently offers free certificates for 90 days) and sign your key there. As a result, you will receive a "certificate" file that you can save as "server.crt".
- As an alternative you can sign the key yourself.
The server.crt certificate will be technically valid. However, your browser will show a security warning if it encounters such a self-signed certificate:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- Verify your certificat. The following command should output some data, and not an error message:
openssl x509 -in server.crt -text
- Create a PEM file:
openssl x509 -in server.crt -out server.pem
openssl rsa -in server.key >> server.pem
- Now you can add a HTTPS listener configuration to your pound.cfg configuration file:
ListenHTTPS
Address 0.0.0.0
Port 443
Cert "/etc/pound/server.pem"
End
Older versions of Pound (<2.2) may require a different listener configuration, please consult the man-page of your installed version of Pound.
You can execute "netstat -nlp" to list all network connections. In the upper part your should see something like this:
... tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 24804/nsd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 375/pound ... tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 375/pound ...
- 0.0.0.0:8000: This is the AOLserver itself
- 0.0.0.0:80: This is Pound listening for unincrypted HTTP connections
- 0.0.0.0.443: This is the Pound HTTPS listener.
2013年9月3日 星期二
Exim4設定smtp伺服器與檢測
Debian 預設使用Exim4,當伺服器IP為外部IP時,預設值即可使用localhost的smtp來發送信件。但若為內部IP機器時,需進行設定如下,才可正確發信。
發信的成功失敗,可查看/var/log/exim4/maillog。
以下轉貼自【安裝筆記】Exim4 郵件伺服簡單設定與檢測
Debian Etch 套件預設是使用 Exim4,在安裝 base system 套件後即自動啟動,但無法寄出到 Internet,察看 /var/log/exim4/mainlog 訊息後:
** xxx@gmail.com R=nonlocal: Mailing to remote domains not supported
1.編輯並修改 /etc/exim4/update-exim4.conf.conf 下列兩行:
dc_eximconfig_configtype=’internet’ #預設為 local
dc_smarthost=’msxx.hinet.com’ #遠端的SMTP主機,利用它來發送郵件
2.修改 /etc/mailname ,改成你所在寄送郵件的領域(domain)。
3.執行 exim4 -bV 可測試 exim4 的配置有否出錯。
4.重新啟動 exim4:
# /etc/init.d/exim4 restart
5.外部郵件發送測試
# exim4 -bt kenming.wang@gmail.com
以下轉貼自【安裝筆記】Exim4 郵件伺服簡單設定與檢測
Debian Etch 套件預設是使用 Exim4,在安裝 base system 套件後即自動啟動,但無法寄出到 Internet,察看 /var/log/exim4/mainlog 訊息後:
** xxx@gmail.com R=nonlocal: Mailing to remote domains not supported
1.編輯並修改 /etc/exim4/update-exim4.conf.conf 下列兩行:
dc_eximconfig_configtype=’internet’ #預設為 local
dc_smarthost=’msxx.hinet.com’ #遠端的SMTP主機,利用它來發送郵件
2.修改 /etc/mailname ,改成你所在寄送郵件的領域(domain)。
3.執行 exim4 -bV 可測試 exim4 的配置有否出錯。
4.重新啟動 exim4:
# /etc/init.d/exim4 restart
5.外部郵件發送測試
# exim4 -bt kenming.wang@gmail.com
使用rsync建立長時間且不佔硬碟空間的備份
這裏不說明太多rsync其它的使用方式,只重點在“使用rsync建立長時間且不佔硬碟空間的備份”。
測試時可加上-n, --dry-run參數,就不會實際同步大量資料
rsync -n
重點指令為:
rsync -a -e ssh --link-dest=/backup/2013-09-02 x.x.x.x:/path/to/backup /backup/2013-09-03
這個方式會備份IP:x.x.x.x 的資料path/to/backup,備份到本機的/backup/2013-09-03,並參考前一天/backup/2013-09-02的資料,如此已存在的資料就用hard link的方式,從2013-09-02建立到2013-09-03中,就不會實際佔用空間,只有新檔案才會佔用空間。
第一次同步時,2013-09-02不在在,只會出現提示訊息,如
--link-dest arg does not exist: /backup/2013-09-02
往後只要前一天存在就不會重覆佔用空間。
而為了避免意外,如中間可能因故漏了幾天沒備份,因此設定--link-dest的路徑時,可往前查找幾天,如2013-09-02不存在,就再往前找2013-09-01,如此才不會因--link-dest設定路徑不存在,又重覆佔用了一次空間。
而確認是否為hard link,可使用ls -i (檢查檔案的inode number),比對兩個日期中的同一檔案,若相同則代表為hard link,實體為同一個,不會多佔硬碟空間。
若要保留一個月的備份資料,只要刪除2013-08-02之前的資料夾即可。
stderr and stdout to file (sh / bash / csh / tcsh)
stderr and stdout to file
sh: (time date) > wa.txt 2>&1
bash: (time date) >& wa.txt or (time date) &> wa.txt or (time date) > wa.txt 2>&1
csh/tcsh: (time date) >& wa.txt
There are 3 file descriptors, stdin(0), stdout(1) and stderr(2) (std=standard).
2013年6月7日 星期五
在Javascript中更好的計時器,取代Date,用來計算執行時間等應用
一般在javascript中要計算某段程式的執行時間,可以使用Date物件。
用法是Date.now() 或 new Date().getTime(),用以取得microsecond(毫秒)的目前時間數值。
在執行函數的前後取得並相減,以取得執行時間,例如:
var ticks_start = Date.now();
RunTestFunction();
var ticks_end = Date.now();
alert(ticks_end - ticks_start);
但一些指令的時間小於毫秒時,根本結果不是0就是1,看不出所以然。
從這篇文章“A better timer for JavaScript”得到了更小單位時間的方法。
window.performance = window.performance || {};
performance.now = (function() {
return performance.now ||
performance.mozNow ||
performance.msNow ||
performance.oNow ||
performance.webkitNow ||
function() { return new Date().getTime(); };
})();
再將程式改為以下,即可測得0.x毫秒的執行時間:
var ticks_start = performance.now();
RunTestFunction();
var ticks_end = performance.now();
alert(ticks_end - ticks_start);
2013年6月6日 星期四
Ubuntu 安裝 Sublime Text 2與中文輸入問題
2013/12/04註: Sublime Text 3 beta在2013/06/27已開放給未註冊使用者下載。
為了要能垂直編輯多行文字,在特定時候,只留下或編輯多行文字中的值,所以要裝sublime來用看看。
像是以下資料:
* PID: 7234
* PID: 6821
* PID: 7108
* PID: 6821
* PID: 7108
可以按Ctrl-Alt + 上下左右,選取範圍後,删除或編輯。
變成像是:
* 7234
* 6821
* 7108
變成像是:
* 7234
* 6821
* 7108
即使位置不對等或不是連續,例如:
style="width: 500px;"
style="height: 100px; width: 50px;"
style="width: 80px;"
style="height: 100px; width: 50px;"
style="width: 80px;"
可以按Ctrl +滑鼠左鍵,點選要插入資料的位置,就可加入相同的內容到各個地方。
style="width: 500px; color: red;"
style="height: 100px; width: 50px; color: red;"
style="width: 80px; color: red;"
style="height: 100px; width: 50px; color: red;"
style="width: 80px; color: red;"
目前無法使用apt-get 來安裝,安裝方式如下:
- 先下載Linux 32或64於http://www.sublimetext.com/2.
- 開啟Terminal.
- cd ~/下載
- tar -xf "Sublime Text 2.0.1 x64.tar.bz2" (檔名依下載版本修改)
- sudo mv "Sublime Text 2" /usr/lib
- sudo ln -s "/usr/lib/Sublime Text 2/sublime_text" /usr/bin/st2
啟動方式一:
- Terminal中輸入st2
- # st2
啟動方式二:
- 加入左邊的啟動器選單中
- 先在dash中找“主選單” ,接著按“新增項目”,加入/usr/bin/st2.
- 然後在dash中就可找到 Sublime Text 2,並拉到啟動器。
參考:http://www.arthurtoday.com/2012/09/ubuntu-install-sublime-text-2.html
2013/06/20補充,無法輸入中文的解決方法:
在windows和linux(搭配ibus; scim;fcitx)都有不同狀況的無法輸入中文,
2013/06/20補充,無法輸入中文的解決方法:
在windows和linux(搭配ibus; scim;fcitx)都有不同狀況的無法輸入中文,
這裡只針對環境ubuntu+ibus,可以安裝plugin來解決。
安裝一個sublime text 2的插件InputHelper,用於輸入中文,安裝如下:
cd ~/.config/sublime-text-2/Packages
git clone https:// github.com/xgenvn/Input Helper.git
重新啟動之後按Ctrl+Shift+Z可跳出一個中文輸入框(不好用但加減用)。
2013年4月26日 星期五
Copy a file to multiple directory.
Copy a file to multiple folder. Can use find command and type directory (-type d).
Then use -exec run cp command copy to target {}.
e.g.
find . -name "folder_name" -type d -exec cp /xxx/filename.txt {} \;
e.g.
find . -name "folder_name" -type d -exec cp /xxx/filename.txt {} \;
2013年3月29日 星期五
Set user shell using ssh script to linux base system and sudo problem.
I using ruby ssh library to linux server. then run sudo command.
like "sudo usermod -s /sbin/nologin Chien-Ming-Wang".
centos:
Set user shell: sudo chsh -s /sbin/nologin [login name]
When error: "sudo: sorry, you must have a tty to run sudo"
vi /etc/sudoers
mark line: "Defaults requiretty"
Debian & Ubuntu:
Set user shell: usermod -s /usr/sbin/nologin [login name]
When error: "sudo: no tty present and no askpass program specified"
vi /etc/sudoers
Add line: [login name] ALL=(ALL) NOPASSWD: ALL
FreeBSD:
Set user shell: sudo pw usermod [login name] -s /usr/sbin/nologin
When error: "sudo: no tty present and no askpass program specified"
vi /usr/local/etc/sudoers
Add line: [login name] ALL=(ALL) NOPASSWD: ALL
like "sudo usermod -s /sbin/nologin Chien-Ming-Wang".
centos:
Set user shell: sudo chsh -s /sbin/nologin [login name]
When error: "sudo: sorry, you must have a tty to run sudo"
vi /etc/sudoers
mark line: "Defaults requiretty"
Debian & Ubuntu:
Set user shell: usermod -s /usr/sbin/nologin [login name]
When error: "sudo: no tty present and no askpass program specified"
vi /etc/sudoers
Add line: [login name] ALL=(ALL) NOPASSWD: ALL
FreeBSD:
Set user shell: sudo pw usermod [login name] -s /usr/sbin/nologin
When error: "sudo: no tty present and no askpass program specified"
vi /usr/local/etc/sudoers
Add line: [login name] ALL=(ALL) NOPASSWD: ALL
2013年3月18日 星期一
用ssh tunnel來突破公司的防火牆
用ssh tunnel來突破公司的防火牆
外部電腦能連至Server,但Server不能連至公司內電腦,但公司內電腦能連至Server,此時運用反向Tunnel。
外部電腦不能連至公司內電腦,但內部電腦能連至外部電腦,此時運用反向Tunnel。
外部電腦能連至Server,但Server不能連至公司內電腦,但公司內電腦能連至Server,此時運用反向Tunnel。
- 公司內電腦建立反向Tunnel連至Server: ssh -NfR 2222:127.0.0.1:22 server_ip_or_domain
- 外部電腦建tunnel連至Server: ssh -NfL 4444:localhost:2222 server_ip_or_domain
- 外部電腦 即可連至公司內電腦: ssh -p4444 localhost
外部電腦不能連至公司內電腦,但內部電腦能連至外部電腦,此時運用反向Tunnel。
- 公司內電腦建立反向Tunnel連至外部電腦 ssh -NfR 2222:127.0.0.1:22 external_ip_or_domain
- 外部電腦 即可連至公司內電腦: ssh -p2222 localhost
參數說明
- -L [bind_address:]port:host:hostport
- Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
- -R [bind_address:]port:host:hostport
- Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
- -N Do not execute a remote command.
- -f Requests ssh to go to background just before command execution.
訂閱:
文章 (Atom)