2010年1月24日 星期日

Firefox 加速技巧!!!

下面的操作我們都在 about:config 裡進行。在 Firefox 的地址欄中輸入 about:config,讓我們開始提速吧。

* network.http.pipelining


在 Filter 中輸入 network.http.pipelining,雙擊賦值為 true,默認為 false。如果沒有找到這個鍵值,可以右鍵新建一個 Boolean,把她賦值為 true 就 OK 了。

還是像我在從前解釋過的那樣,激活這個鍵值之後,Pipelining同時發出成倍數的連接請求,從而達到提升連接速度的效果。網絡上的大多數網站都是基於 HTTP 協議,而 HTTP 1.1可以支持多線程的連接請求,通過這個操作可以減少Firefox載入網頁的時間。不過並不是所有網頁所在的服務器都支持這種操作,所以當你修改鍵值之後卻看不到一點實際效果的時候,請不要對我破口大罵。

* network.http.pipelining.maxrequests


在 Filter 中輸入 network.http.pipelining.maxrequests,雙擊並賦值為 8,默認鍵值為 4。

* network.http.proxy.pipelining


在 Filter 中輸入 network.http.proxy.pipelining,雙擊並賦值為 true。

這兩條優化的道理同上,這裡就不再多解釋了。

* network.dns.disableIPv6


在 Filter 中輸入 network.dns.disableIPv6,雙擊並賦值為 true。

IPv6把 IP 地址由 32 位增加到 128 位,從而能夠支持更大的地址空間,當用戶在終端向一個 IPv6-capableDNS服務器發送連接請求時,也許服務器端會錯誤的返回給用戶一個 IPv4 地址。而 Firefox 可以對這一切明察秋毫,不過在Firefox糾錯的同時也必然會導致信號的延遲,所以這裡我們把她賦值為 true,禁用掉她。

* content.interrupt.parsing


右鍵新建 Boolean 值,鍵名為 content.interrupt.parsing,賦值 true。

默認這個鍵值並不存在。我們激活這個鍵值之後,當目標網頁載入時,Firefox會根據一定頻率打斷解析的過程,不斷的向用戶反饋她所收集到的網頁信息,有點像流媒體的意思。這時的 Firefox很聰明,不會一根筋的一直鑽牛角。在下面的內容中我還會具體講一下這個鍵值的魅力所在。

* content.max.tokenizing.time


右鍵新建 Integer 值,鍵名為 content.max.tokenizing.time,賦值 2250000。

這個鍵值的作用其實就是指定一個循環事件的處理週期,這裡的單位是微秒,要是我沒有算錯的話。理論上當我們將這個值取的越小,網頁就會從視覺上載入的越流暢,因為Firefox會在很短的單位時間裡反饋回解析到的網頁信息。可是這樣無疑延遲了網頁整體載入的時間,所以在這裡我們不妨將這個週期取的大一些,理論上可以加速網頁的載入。

* content.notify.interval


右鍵新建 Integer 值,鍵名為 content.notify.interval,賦值 750000。

載入一個網頁其實也是一門很大的學問。讓我們來放一個慢動作,我們姑且先把在終端第一次收到的網頁信息很不專業的叫做預載入頁面吧,這個頁面有可能是不完整的圖片或者文字,或者別的媒體文件。從我們第一次向遠端主機發出連接請求到我們在終端收到這個預載入頁面花費的時間,就是這裡我們要定義的鍵值。理論上當我們將這個時間設置的很低時,肯定會更快的拿到所謂的預載入頁面,可這是一種殺雞取卵的做法,這樣無形中反而增加了我們整體頁面的載入時間。按照官方的說法,低於 100,000 將會降低 Firefox 的性能,那好吧,那我們把她彪到 750000 吧。

* content.notify.ontimer


右鍵新建 Boolean 值,鍵名為 content.notify.ontimer,賦值 true。

為了使我們上面設置的 750000 微秒生效,還需要把這個鍵值激活。只有這兩個鍵值配合,才會起作用。

* content.notify.backoffcount


右鍵新建 Integer 值,鍵名為 content.notify.backoffcount,賦值 5。

這個鍵值控制Firefox的內置計數器在歸零之前載入頁面返回的次數。我們將目標網頁分成好多個部分進行下載,每下載完一個部分,計數器歸零一次。-1 就是沒有限制,值為 0時這項功能被禁用。這裡我們將她設置成5,當返回的次數達到五次而這部分網頁還沒有完全下載完時,那麼剩下的沒有下載完的網頁內容將不會再按照我們預告設置的週期,像之前的五次那樣一點一點的搬運回來,而是會一次性的下載完。也就是說在這個部分的網頁下載過程中,Firefox 一共向我們反饋了 6 次信息,前5次的時間間隔是我們在上面的鍵值中設置的週期 2250000 微秒,而第6次也就是最後一次則沒有時間限制,什麼時候把剩下的下完了,什麼時候反饋回來。

只有當我們在上面提到的 content.notify.ontimer 鍵值為 true 的時候,這裡的設置才會生效。

* content.switch.threshold


右鍵新建 Integer 值,鍵名為 content.switch.threshold ,賦值 750000,也就是四分之三秒。

在前面我們提到了一個鍵值 content.interrupt.parsing,通過激活她實際上我們可以在載入頁面的過程中跟Firefox產生互動,畢竟我們每一個人的心裡都充滿了愛。把 content.interrupt.parsing 激活後當頁面載入時Firefox會有兩種操作模式:高頻和低頻中斷模式。使用高頻模式時,網頁回饋的頻率也很高,我們坐在顯示器前看到的網頁載入過程也會更加的平滑。低頻時網頁回饋的頻率相對比較低,可是這時反而加快了網頁載入的時間。當我們移動鼠標或者觸擊鍵盤時,高頻模式被激活。在經過某一段時間我們沒有碰鼠標和鍵盤,程序沒有接到鼠標和鍵盤發出的任何指令時,Firefox 就會自動進入低頻模式工作,而這所謂的某一段時間,就是我們這裡要指定的值。

