2008年11月27日 星期四

MySQL的備份及還原:使用mysqldump及gzip

Backup:
mysqldump [database_name] -u root -p | gzip > backup.sql.gz

Restore:

如果沒有database
mysql -u root -p
mysql>create database [database_name];
Query OK, 1 row affected (0.01 sec)
mysql>exit
Bye

gunzip backup.sql.gz
mysql [database_name] -u root -p < backup.sql

2008年8月5日 星期二

[Ubuntu] sshpass: 使ssh不必利用鍵盤輸入密碼

在開發程式時遇到一種狀況:需要使用到不同主機的終端程式的輸出結果,但又不想利用Web Service這種麻煩方法,所以想到利用 ssh的執行程式功能;但ssh由於安全上的設計,需要使用者利用鍵盤輸入密碼。這時可以利用sshpass,光看指令名稱就知道這是讓我們可以直接指定ssh密碼的程式,使用方法如下:

sshpass -p <密碼> ssh <使用者>@<主機> <指令>

安裝方法也很簡單

apt-get install sshpass

另外請注意,這個程式必須在你至少執行過一次手動登入後才能作用,因為ssh必須提示你是否須建立金鑰 (也許有個程式也可以幫助我們省略這段)

2008年5月13日 星期二

[Ubuntu] 發生Error while getting interface flags: no such device錯誤

這種情形通常是發生在變更網路卡及MAC位址改變的時候,先確定Ubuntu能順利抓取網路卡驅動程式用dmesg | grep eth查看(不要用eth0,因為系統自動給定的數字不一定是0),如果有類似 ethx: registered as xxxxxxx,就表示驅動成功。 接著編輯/etc/udev/rules.d/70-persistent-net.rules這個檔案,如果你的設定不複雜,例如只有一張網路卡,就將所有內容刪除即可,如果你不確定,那就找到結尾為NAME="ethx" (ethx就是利用 dmesg | grep eth所查出的那個)的那行刪除即可。接著再執行
sudo /etc/init.d/udev restart
如果順利,回去檢查 /etc/udev/rules.d/70-persistent-net.rules 檔案,正確的設定(MAC位址)應該以順利加入。記得修改/etc/network/interfaces檔案內容使介面編號一致(就是ethx)。接著重新啟動網路
sudo ifup ethx
網路應該就沒問題了。

2008年4月20日 星期日

[Ubuntu][Virtualbox] 在Virtualbox安裝Ubuntu 7.10 Server

在VirtuaBox中安裝Ubuntu 7.10 Server版後,重開機就會看見

PANIC: CPU too old for this kernel

接著就掛了。

解決方案:安裝完後再用Ubuntu CD(或iso)開機,選擇"Rescue a broken system",在回答了與第一次安裝相同的幾個問題後,出現一個畫面"Enter rescue mode",選擇第一項"Execute a shell in /dev/sda1",接著進入命令模式,執行以下指令:

apt-get update
apt-get remove linux-server
apt-get install linux-386
apt-get install linux-server

如果無誤,執行exit登出,可能會出現錯誤訊息,不理他用VirtualBox重開機,應該就可以了。