2011年12月22日

iPhone or iPad 2 升級 iOS 5 之後 Facetime 不能連線問題

解法 :
1. 點選 "設定"
2. 選 "Facetime"
3. 關閉, 等個半分鐘
4. 開啟, 會要求重新輸入 Apple ID 密碼
5. 重新測試連線
6. done

2011年12月13日

CentOS 6.0.x 升級為 6.1

最近 CentOS v6.1 release, 本身是使用 CentOS v6.0.4 於是使用 yum update , 但只會升到 CentOS v6.0.6 不會到 6.1

查了一下是要加上參數 --releasever, 如下

yum update -y --releasever=6.1

這樣就可以利用 yum 升到 CentOS v6.1 了~

2011年11月24日

2011 慈濟歲末祝福時間表 [大台北地區]

歡迎大家前往參加,時間約在 11/24(四) ~ 11/30(三) 之間,讓我們省思 2011 年並互相祝福 2012 年

2011年11月1日

加強 CentOS YUM 的內容

安裝 EPEL 增強套件庫,這是由 Fedora project 所蒐集的常用軟體內容,增強了 YUM 本身收錄軟體太少的不足

CentOS 5 執行以下指令即可安裝
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

安裝完了同樣使用 yum search, 就會發現很多以前找不到的套件現在都有囉~

2011年10月10日

幾個 iPhone 開發所用的 coverflow 效果外掛

flowcover
tapku
openflow

目前採用 tapku, 使用上還 OK

2011年9月13日

如何檢測 Perl 有沒有安裝想要的 CPAN 模組

假設要檢測的模組叫做 Mail::Sender, 可輸入以下語法並執行

法1
# perl -MMail::Sender -e 'print "Module installed\n"'
假如有安裝 Mail::Sender 模組的話會印出 Module installed, 沒有的話會有錯誤訊息。

法2
# 執行 instmodsh, 再打 l , 即會列出目前已安裝之 Perl module

2011年8月30日

開啟 CentOS 6 內建 rsyslogd 的外部 log 接收功能

新版 CentOS 6 改用 rsyslog 取代 syslogd,所以用法也不同

Server 端開啟方式如下
1. vim /etc/rsyslog.conf
2. 將此兩行的註解 # 取消
#$ModLoad imudp.so
#UDPServerRun 514
3. 存檔離開
4. /etc/init.d/rsyslog restart
5. netstat -ntulp | grep 514

有看到 0.0.0.0:514 就可以收工了~

同場加映 Client 設定方法
1. vim /etc/rsyslog.conf , 移到最下面
2. 新增 *.* @你的Log server IP:514
3. 存檔
4. /etc/init.d/rsyslog restart

接著去 log server 下 tail -F /var/log/secure
然後去 client 的 server 登入隨便一個使用者
就會在 log server 看到登入資訊啦!

再收工一次!

2011年8月24日

去除文件中的 ^M

perl -p -i -e 's/\r\n$/\n/g' file1.txt

2011年8月15日

WHO 健康食物排行榜


手動安裝 Perl CPAN 套件

解開下載後的套件,進入該目錄執行

perl Makefile.pl
make
make test
make install

收工

2011年8月10日

CentOS 5 / RHEL5 偵測 CPU 溫度 (安裝 lm_sensors)

先下載必須的檔案

1. dkms 2.0.17.4-1.e15.rf.noarch.rpm 下載點:
dkms-2.0.17.4-1.el5.rf.noarch.rpm
2. dkms-coretemp module 下載點:dkms-coretemp-1.00-1.noarch.rpm

安裝 dkms
rpm -ivh dkms-*

先安裝相依檔案
yum install kernel-devel.i686
yum install bison
yum install flex

下載 lm-sensors v3.3.1
下載點

解壓並安裝
安裝 lm-sensors 3.3.1
1. bzip2 -d lm_sensors-3.3.1.tar.bz2
2. tar xvf lm_sensors-3.3.1.tar
3. cd /lm_sensors-3.3.1
4. make install

設定
執行安裝目錄下的 /lm_sensors-3.3.1/prog/detect/sensors-detect 作系統偵測,過程中都按 Enter 鍵就可以:
1. 先 chmod 755 sensors-detect
2. ./sensors-detect