* nglayout.initialpaint.delay


右鍵新建 Integer 值,鍵名為 nglayout.initialpaint.delay,賦值 0。

這裡實際上延遲了整個網頁的顯示速度,但是因為用戶更喜歡在整個網頁完全截入之前就開始閱讀網頁 (就像流媒體那樣),所以在這裡可以把值調為零,加速用戶閱讀網頁的速度,有時候閱讀速度和載入速度並不是成正比的。

幫Facebook臉書上的好友「分類」,瀏覽訊息更輕鬆!

來自 重灌狂人


如何幫Facebook臉書上的好友「分類」?

第1步 開啟並登入Facebook網站,按一下「朋友」→ 「所有朋友」。


第2步 進入「所有朋友」頁面後,請按一下「建立新名單」,然後在方框中輸入分類名稱,如「同學」,設定好名稱之後再按一下「Enter」。


第3步 設定好分類名稱後,請從下面方框中點選此分類的好友,按一下好友圖示讓他反白、出現勾勾之後,表示把它加入此分類,全部設定好之後,再按「建立名單」按鈕。

接著,請依照前面2個步驟設定好其他的分類,並勾選該分類的好友。


第4步 將你真正的「好友」設定到指定的好友名單之後,請按一下「首頁」按鈕回到Facebook首頁,在首頁左邊目錄下方按一下「更多」,將全部目錄列出來。


第5步 接著請將比較常用的分類或項目用滑鼠左鍵按住不放、再拖拉到目錄上方,或依照你的需求調整分類與各個項目的顯示順序。


第6步 注意!只要將某個分類或項目拉到整個目錄區塊的最上方,下次當我們開啟Facebook首頁時,便會自動「只」顯示該分類中的訊息,如果要瀏覽其他分類的訊息請再從左邊的目錄點選。

如此一來,整個Facebook的訊息展示就更清楚些囉!注意!設定好朋友群組之後,請記得再參考這篇文章「修改Facebook隱私權,只讓指定的人看照片、訊息」,調整一下Facebook隱私權設定,讓自己的個人資料只給認識的親朋好友看,不讓不認識的人來亂。


修改Facebook隱私權,只讓指定的人看照片、訊息!

來自 重灌狂人

一、幫個人資訊、相簿加上隱私權限制

第1步 開啟並登入Facebook網站,依序按「設定」→「隱私設定」,準備修改Facebook的隱私權設定。


第2步 隱私設定頁面裡面有5種項目可供修改,請先按「個人檔案資料」,修改個人資料的公開展示與否的相關設定。(之後再陸續依照自己的需求調整其他項目)


第3步 接著我們可以在頁面中看到每一項可能被看到的、可以跟朋友或不認識的網友分享的個人資料,請依照你的使用需求分別調整每條訊息的隱私設定。

每一則刊登在Facebook上的訊息除了可以只給朋友看,也可以按「個人化設定」,手動挑選指定的朋友、群組…,或者設定成只有自己才看得到。


第4步 開啟「自定個人隱私設定」方框後,我們可以在下拉選單中點選「指定的人...」,自己選擇指定的帳戶。


第5步 此時請在方框中輸入朋友的帳號名稱或群組名稱,輸入時Facebook會自動比對好友清單中的名字,並跳出下拉選單讓我們點選,請依序輸入、選取你要的帳號或群組。


第6步 設定好可以瀏覽此個人資料的個人或群組名稱之後,請再按「儲存」按鈕。接著請再依照你的需求,分別將各個欄位的資料設定只給誰看。設定好之後,就不用擔心自己的隱私資料被其他不相干的人挖去亂搞囉。


第7步 一個一個設定好之後,可以再按「設定」→「隱私設定」,回到剛剛的「隱私設定」頁面並按「聯絡資料」,繼續把手機號碼、現居地址...等等各種不想被不認識的人看到的資訊通通都設定一下,讓不相干的人看不到這些只有朋友才能看到的資訊。


第8步 另外在Facebook網路相簿的部份也是一樣,開啟相片分頁,在頁面中按「相簿隱私設定」,再依照前面的方法設定好,讓朋友的照片只給朋友看,同事的照片只給同事看。


二、發佈訊息時,限制只給某些人看!

第1步 另外在發佈訊息的時候,我們也可以按一下訊息框右下角的鎖頭按鈕,依照這則訊息要給朋友看、或只給自己看,或者也可按「個人化設定」,自行挑選能看到這則訊息、活動、照片或影片的人。


第2步 設定好可收到訊息的人、發出訊息後,該則訊息下方會有個鎖頭的圖示,當滑鼠移動到鎖頭上方時,會顯示可看到該則訊息的帳戶或群組名稱,這樣其他不相干的人就不會來亂囉!


2010年1月22日 星期五

Upside-Down Display In Windows XP

Within Windows XP, certain video drivers or graphics card chipsets supporting 180 degree screen rotation can cause the Windows XP display to be presented upside down. This can be (but is not always) tied to lowering the screen resolution in some accessibility programs.

To revert to a right-side up display, hold down the CTRL, ALT and UP (arrow) keys.

2009年12月2日 星期三

JAVA裡字元(Integer)與字串(String)的互轉

‧字串轉為數值
 byte Byte.parseByte(String s [, int radix]) 將參數 s 由 String 轉換成 byte 資料型態
 short Short.parseShort(String s [, int radix]) 將參數 s 由 String 轉換成 short 資料型態
 int Integer.parseInt(String s [, int radix]) 將參數 s 由 String 轉換成 int 資料型態
 
long Long.parseLong(String s [, int radix]) 將參數 s 由 String 轉換成 long 資料型態
 
float Float.parseFloat(String s) 將參數 s 由 String 轉換成 float 資料型態
 
