解法 :
1. 點選 "設定"
2. 選 "Facetime"
3. 關閉, 等個半分鐘
4. 開啟, 會要求重新輸入 Apple ID 密碼
5. 重新測試連線
6. done
2011年12月22日
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 了~
查了一下是要加上參數 --releasever, 如下
yum update -y --releasever=6.1
這樣就可以利用 yum 升到 CentOS v6.1 了~
2011年11月24日
2011年11月1日
2011年10月10日
2011年9月13日
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 看到登入資訊啦!
再收工一次!
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月15日
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 溫度了!
參考 : 暉獲無度的步烙閣
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 溫度了!
參考 : 暉獲無度的步烙閣
標籤:
centos,
linux CPU 溫度,
lm_sensors,
rhel
2011年7月30日
Xcode 4.0 如何建立 Distrubution profile 並上傳至 app store
這篇講得很詳細,不然我還真不知道 Xcode v4.0 要怎麼上傳哩
這裡
這裡
標籤:
provision profile,
xcode4
2011年7月26日
MySQL 設定密碼
首次安裝 MySQL 設定新密碼
# mysqladmin -u root password 新密碼
設定以後要更改密碼,指令為:
# mysqladmin -u root -p password 新密碼
# mysqladmin -u root password 新密碼
設定以後要更改密碼,指令為:
# mysqladmin -u root -p password 新密碼
2011年7月25日
讓 Apache 不顯示 Parent Directory
修改 httpd.conf
在 IndexIgnore 後面加上 ..
例: IndexIgnore ..
然後再重啟 Apache
service httpd restart
完成!
在 IndexIgnore 後面加上 ..
例: IndexIgnore ..
然後再重啟 Apache
service httpd restart
完成!
標籤:
apache,
httpd.conf
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 把它用 # 註解起來, 再度執行, 終於可以在網頁上顯示使用者帳戶資訊了
<?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 了~
1. vim /etc/httpd/conf/httpd.conf
2. 找到 ServerTokes 字串, 預設應該是 OS, 把它改成 Prod, 詳細的參數可參考這裡
3. service httpd restart
再顯示應該只有 Apache Server at IP Port 80 了~
標籤:
系統資訊,
apache,
ServerTokens
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 等強大的授權功能
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 等強大的授權功能
標籤:
系統帳號認證,
apache,
mod_auth_pam,
mod_auth_shadow
2011年7月19日
[Linux] 將 big5 編碼的文字檔轉換成 utf8
原本的 Linux 裡面的 LANG 是設定成 zh.TW.big5,但是新的主機是設定成 UTF-8,所以原本存的中文文字檔到新的主機就變亂碼,所以必須進行轉檔
利用 iconv 指令,用法如下:
iconv -f big5 -t utf8 source_filename -o dest_filename
搞定!
利用 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
$ grep -v '^$' file
$ grep '.' file
$ sed '/^$/d' file
$ sed -n '/^$/!p' file
$ awk NF file
$ awk '/./' file
標籤:
blank line,
Linux
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!
使用 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日
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 來安裝,跑完就可以用囉~
程式語法如下:
$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 使用者那行最後面多餘的空白都殺掉,存檔,再切換就可以了
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日
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 套件下載點
先進入 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年3月16日
利用 Tar 備份且排除不想備份的目錄或檔案
想要進行目錄備份, 但是目的目錄中有一個子目錄很大且裡面是過時的 log 資料,於是找了些資料找到解法,情況如下
要備份的目錄是 wtl
不想要備份的是 wtl 裡面的 upgrade 子目錄
於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名
最後的 tar 指令如下
tar zcvf wtl_backup.tgz --exclude=wtl/upgrade wtl/
這樣就不會將 upgrade 目錄備份進來了
要備份的目錄是 wtl
不想要備份的是 wtl 裡面的 upgrade 子目錄
於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名
最後的 tar 指令如下
tar zcvf wtl_backup.tgz --exclude=wtl/upgrade wtl/
這樣就不會將 upgrade 目錄備份進來了
2011年3月11日
2011年3月7日
一些資訊電信業的名詞縮寫及解釋
到了不同的公司、組織或單位都會有不一樣的專用名詞,也表示該公司的性質跟單位的功能不同,此篇以後會一直更新
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
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日
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 下載的雜檔就由這顆來儲存了
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年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
./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";
}
程式是要去遠端重開 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" #登出
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" #登出
標籤:
自動化網管,
expect,
shell script
用任何藍芽耳機聽 iPhone 的音樂 [需JB]
一般來說要有支援 A2DP 立體聲的藍芽耳機才能直接從 iPhone 聽音樂
但如果您的 iPhone 有 JB, 就可以另行安裝 bluetooth mono 這個套件,安裝之後在 SBSetting 裡面啟動,就可以使用單音的藍芽耳機聽 iPhone 上的音樂或廣播囉,對於無 A2DP 的使用者真的一大福音!
但如果您的 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;
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
內容還蠻豐富的~
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日
訂閱:
文章 (Atom)