再把執行檔複製到路徑中:
cp /usr/local/sensors /usr/bin/sensors

執行 sensors 就可以看到 CPU 溫度了!

參考 : 暉獲無度的步烙閣

2011年7月30日

Xcode 4.0 如何建立 Distrubution profile 並上傳至 app store

這篇講得很詳細,不然我還真不知道 Xcode v4.0 要怎麼上傳哩
這裡

2011年7月26日

MySQL 設定密碼

首次安裝 MySQL 設定新密碼
# mysqladmin -u root password 新密碼

設定以後要更改密碼,指令為:
# mysqladmin -u root -p password 新密碼

2011年7月25日

讓 Apache 不顯示 Parent Directory

修改 httpd.conf
在 IndexIgnore 後面加上 ..

例: IndexIgnore ..

然後再重啟 Apache
service httpd restart

完成!

PHP 執行外部命令問題集

利用 PHP 來執行 Linux shell command, 例如

<?php
$result = `sudo /usr/bin/chage -l username`;
echo "$result";
?>

結果顯示不出結果, 查了 /etc/httpd/logs/error_log, 顯示
chage: Permission denied.
表示我的 user 沒有權限執行這個指令, 而 web 的 user 是 apache 這個名字
解法: 執行 visudo, 新增一行
apache ALL=(ALL) NOPASSWD:/usr/bin/chage
讓 apache 這個使用者能夠不用輸入 sudo 密碼就可以執行 chage 指令

改完後還是顯示不出結果, 查了 /etc/httpd/logs/error_log, 顯示
sudo: sorry, you must have a tty to run sudo apache

解法: visudo 修改裡面的 Defaults requiretty 把它用 # 註解起來, 再度執行, 終於可以在網頁上顯示使用者帳戶資訊了

2011年7月21日

Apache 顯示目錄不要帶太多系統內容

本來顯示目錄後在最下方會顯示出 Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 這樣類似的內容有的還會把 CentOS v6.0 等 OS 的名稱版本都顯示出來,很容易被有心人進行攻擊的參考資訊,我們可以修改 httpd.conf 讓隱藏訊息

1. vim /etc/httpd/conf/httpd.conf
2. 找到 ServerTokes 字串, 預設應該是 OS, 把它改成 Prod, 詳細的參數可參考這裡
3. service httpd restart

再顯示應該只有 Apache Server at IP Port 80 了~

Apache Web 網頁使用 Linux 系統帳號作權限認證

原本是要採用 mod_auth_pam,但是他的版本太舊了,只能支援 Apachehttp://www.blogger.com/img/blank.gif v1.3 跟 2.0,所以我們改採用 mod_auth_shadow 來做
1. 先下載 mod_auth_shadow-2.3 下來
2. 解壓縮後,切換成 root 然後進入目錄執行 make all
3. make install
4. 檢查 /etc/httpd/conf/httpd.conf 是不是有多一行 LoadModule auth_shadow_module /usr/lib64/httpd/modules/mod_auth_shadow.so (我是用CentOS 64bits 所以會在 lib64)
5. 檢查在 <Directory "/var/www/html"> 裡面有沒有
AllowOverride AuthConfig
Order allow,deny
Allow from all
6. chmod 400 /etc/shadow
7. chmod 4755 /usr/local/sbin/validate (新增 owner 的 suid 這樣 apache 才能去讀 /etc/shadow)
8. service httpd restart
9. 設定 /var/www/html/.htaccess 內容如下
AuthShadow on
AuthType Basic
AuthName "Input username and password"
require valid-user
10. 開啟瀏覽器測試,輸入使用者在 Linux 系統上的帳密,就可以登入受管控的網頁了!

P.S. mod_auth_shadow 也支援 require user 或 require group 等強大的授權功能

2011年7月19日

[Linux] 將 big5 編碼的文字檔轉換成 utf8

原本的 Linux 裡面的 LANG 是設定成 zh.TW.big5,但是新的主機是設定成 UTF-8,所以原本存的中文文字檔到新的主機就變亂碼,所以必須進行轉檔

利用 iconv 指令,用法如下:
iconv -f big5 -t utf8 source_filename -o dest_filename