double Double.parseDouble(String s) 將參數 s 由 String 轉換成 double 資料型態

‧數值轉為字串
 String.valueOf(boolean b)
 String String.valueOf(char c)
 String String.valueOf(char[] data [, int offset, int count])
 String String.valueOf(int i)
 String String.valueOf(long l)
 String String.valueOf(float f)
 String String.valueOf(double d)
 String Byte.toString(byte b)
 String Short.toString(short s)
 String Integer.toString(int i [, int radix])
 String Long.toString(long l [, int radix])
 Float.toString(float f)
 String Double.toString(double)


2009年10月13日 星期二

Linux下crontab(自動重啟)的格式備忘

[轉] 作者:kaiser 發表日期:2008-05-25

1.直接用crontab命令編輯
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:

引用:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:
引用:
crontab -u root -l
再例如,root想刪除fred的cron設置:
引用:
crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:
引用:
crontab -u root -e

進入vi編輯模式,編輯的內容一定要符合下面的格式:

基本格式 :
*  *  *  *  *  command
分 時 日 月  周  命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟lighttpd 。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重啟lighttpd 。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每週六、週日的1 : 10重啟lighttpd 。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟lighttpd 。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重啟lighttpd 。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時重啟lighttpd

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點到早上7點之間,每隔一小時重啟lighttpd

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4號與每週一到週三的11點重啟lighttpd

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一號的4點重啟lighttpd

讓系統每星期日零晨5點01分自動重啟的設置如下:

vi /etc/crontab

在末尾處加上:
01 5 * * 0 root /sbin/reboot

保存退出
:wq

再重啟下crond,讓其生效
/etc/init.d/crond restart

Linux 利用Crontab命令實現定時重啟

[轉貼] Linux學習網

Crontab是一個很方便的在unix/linux系統上定時(循環)執行某個任務的程序

使用cron服務,用 service crond status 查看 cron服務狀態,如果沒有啟動則 service crond start啟動它,

cron服務是一個定時執行的服務,可以通過crontab 命令添加或者編輯需要定時執行的任務:

crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數

crontab -l //列出某個用戶cron服務的詳細內容

crontab -r //刪除沒個用戶的cron服務

crontab -e //編輯某個用戶的cron服務

比如說root查看自己的cron設置:crontab -u root -l

再例如,root想刪除fred的cron設置:crontab -u fred -r

在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e

進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

編輯/etc/crontab文件,在末尾加上一行: 30 5 * * * root init 6 這樣就將系統配置為了每天早上5點30自動重新啟動。

需要將crond設置為系統啟動後自動啟動的服務,可以在/etc/rc.d/rc.local 中,在末尾加上

service crond start

如果還需要在系統啟動十加載其他服務,可以繼續加上其他服務的啟動命令。

比如: service mysqld start

基本用法:

1. crontab -l

列出當前的crontab任務

2. crontab -d

刪除當前的crontab任務

3. crontab -e (solaris5.8上面是 crontab -r)

編輯一個crontab任務,ctrl_D結束

4. crontab filename

以filename做為crontab的任務列表文件並載入

crontab file的格式:

crontab 文件中的行由 6 個字段組成,不同字段間用空格或 tab 鍵分隔。前 5 個字段指定命令要運行的時間

分鐘 (0-59)

小時 (0-23)

日期 (1-31)

月份 (1-12)

星期幾(0-6,其中 0 代表星期日)

第 6 個字段是一個要在適當時間執行的字符串

例子:

#MIN HOUR DAY MONTH DAYOFWEEK COMMAND

#每天早上6點10分

10 6 * * * date

#每兩個小時

0 */2 * * * date (solaris 5.8似乎不支持此種寫法)

#晚上11點到早上8點之間每兩個小時,早上8點

0 23-7/2,8 * * * date

#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點

0 11 4 * mon-wed date

#1月份日早上4點

0 4 1 jan * date

補充:在使用crontab的時候,要特別注意的是運行腳本中能夠訪問到的環境變量和當前測試環境中的環境變量未必一致,一個比較保險的做法是在運行的腳本程序中自行設置環境變量(export)

(1)先建一個文件crond.txt如下, 每天早上5點36分重新啟動

36 5 * * * reboot

(2)上傳到/opt目錄

(3)運行命令

crontab /opt/crond.txt

crontab -l

讓配置文件生效:如果讓配置文件生效,還得重新啟動cron,切記,既然每個用戶下的cron配置文件修改後。也要重新啟動cron服務器。

在Fedora 和Redhat中,我們應該用;

[root@localhost ~]# /etc/init.d/crond restart

如果讓crond 在開機時運行,應該改變其運行級別;

[root@localhost ~]# chkconfig --levels 35 crond on

service crond status 查看 cron服務狀態,如果沒有啟動則 service crond start啟動它, cron服務是一個定時執行的服務,可以通過crontab 命令添加或者編輯需要定時執行的任務

Crontab文件的每一行由六個域(minutes、hours、day of month、month、day of week、 command)組 成,域之間用空格或Tab分開,其中:

minutes: 分鐘域,值的範圍是0到59

hours: 小時域,值的範圍是0到23

day of month: 日期,值的範圍是1到31

month: 月份,值的範圍是1到12

day of week: 星期,值的範圍是0到6,星期日值為0

command: 所要運行的命令

如果一個域是*,表明命令可以在該域所有可能的取值範圍內執行。

如果一個域是由連字符隔開的兩個數字,表明命令可以在兩個數字之間的範圍內執行(包括兩個數字 本身)。

如果一個域是由逗號隔開的一系列值組成的,表明命令可以在這些值組成的範圍內執行。

如果日期域和星期域都有值,則這兩個域都有效。

編寫一個文件,用以啟動自動備份進程。

cd /opt

touch reboot.txt

在reboot.txt中添加一下內容:

0 4 * * * reboot

crontab /opt/reboot.txt

用crontab -e編輯定時操作,例如加入下行命令:

用crontab -l命令來查看

注意:需要啟動服務(添加在rc.local中)

重啟crond任務

/etc/init.d/cron restart (ubuntu下)

第一種 在Fedora或Redhat 等以RPM包管理的系統中;

[root@localhost ~]# /etc/init.d/crond start

[root@localhost ~]# /etc/init.d/crond stop

[root@localhost ~]# /etc/init.d/crond restart

/etc/rc.d/init.d/crond restart

命令簡介

crontab-操作每個用戶的守護程序和該執行的時間表。

部分參數說明

crontab file [-u user]-用指定的文件替代目前的crontab。

crontab-[-u user]-用標準輸入替代目前的crontab.

crontab-1[user]-列出用戶目前的crontab.

crontab-e[user]-編輯用戶目前的crontab.

crontab-d[user]-刪除用戶目前的crontab.

crontab-c dir- 指定crontab的目錄。

crontab文件的格式:M H D m d cmd.

M: 分鐘(0-59)。

H:小時(0-23)。

D:天(1-31)。

m: 月(1-12)。

d: 一星期內的天(0~6,0為星期天)。

cmd要運行的程序,程序被送入sh執行,這個shell只有USER,HOME,SHELL這三個環境變量。

下面是一個例子文件:

#MIN HOUR DAY MONTH DAYOFWEEK COMMAND #每天早上6點 106* * * date #每兩個小時 0*/2* * * date #晚上11點到早上8點之間每兩

2009年10月6日 星期二

How to check folder size in linux - Linux Newbie

Ans: To calculate the total folder size of folder "bin"

$ du -sh bin/
280K bin/

-s, --summarize (display only a total for each argument)
-h, --human-readable ( print sizes in human readable format (e.g., 1K 234M 2G))

2009年9月22日 星期二

營造 Linux 學習環境的好用工具 VirtualBox

作者:徐秉義(Albert Hsu)

在筆者教學 Linux 期間,常常遇到同學苦無 Linux 練習環境,主因是許多同學只有一台電腦而且已經裝了 Windows 系統,若是在早期的話會建議使用「多重開機」方式,但多重開機建置並非想像中的簡單,稍微不注意就很有可能『傷害』到已經存放資料的 Windows 系統,導致 Linux 還沒練到甚麼,卻被逼著要學會重灌 Windows 系統。

溫馨提示:這邊提到『傷害』在程度上也許是 Format 到 Windows 資料或造成 Windows 無法開機等等。

對於電腦不是很熟悉的新手們,會比較建議使用虛機的方式來快速營造 Linux 練習環境,雖然虛機有著執行速度較慢的缺點,所幸的是初期練習 Linux 基礎操作,事實上並不需要高速的硬體配備。筆者這次介紹 VirtualBox 虛機軟體,知名度雖然沒有 VMWare 那樣地高,她該有的功能其實也都有喔!話不多說就開始我們的 VirtualBox Windows 版安裝之旅吧!

軟體下載、安裝與中文化

至 http://www.virtualbox.org/ 下載 VirtualBox for Windows 編譯好的二進位執行檔(binary),點選左邊【Downloads】後,接著稍微向下捲動一些即可看到「VirtualBox for Windows hosts」軟體下載連結,筆者下載的是 1.5.2 Windows x86 版本。

磁碟狀態

安裝 VirtualBox Windows 版只要依照精靈一路走下去,裝到好應該是沒有太大的問題。

安裝完成後從【程式集】裡面【innotek VirtualBox】→【VirtualBox】來啟動 VirtualBox 主程式。

溫馨提示:VirtualBox 亦有給 Linux 及 Mac OS X 版本的二進位執行檔。

語系設定

新版 VirtualBox 提供繁體中文介面來使用,從【檔案】→【偏好設定】呼叫出設定對話框,對話框內左邊第三個「語系」選單,即可切換至繁體中文介面(先前的版本只有簡體中文介面)。

磁碟狀態

開始安裝虛擬機器

裝一台虛擬機器大致上要準備的有「給機器的名字」、「記憶體大小」及「硬碟大小」,至於安裝時候的開機媒介,一般使用 CD/DVD 開機(VirtualBox 亦支援 iso 檔案開機)筆者設定範例如下:

虛機名稱srv1
記憶體大小256 MB
硬碟大小5 GB
安裝光碟片DVD/CD

緊接著就來安裝一台 RHEL5 虛擬機器吧!建立虛機的路上皆有精靈帶領著我們,大致上都是點選〔下一步〕按鈕,底下僅僅針對幾個比較有需要講解的畫面來做解說。

點選〔新增〕按鈕來呼叫出建立虛機精靈,來到下圖的這個步驟替虛機取個名稱,筆者範例取名為「srv1」(Server one 之意),至於作業系統類型的部份,筆者並沒有特別挑選別的,使用預設值的「Other/Unknown」即可。

溫馨提示:若「感到」因沒有特別挑選作業系統類型,導致虛機安裝失敗的話,可試著調整這部份的設定。

磁碟狀態

虛機的記憶體用量,給 256 MB 安裝 RHEL5 算是剛好而已。

溫馨提示:若少於 256 MB 的記憶體來安裝 RHEL5 可能會遭到強制使用文字模式安裝的情況。

磁碟狀態

虛機所使用的硬碟,是母系統的映像檔案。VirtualBox 映像檔案為 VDI(Virtaul Disk Image)首次安裝需要新增一顆,所以我們點選〔新增〕。

溫馨提示:若是以前曾經有建立過 VDI 檔案,建立虛機時亦可使用既有的 VDI 檔案。

磁碟狀態

來到新增硬碟精靈,磁碟預設採用「動態擴充映像檔」(實際拷貝資料進去才會佔用硬碟空間)另一種則是「固定大小映像檔」(先行佔用磁碟空間,資料有無拷貝進去,不會影響母系統磁碟空間用量)