搞定!

2011年7月13日

2011年7月4日

[Linux] 去除空白行

以下每種方法都可行~

$ grep -v '^$' file
$ grep '.' file
$ sed '/^$/d' file
$ sed -n '/^$/!p' file
$ awk NF file
$ awk '/./' file

2011年6月21日

如何檢測 Port 是否有活著 (TCP, UDP)

TCP:
使用 telnet
telnet IP tcpport
如果成功會出現
Connected to IP
Escape character is '^]'

此時就按 Ctrl + ] 即可跳開到 telnet> 再下 quit 指令即可回到命令列

UDP:
使用 netcat
nc -zu IP udpport
如果成功會回應 Connection to IP port [udp....] succeeded!

2011年6月6日

CH57 健康同學會 - 8大健康優質零食大公開

現在一堆麵包、飲料等加工品都有塑化劑,如果真的很嘴饞的話,還是吃天然的食物來取代零食吧~



椎間盤突出復健體操 (背痛腰痛者也適用)

有椎間盤突出的人,像我自己後來是靠游泳來強化自己的腹部背部肌肉,讓身體不要那麼不適。剛好最近看恐怖家庭醫學節目,也有介紹相關鍛鍊的方式,而且屬於相當溫和在家即可做復健,重點是要持之以恆,於是趕快拿起手機記錄下來,希望如有相同問題的朋友不要灰心,持之以恆一定能恢復正常生活的~







2011年5月15日

安裝 PHP 模組與中文字在 URL 上的編碼

今天要實作中文字串在 URL 裡面編碼的功能,所以找了一些 PHP 資料後得知要採用 urlencode + mb_convert_encoding (先把 BIG5 轉成 UTF-8 再把字串 urlencode)

程式語法如下:
$enc_address = urlencode(mb_convert_encoding($userinput, "UTF-8", "BIG5"));
主要是把中文原先為 BIG5 編碼的地址轉編碼為 UTF-8 然後存成 $enc_address

結果執行後出現 "PHP Fatal error: Call to undefined function mb_convert_encoding()",看起來是沒有安裝模組,執行 php -m 果然沒看到 mbstring 模組,後來找到解法很簡單,執行 yum install php-mbstring 來安裝,跑完就可以用囉~

2011年4月25日

Linux 切換使用者出現 "/bin/bash : No such file or directory"

[root@VOIP bin]$ su - cvs
Password:
su: /bin/bash : No such file or directory

問題:Linux 切換使用者出現 "/bin/bash : No such file or directory"

檢查該使用者也有 home 目錄,/bin/bash 檔案也都在權限也沒問題,後來爬文找出原因是系統的 /etc/passwd 在該使用者那行多了看不出來的空白,解決方法如下

解法:
vim /etc/passwd 檔案,把 cvs 使用者那行最後面多餘的空白都殺掉,存檔,再切換就可以了

2011年4月15日

iptables 防火牆設定備份及復原

iptables configuration backup / restore

備份設定檔
iptables-save > /root/iptables.conf

還原設定檔
iptables-restore < /root/iptables.conf

2011年3月29日

Synology DS411+ 安裝 ipkg 再用來安裝 SVN

ipkg 就像是 Linux 上的 yum, apt-get 等的套件管理工具,在 embedded Linux 上面就是採用 ipkg 套件工具

先進入 DS411+ 管理介面點選 [控制台] -> [終端機] -> 啟動 SSH 功能打勾


開啟 PuTTY 登入 NAS, 帳號為 root, 密碼為 NAS 管理網頁 admin 帳號的密碼


先下載 ipkg 套件
DiskStation>cd /tmp
DiskStation>wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh

安裝 ipkg, 安裝過程如下
DiskStation> sh syno-i686-bootstrap_1.2-7_i686.xsh
Optware Bootstrap for syno-i686.
Extracting archive... please wait
bootstrap/
bootstrap/bootstrap.sh
bootstrap/ipkg-opt.ipk
bootstrap/ipkg.sh
bootstrap/optware-bootstrap.ipk
bootstrap/wget.ipk
1215+1 records in
1215+1 records out
Creating temporary ipkg repository...
Installing optware-bootstrap package...
Unpacking optware-bootstrap.ipk...Done.
Configuring optware-bootstrap.ipk...Modifying /etc/rc.local
Done.
Installing ipkg...
Unpacking ipkg-opt.ipk...Done.
Configuring ipkg-opt.ipk...WARNING: can't open config file: /usr/syno/ssl/openssl.cnf
Done.
Removing temporary ipkg repository...
Installing wget...
Installing wget (1.12-2) to root...
Configuring wget
Successfully terminated.
Creating /opt/etc/ipkg/cross-feed.conf...
Setup complete.