溫馨提示:若「感到」因使用「動態擴充映像檔」,導致虛機安裝失敗的話,可試著改用「固定大小映像檔」方式。

磁碟狀態

設定映像檔案大小,筆者母系統的硬碟不大所以開給虛機 5 GB 的空間,預設的 RHEL5 安裝完成大概與 Windows XP 差不多,大約 2 GB 左右的空間。

磁碟狀態

在新增完成映像檔硬碟後,就回到先前的選取硬碟的畫面,接著按下〔下一步〕。

磁碟狀態

虛機硬體配備已經準備差不多了,下一步是要光碟開機安裝 RHEL5。針對光碟開機這部份有兩個選擇:一個是點選下圖右方「光碟機」調整;一個是直接開機讓「首次運行精靈」來引導我們使用光碟開機。

磁碟狀態

採用直接開機是比較直覺的方式,會有「首次運行精靈」如下圖,直覺方式使用「母系統光碟裝置開機」。

溫馨提示:亦可使用「安裝光碟映像檔案開機」(要先準備好 iso 檔案)。

磁碟狀態

下圖是筆者使用 RHEL5 光碟片開機的情況,緊接著就是安裝 Linux 的部份,相信這部份大家都會,比較要特別介紹的是 VirtualBox 離開虛機的方式是「Right Ctrl」(右 Ctrl 鍵;位於畫面右下方)

磁碟狀態

安裝客端額外功能

在虛機安裝好之後,若是再加上「安裝客端額外功能」的話,較明顯可得到兩個好處:一個是進出虛機不需再按右 Ctrl 鍵(稱為「滑鼠游標整合」);另一個是母系統「分享資料夾」給子系統功能。

虛擬磁碟管理器

VirtualBox 客端額外功能軟體放在虛擬磁碟裡面,預設位於 C:\Program Files\innotek VirtualBox\VBoxGuestAdditions.iso 建議先使用【檔案】→【虛擬磁碟管理器】呼叫出虛擬磁碟管理程式中〔光碟映像檔〕分頁加入後給虛機掛載起來。

溫馨提示:虛機使用光碟映像檔可在虛機設定頁面〔光碟機〕(虛機還沒啟動前);或於(虛機啟動後的視窗)【裝置】→【掛載光碟】來調整。

磁碟狀態

RHEL5 安裝 VirtualBox 客端額外功能

在 Linux 虛機安裝 VirtualBox 客端額外功能只要抓到幾個重點,要裝起來應該不是難事。

重點一:安裝編譯工具 gcc,因為 VirtualBox 給 Linux 的是原始碼,所以要編譯。以 RHEL5 配置好 yum 來說,只要下達指令「yum -y install gcc」即可。

重點二:安裝核心編譯相關套件 kernel-devel,因為 VirtualBox 給 Linux 的這兩個功能是用核心模組方式,要編譯成副檔名為 .ko 檔(Kernel Object)。以 RHEL5 配置好 yum 來說,只要下達指令「yum -y install kernel-devel」即可。

如下圖的步驟:

光碟映像檔案若沒有自動掛載就手動掛載吧!使用指令「mount /dev/cdrom /mnt」

內容有一個「VBoxLinuxAdditions.run」!使用指令「sh VBoxLinuxAdditions.run」執行即可,安裝好後依照指示重開虛機。

磁碟狀態

分享資料夾功能

在安裝好客端額外功能軟體後,「滑鼠游標整合」功能明顯感受出來,至於「分享資料夾」要到虛機執行視窗的【裝置】→【分享資料夾】開放母系統資料夾,如此子系統才能使用。

下圖是開放 C 槽給子系統命名為「C_DRIVE」(此名稱待會要用到)。

磁碟狀態

在子系統使用「mount -t vboxsf 分享資料夾名稱 掛載點」的類似命令來掛載分享資料夾,下圖是使用指令「mount -t vboxsf C_DRIVE /mnt」情況,掛載後可以看到母系統(Windows)資料。

磁碟狀態

快速複製虛機

灌好一台 Linux 虛機後,就可以開始練習 Linux 基本操作,以及大部分單機使用 Linux 所可以做到的事情,像是帳號密碼與群組管理、Software RAID 與 LVM 管理、Quota 設定與管理等等。持之以恆地練下去的話,不久之後就會來到網路服務,也就是架設各類 Server 的部份,像是 DNS、DHCP、Mail、Web、NFS、Samba 等等服務,此時難免需要「另一台」主機(甚至另兩台)來作互動及測試,這時候再虛一台 Linux 出來用,對練習的幫助頗大。

溫馨提示:Linux 兩大證照 RHCE 與 NCLP 不約而同地重視兩台 Linux 主機之間的互動操作。

VirtualBox 複製虛機

灌一台電腦通常會比對拷一台要花上較長的時間,既然虛機磁碟是個 VDI 檔案,何不就「拷貝」一份成為另一台虛機呢?這樣的想法理論上是可行,但因為 VirtualBox 有使用 UUID 方式紀錄 VDI 檔案,所以直接 VDI 檔對拷後給另一台虛機用會出問題的,出問題的原因在於「同一台有重複 UUID 的 VDI 檔案」。

下圖是使用「複製貼上」做出 VDI 檔,欲加入硬碟群時所出現的錯誤訊息。

磁碟狀態

溫馨提示:此 VDI 檔案拷貝到別台母系統卻是可以直接使用,因為別台沒有相同 UUID 的 VDI 檔案。

要複製虛機在同一台母系統上使用的話,就要用 VirtualBox 內建指令才不會有上述問題產生,關鍵在於執行 vboxmanage 指令搭配 clonevdi 參數(克隆 VDI 檔案)例「vboxmanage clonevdi srv1.vdi srv2.vdi」。

VBoxManage 執行檔案擺放位置C:\Program Files\innotek VirtualBox\VBoxManage.exe
虛機磁碟 VDI 檔案預設路徑C:\Documents and Settings\Administrator\.VirtualBox\VDI

開啟指令視窗,使用「cd "C:\Documents and Settings\Administrator\.VirtualBox\VDI"」切換至虛機磁碟 VDI 檔案預設路徑(筆者的 srv1.vdi 位於這裡)。

接著使用指令「"c:\Program Files\innotek VirtualBox\VBoxManage.exe" clonevdi srv1.vdi srv2.vdi」來將 srv1.vdi 克隆(clone)成 srv2.vdi。

溫馨提示:VBoxManage 指令在此需要使用完整的路徑名稱,要是之後經常使用這個指令的話,最好還是設定環境變數 path 包含 c:\Program Files\innotek VirtualBox\ 這個路徑會比較方便(類似 Linux $PATH)。

磁碟狀態

接下來創建虛機 srv2 使用現有的 srv2.vdi 就可以快速複製虛機,方便我們同時開啟兩台 Linux 虛機用來練習。

磁碟狀態

探討 VirtualBox 網路模式 NAT

當開啟兩台虛機 Linux 後,奇怪的是兩台 IP 一樣卻兩台都可以透過母系統 NAT 後存取外部網路,可是我們需要的功能「兩台 Linux 虛機互向存取」卻不通,就算是將這兩台 IP 錯開也一樣情況,原來是 VirtulBox 預設網路模式 NAT 運作特性與 Xen、VMWare 不太一樣,筆者稱呼 VirtualBox 的 NAT 模式為「AP Based NAT」(由應用程式 VirtualBox 提供的 NAT),單純的只是將內部虛機 NAT 成母系統 IP 存取外部網路。

這個 NAT 模式下,造成子系統可以存取母系統的外部 IP 位址,反過來若是母系統欲存取子系統的話,可利用母系統 Port Forwarding 達成,至於 Port Forwarding 的使用方法,請參考原廠的使用說明。

溫馨提示:Port Forwarding 一次 forward 一個埠,要多個埠 forward 就要多做幾次設定。

若要使得母系統與子系統、子系統與子系統之間相互網路存取更加方便的話,建議是使用橋接(Bridge)模式(後續介紹);若只是要解決子系統之間網路存取的話,可採用虛機各自新增一個內部網路介面即可。

虛機互通:各自新增內部網路介面

圖為 srv1 設定第二張配接卡(配接卡 1)的畫面,記得下拉選取「內部網路」,當然 srv2 也一併要設定第二張配接卡,這樣 srv1 的 eth1 與 srv2 的 eth1 感覺像是接在同一個 Switch 上。

磁碟狀態

溫馨提示:新版(1.6.X 版)有個新的欄位 Network Name(網路名稱)其網路名稱需設定一樣,虛機之間才能互相存取(例如都設定成 foo);Network Name 名稱若不同則視為兩個不同的網路。

r

下圖為兩台 Linux 虛機 eth0 皆為 10.0.2.15 可連上外部網路;eth1 分別為 192.168.2.3 與 192.168.2.4 由 srv2 使用 ssh 登入 srv1 的情況。

磁碟狀態

溫馨提示:若要母系統與子系統互通的話,建議使用橋接模式。

探討 VirtualBox 網路模式 Bridge

VirtualBox 類似 VMWare、Xen 這些虛擬機器軟體,因此母系統與子系統之間的架構除了 NAT 模式外,常用的還有 Bridge 模式,她的 Bridge 模式啟用方法較為特殊,方法是:

『虛機各自新增 VirtualBox 主端介面卡,然後再用 Windows 內建 Bridge 功能橋接起來。』

虛機新增 VirtualBox 主端介面卡

在 srv1 設定畫面中,筆者將原先設定成 NAT 模式的網路配接卡,附掛到「主端介面」後,下方主端介面方框右邊,有兩個小按鈕用來增減虛擬介面卡的(一個是新增、一個是移除)點選新增後加入「VirtualBox 主端介面 1」給 srv1 使用。

溫馨提示:虛機開啟時,很多設定都不能調整,請停虛機後再做設定。

磁碟狀態

下圖為設定成功後 srv1 使用「VirtualBox 主端介面 1」畫面。

磁碟狀態

將介面 Bridge 起來

在 Windows 網路設定畫面中,圈選需要被 Bridge 的介面卡(下圖為「母系統網路卡」以及「VirtualBox 主端介面 1」),按下滑鼠右鍵選擇【橋接】(Bridge)。

磁碟狀態

溫馨提示:橋接後 Windows 母系統 IP 要設定在橋接器上而不是在原來的網路介面。

下圖是 Windows bridge IP 顯示畫面。

磁碟狀態

srv2 若是也要加入這個 Bridge 成員主機的話,也要如法炮製一個「VirtualBox 主端介面 2」來使用。

磁碟狀態

srv2 「VirtualBox 主端介面 2」採用後續再加入這個 Bridge 的方式也行的通,使用右鍵選擇【加入橋接器】(Add to Bridge)。

磁碟狀態

最後母系統、srv1 與 srv2 就「感覺像是」接在同一個網路交換器上囉!

下圖為母系統 Windows 使用 putty 連接到 srv1 以及 srv1、srv2 同時開機的情況,一台電腦當三台用。

磁碟狀態

VirtualBox RDP 功能

RDP 全名 Remote Desktop Protocol 是 Windows 遠端桌面所使用的通訊方式,而 VirtualBox 用她來提供遠端控制虛機功能,方法是在設定虛機畫面中【遠端顯示】選項來做啟用即可。

磁碟狀態

RDP 預設使用埠號 3389,若是您的 Windows 有啟用遠端桌面功能就會先行佔用此連接埠,那虛機就避開即可(例如使用埠 3390)

溫馨提示:使用 VirtualBox RDP 功能時各台虛機埠號最好錯開,不然就避免同時啟動使用相同埠號的虛機。