更新 ipkg 列表
DiskStation>ipkg update

升級 ipkg 到最新版
DiskStation>ipkg upgrade

利用 ipkg 來安裝 SVN, ipkg 就會幫我們安裝 SVN 所需要的 sqlite, openldap 等相依的軟體了
DiskStation>ipkg install svn

參考網頁
ipkg 支援套件列表
Synology 官方安裝說明
Synology 各型號 NAS 對應之 ipkg 套件下載點

2011年3月17日

光華商場 2011年公休日期表

去年去兩次都遇到星期二公休,最近去有看到公休表,趕緊做個記錄

地震自救十要領

地震時盡量保持冷靜, 找找看附近有沒有黃金三角點可以躲避

CH57 健康同學會 - 預防輻射方式

日本震災後,此類的訊息大家多參考

2011年3月16日

利用 Tar 備份且排除不想備份的目錄或檔案

想要進行目錄備份, 但是目的目錄中有一個子目錄很大且裡面是過時的 log 資料,於是找了些資料找到解法,情況如下

要備份的目錄是 wtl
不想要備份的是 wtl 裡面的 upgrade 子目錄

於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名

最後的 tar 指令如下

tar zcvf wtl_backup.tgz --exclude=wtl/upgrade wtl/

這樣就不會將 upgrade 目錄備份進來了

2011年3月11日

2011年3月7日

CH57 健康同學會 - 10 種強健骨骼的食物

魚跟奶類都不錯!

一些資訊電信業的名詞縮寫及解釋

到了不同的公司、組織或單位都會有不一樣的專用名詞,也表示該公司的性質跟單位的功能不同,此篇以後會一直更新

OAM&P
運行、管理、維護和配置 OAM&P Operation Administration maintenance and Provisioning

VAS (Value-added services)
加值服務

UGC (User Generated Content)
所謂真正的UGC不見得是原創,但絕對要是分享一個本身蘊含故事的內容,譬如,一篇自己身邊的新聞、一段自己小狗的影片,一小則自己引吭高歌的錄音podcast、一段自己摸索出來的使用說明、一支自己寫的Flash遊戲、一張自己拍的美麗山景照,不必搞得太專業也可以放到CNN I-Report、YouTube、Photobucket、OhMyNews、eHow

SNS (Social Network Services)
社群服務, Facebook, bebo, Twitter, Plurk, Myspace

OSS 運作支援系統
operations support system

CBA 成本效益分析
Cost-Benefit Analysis

2011年3月4日

室內去甲醛 3 大植物高手

CH57 健康同學會針對辦公室整理出來的 3 大去甲醛植物,提供給大家參考

男人十大活力健康食物

CH57 健康同學會針對男人整理出來的十大活力健康食物,提供給大家作參考

Synology DS411+ RAID1 轉移為 RAID5

目的 : 將原本已建立且有資料在上面的 RAID1 磁碟陣列,新增一顆硬碟並轉換為 RAID5
NAS : Synology DS411+ with DSM 3.0
硬碟 : Hitachi SATA2 2TB x 3

本來是兩顆 Hitachi 2TB 作 RAID1 資料保護, 後來又新買了一顆相同的 2TB 硬碟,一方面增加儲存容量,另一方面來試試看升成 RAID5 原先在 RAID1 上的資料是否會不見

裝上硬碟後並開始轉移,時間約經過 33 小時,順利轉換完畢,原先的兩百多 GB 的資料均無遺失,相當厲害!

原本 3 顆硬碟應該有 6TB 容量,但做完 RAID5 之後剩下 3.57TB,此組合當成儲存空間 1,當做資料的純儲存碟;另外還有裝一顆 WD 黑標當成儲存空間 2,一些 BT 還是 HTTP 下載的雜檔就由這顆來儲存了