下圖是在 Linux 使用 rdesktop 程式連接到 srv1 的畫面,請注意連線到的 IP 是母系統 Windows IP 位址。

磁碟狀態

2009年5月6日 星期三

edit ip address in FC10

vi /etc/sysconfig/network-scripts/ifcfg-eth0

2009年4月7日 星期二

在右鍵選單加入「以Notepad編輯」的選項

在右鍵選單加入「以Notepad編輯」的選項


電腦裡面除了txt檔案以外,其實有很多不知名的格式,也可以使用記事本(Notepad)將其開啟編輯。
在預設的情況下,在檔案上面按下滑鼠右鍵,會出現「開啟檔案」這個選項,如果該檔案的類型,沒有預設對應的程式能加以開啟,便會跳出對話視窗,要求使用者選擇適當的程式來開啟檔案。

如果能像上圖一樣,使滑鼠右鍵選單直接出現「Notepad」選項,便能快速以記事本來開啟檔案了。其設定步驟大致如下:
  • 「開始」-「執行」- 在對話框中輸入"regedit"。
  • 在登錄編輯程式視窗的左手邊,找到 HKEY_CLASSES_ROOT ,進入 * 機碼。
  • 檢查 * 機碼中是否已有 Shell 機碼,如無,則可新增。並在其下再新增 Notepad 機碼,然後再 Notepad 機碼之下再新增 Command 機碼。
  • 此時你的位置應該是在:HKEY_CLASSES_ROOT\*\Shell\Notepad\Command 之下,請將「預設值」之「數值資料」修改為"notepad %1"。
  • 完成上述步驟後,你的登錄編輯程式應該如圖所示。此時只要在任意檔案上面按下滑鼠右鍵,都可以看到"Notepad"這個選項。

2009年3月18日 星期三

cannot download file from web browser, only download the php file

the changes you need to make are in your httpd.conf
( e.g. /etc/httpd/conf/httpd.conf )

you need to ensure that you have the Addtype lines such as :

AddType application/x-httpd-php .php .php3 .php .phtml

once modified, 'apachectl restart' to reload apache and give it another test.

2009年3月17日 星期二

加快開機及關機速度

在〔開始〕→〔執行〕→鍵入〔Regedit〕→〔HKEY_CURRENT_USER〕→〔Control Panel〕→〔Desktop〕
→將字串值〔HungAppTimeout〕的數值資料更改為〔200〕
→將字串值〔WaitToKillAppTimeout〕的數值資料更改為〔1000〕

另在〔HKEY_LOCAL_MACHINE〕→〔System〕→〔CurrentControlSet〕→〔Control〕
→將字串值〔HungAppTimeout〕的數值資料更改為〔200〕
→將字串值〔WaitToKillServiceTimeout〕的數值資料更改為〔1000〕

2009年3月12日 星期四

How to remove the shortcut arrow from desktop icons in Windows XP

Follow these simple steps to remove the shortcut arrow from desktop icons in Windows XP:


- Press Windows key + R (This brings up the Run dialog box)

- Type regedit and press Enter (The opens Registry Editor)

- Navigate to: HKEY_CLASSES_ROOT\lnkfile

-
Delete the IsShortcut registry value [See pic below]

2009年3月5日 星期四

Installing VNC on Fedora

Installing VNC on Fedora:

1.Open a Terminal Window, and type the following to install the VNC Server Package, if NOT already installed:

su -c 'yum -y install vnc-server」

Setting the VNC Password:

1.Type the following command to set the password for your user. This must be repeated for each user in which you would like to provide access for:

vncpasswd

2.You will now be prompted for a password, enter your desired password, then press . You will now be prompted to verify the password you just entered. Verify, then press to move one.

3.After you enter the password for your user, it will create the default configuration files and place them in the /home//.vnc directory. It will also start the VNC Server for your user for the first time. We are NOT ready to log in yet, so type the following to terminate the VNC Server for your user.

vncserver -kill : // Desktop Number will most likely be 「1」

vncserver -kill :1


Customizing VNC Start-up (To Start KDE or Gnome Desktop, instead of default Grey 「rootweave」 Desktop):

NOTE: The VNC Server allows the user to configure various settings specific to them through the use 「xstartup」 file located in the 「.vnc」 directory found in the user's home directory.

1.Change directory to $HOME/.vnc/

2.Open the 「xstartup」 file using the VI editor (my preference) or whatever editor you prefer.

3.Jump to the end of the file. Here you will notice a line similar to the following:

xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

*** Here you MUST replace the 「twm」 with either 「startkde」 or 「gnome-session」, to start the GUI Desktop that you are use to.

like this

xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session &


Add more user for VNC connection:

su - user1
vncserver :1 -geometry 1024x768
Password: xxxxx


Desktop Selection

Default desktop being GNOME.

To change desktop used to KDE, create or edit /etc/sysconfig/desktop:

DESKTOP=GNOME
# DESKTOP=KDE



Make sure xstartup access mode is -rwxr-xr-x (755), if not

chmod 755 ~/.vnc/xstartup

Configuring your Firewall to Allow Access:


1.The following command will open port 5901 (:1) only for access. This is typically the 1st VNCDESKTOP number that gets setup.

su -c '/sbin/iptables -I INPUT -p tcp --destination-port 5901 -j ACCEPT'

This command would open the port range 5901 to 5903 (To allow the first 3 VNCDESKTOP's):

su -c '/sbin/iptables -I INPUT -p tcp --destination-port 5900:5903 -j ACCEPT'

*** If you are unsure which port(s) your VNC Servers are listening on, type the following command; (Assumes Defaults were in place)

netstat -lnt | grep 590* //This will check ports 5900-5901

If all goes well, and you have VNC Server's listening, you should see a response similar to the following:


$ netstat -lnt | grep 590*
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN

*** This tells me ports 5901 and 5902 are listening.

2.Next, save the new rules with the following command:

su -c '/sbin/iptables-save > /etc/sysconfig/iptables'

3.Confirm the settings were successful with the following command:

su -c '/sbin/iptables -L'

*** You should see an output line similar to the following:

ACCEPT tcp -- anywhere anywhere tcp dpts:5900:5903


Manually Starting VNC Desktops:

This is a very simple step, once you have configured the desired settings for your user. Type the following:

vncserver

*** You should now get a response, telling you which Desktop Number you just started. Be Careful that you don't start Multiple Desktops by accident. This can be done very easily, if you don't properly kill old desktops before opening new ones.


Automating VNC on Startup:


1.The following command is used to start VNC Server at system boot, for runlevel 5 (Multi-User X);

su -c 'chkconfig --level 5 vncserver on'

*** The default VNC start-up file can be found in the following location, and can be opened/edited with VI or your favorite editor:

/etc/init.d/vncserver

*** However if you are simply wanting to add which VNC Desktops you would like started, edit the following file:

/etc/sysconfig/vncservers

2009年2月26日 星期四

Make Symbolic link for mirror Rsync

Symbolic link : atmail
Real Directory : atmaildata

atmail -> atmaildata

1. rename the existing directory name (main and mirror server).
mv atmail atmaildata


2. modify the rsync.sh in the main server.
vi rsync.sh
change /usr/local/atmail --> /usr/local/atmaildata


3. change own for the symbolic link (main and mirror server).
chown -h atmail:atmail atmail


2009年2月18日 星期三

MySQL Commands

http://www.pantz.org/software/mysql/mysqlcommands.html

This is a list of handy MySQL commands that I use time and time again. At the bottom are statements, clauses, and functions you can use in MySQL. Below that are PHP and Perl API functions you can use to interface with MySQL. To use those you will need to build PHP with MySQL functionality. To use MySQL with Perl you will need to use the Perl modules DBI and DBD::mysql.

Below when you see # it means from the unix shell. When you see mysql> it means from a MySQL prompt after logging into MySQL.

To login (from unix shell) use -h only if needed.

# [mysql dir]/bin/mysql -h hostname -u root -p

Create a database on the sql server.

mysql> create database [databasename];

List all databases on the sql server.

mysql> show databases;

Switch to a database.

mysql> use [db name];

To see all the tables in the db.

mysql> show tables;


To see database's field formats.

mysql> describe [table name];

To delete a db.

mysql> drop database [database name];

To delete a table.

mysql> drop table [table name];

Show all data in a table.

mysql> SELECT * FROM [table name];

Returns the columns and column information pertaining to the designated table.

mysql> show columns from [table name];

Show certain selected rows with the value "whatever".

mysql> SELECT * FROM [table name] WHERE [field name] = "whatever";

Show all records containing the name "Bob" AND the phone number '3444444'.

mysql> SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';

Show all records not containing the name "Bob" AND the phone number '3444444' order by the phone_number field.

mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;

Show all records starting with the letters 'bob' AND the phone number '3444444'.

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';

Show all records starting with the letters 'bob' AND the phone number '3444444' limit to records 1 through 5.

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;

Use a regular expression to find records. Use "REGEXP BINARY" to force case-sensitivity. This finds any record beginning with a.

mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";

Show unique records.

mysql> SELECT DISTINCT [column name] FROM [table name];

Show selected records sorted in an ascending (asc) or descending (desc).

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;

Return number of rows.

mysql> SELECT COUNT(*) FROM [table name];

Sum column.

mysql> SELECT SUM(*) FROM [table name];

Join tables on common columns.

mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;

Creating a new user. Login as root. Switch to the MySQL db. Make the user. Update privs.

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;

Change a users password from unix shell.

# [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password 'new-password'

Change a users password from MySQL prompt. Login as root. Set the password. Update privs.

# mysql -u root -p
mysql> SET PASSWORD FOR 'user'@'hostname' = PASSWORD('passwordhere');
mysql> flush privileges;

Recover a MySQL root password. Stop the MySQL server process. Start again with no grant tables. Login to MySQL as root. Set new password. Exit MySQL and restart MySQL server.

# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("newrootpassword") where User='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql stop
# /etc/init.d/mysql start

Set a root password if there is on root password.

# mysqladmin -u root password newpassword

Update a root password.

# mysqladmin -u root -p oldpassword newpassword

Allow the user "bob" to connect to the server from localhost using the password "passwd". Login as root. Switch to the MySQL db. Give privs. Update privs.

# mysql -u root -p
mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by 'passwd';
mysql> flush privileges;

Give user privilages for a db. Login as root. Switch to the MySQL db. Grant privs. Update privs.

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;

or

mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;

To update info already in a table.

mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';

Delete a row(s) from a table.

mysql> DELETE from [table name] where [field name] = 'whatever';

Update database permissions/privilages.

mysql> flush privileges;

Delete a column.

mysql> alter table [table name] drop column [column name];

Add a new column to db.

mysql> alter table [table name] add column [new column name] varchar (20);

Change column name.

mysql> alter table [table name] change [old column name] [new column name] varchar (50);

Make a unique column so you get no dupes.

mysql> alter table [table name] add unique ([column name]);

Make a column bigger.

mysql> alter table [table name] modify [column name] VARCHAR(3);

Delete unique from table.

mysql> alter table [table name] drop index [colmn name];

Load a CSV file into a table.

mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);

Dump all databases for backup. Backup file is sql commands to recreate all db's.

# [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql

Dump one database for backup.

# [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql

Dump a table from a database.

# [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql

Restore database (or database table) from backup.

# [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql

Create Table Example 1.

mysql> CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));

Create Table Example 2.

mysql> create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default 'bato');


Change own for Symbolic Link

To change the group ownership of symbolic link, simply use the -h or –no-dereference flag to the chgrp command.

Example:

chgrp -h new_group symbolic_link_name

chown -h sam:sam link_name