2011年3月2日

2011年2月23日

Compile PHP 4 to Apache v1.3

cd /php
./configure --with-apxs=/usr/local/apache/bin/apxs --enable-track-vars
make
make install

將 php.ini-disk 複製到 /usr/local/lib

重啟 apache

[自動化網管] Expect on Perl

程式名稱叫作 : reboot.pl

程式是要去遠端重開 voice gw

程式碼如下 :

use Expect;
$ip_address = $ARGV[0];
$mac_address = $ARGV[1];
$password = `/reboot/voice_1port.sh $mac_address | awk '{print \$2}'`; #voice_1port.sh 是算登入密碼的程式

if ($ip_addree eq '' and $mac_address eq '') {
print "Too less arguments!\nRight Syntax : reboot.pl IP_ADRESS MAC_ADDRESS\n";
}
else {
chomp($password);
$cmd = "telnet";
my $exp = Expect->spawn($cmd, "$ip_address")
or die "Cannot spawn $cmd\n";
$exp->expect($timeout, -re=>'Password:');
$exp->send("$password\r\n");
$exp->expect($timeout, -re=>'>');
$exp->send("sys reboot\r\n");
$exp->soft_close();
print "$ip_address rebooting!\n";
}

2011年2月22日

[自動化網管] 利用 expect 自動化登入系統並執行重開機

如系統無安裝 expect 可執行以下安裝步驟

su -
yum install expect

執行登入並重開機的程式碼如下

#!/usr/bin/expect

set host "[lrange $argv 0 0]" #變數1: 主機 IP
set pass "[lrange $argv 1 1]" #變數2: 主機密碼

spawn /usr/bin/ssh root@$host #執行 ssh 並用 root 帳號登入指定的 IP
expect "Are you sure you want to continue connecting (yes/no)?" {send "yes\r"} #抓到特定 pattern 就送出 yes 字串
expect "password:" {send "$pass\r"} #抓到特定 pattern 就送出 $pass 變數所存到密碼內容
expect "root>" {send "reboot\r"} #抓到特定 pattern 就送出 reboot 字串並執行
send "\r" #空一格
send "exit\r" #登出

用任何藍芽耳機聽 iPhone 的音樂 [需JB]

一般來說要有支援 A2DP 立體聲的藍芽耳機才能直接從 iPhone 聽音樂

但如果您的 iPhone 有 JB, 就可以另行安裝 bluetooth mono 這個套件,安裝之後在 SBSetting 裡面啟動,就可以使用單音的藍芽耳機聽 iPhone 上的音樂或廣播囉,對於無 A2DP 的使用者真的一大福音!

2011年2月8日

將 MySQL 的 DB 輸出為外部 CSV 檔

SELECT * INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM my_test_table;

2011年1月20日

免費 PHP 電子書

Practical PHP Programming

內容還蠻豐富的~
http://www.tuxradar.com/practicalphp

Chapter index

1. Preface
2. Introducing PHP
3. Simple variables and operators
4. Functions
5. Arrays
6. Objects
7. HTML Forms
8. Files
9. Databases
10. Cookies and Sessions
11. Multimedia
12. XML & XSLT
13. Output Buffering
14. Java and COM
15. Networks
16. Miscellaneous topics
17. Security concerns
18. Performance
19. Writing PHP
20. Writing extensions
21. Alternative PHP uses
22. Practical PHP
23. Bringing it to a close
24. Answers to Exercises
25. The future of PHP
26. Glossary

2011年1月11日

Solaris 取得 DCHP IP

永久法:
使用 root 建立如下的空檔案 (hme0 為網卡的名稱)
touch /etc/dhcp.hme0
touch /etc/hostname.hme0

手動取得法:
查看目前 DCHP 自動取得 IP 狀態
ifconfig hme0 dhcp status

將目前取得之 DHCP IP 釋放
ifconfig hme0 dhcp release

開始取得 DHCP IP
ifconfig hme0 dhcp start

2011年1月4日

2011 年公家機關行事曆

還沒下載列印的朋友可以從這邊去人事行政局下載喔~

載點

這個小工具發生錯誤