2012-10-02

如何在Windows XP/2003啟用SMP/多核心/多CPU

如何在Windows XP/2003啟用SMP/多核心/多CPU


 這不是新東西了,只是因為朋友換電腦,因為i7的核心多,希望讓過去使用的VM改設定為多CPU或多核心時,卻還是只顯示一顆CPU單一核心;這情況在換電腦時拔硬碟過去時也可能發生,因此簡單記錄一下。

首先,找出安裝光碟/iso,假設是E: ,就在『開始』->『執行』依序執行以下指令(或用cmd.exe一次執行):
expand e:\i386\halmacpi.dl_ c:\windows\system32\halmacpi.dll
expand e:\i386\ntkrnlmp.ex_ c:\windows\system32\ntkrnlmp.exe
attrib -r -h -s c:\boot.ini
notepad c:\boot.ini
將 C:\boot.ini 中
最後一行 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS... 最後加上
/kernel=ntkrnlmp.exe /hal=halmacpi.dll
存檔後關閉,在『開始』->『執行』輸入
attrib +r +h +s c:\boot.ini
重新開機後,會偵測到硬體變更,會要求再重新開機就是SMP支援了!


註:
  1. HAL變更後,再把boot.ini改回去,仍然會是SMP的狀態,若看到老外別人寫2個boot選項,那是沒用的。
  2. 由於XP Professional最多只支援2顆CPU,因此在需要較多計算核心的狀況下,VMware等可以設定VM使用一個CPU多核心。
  3. 對Windows 2000有興趣的朋友可以試試 如何疑難排解 Windows 2000 硬體抽象層問題,基本上我試過失敗,用升級安裝重來才搞定

VMware Player/Workstation更換硬碟型態

VMware Player/Workstation更換硬碟型態


VMware Player或VMware Workstation的vmdk和ESXi不同,是真正的虛擬磁碟,所以更換硬碟型態是要改VM的vmx檔,先確定OS安裝好driver後就可以開始變更。

我用比較保守的做法:先在VM安裝第二顆虛擬硬碟,確定driver對了再改。步驟如下:

  1. 先將VM關機
  2. 用文字編輯器開啟 .vmx檔
  3. 找到ide0.0或scsi0.0,改成你要的型態 (第二顆是ide0.1或scsi0.1)
  4. 重新開機,收工!

Xen Cloud Platform 初探

Xen Cloud Platform是Open Source 的 Xen 完全實作Citrix XenServer的替代方案,我今天看到就裝Xen Cloud Platform 1.5 Beta (實作XenServer 6.0),開機就是這隻可愛的貓熊,比起Citrix的Logo漂亮多了。


安裝程式和XenServer長得完全一樣,開進去後管理介面也是長得完全一樣,只是XenServer的字樣變成XCP。

目前XCP並沒有管理介面,可以直接下載 XenServer 6.0 iso,再裝裡頭的client_install\XenCenter.msi ,使用XenCenter,我還沒有測ConVirt Open Source

之所以會找到XCP,也是因為遇到XenServer 6.0.2 xstool問題,想知道Citrix到底何時會出更新版,無意間找到XCP。如果XCP做Live Migration沒問題,馬上就可以取代免費版XenServer;若有HA,那當然就二話不說直上。目前我手上只有一台,還沒用iSCSI測試,等有空再來找兩台相同硬體玩玩,敬請期待。



form 鳥毅

Linux - mail/mailx命令使用外部SMTP來發送郵件

Linuxmail/mailx命令使用外部SMTP來發送郵件

/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:

修改/etc/mail.rc 加入底下設定:

set from=fromuser@domain.com smtp=domain.com
set smtp-auth-user=username smtp-auth-password=password
set smtp-auth=login


說明:

from是發送的郵件地址
smtp是發生的外部smtp服務器的地址
smtp-auth-user是外部smtp服務器認證的用戶名
smtp-auth-password是外部smtp服務器認證的用戶密碼
smtp-auth是郵件認證的方式

配置成功後,就可以使用了,可以發送一封郵件測試一下:

mail -s "test" user@domain.com < content.txt

其中-s後面的是郵件標題,user@domain.com是收件人地址,content.txt裡面是郵件內容

在 Centos 上安裝 VirtualBox

在 Centos 上安裝 VirtualBox


先重新開機,進入BIOS設定CPU,啟動VT的功能後,再重新啟動

1.安裝必要程式:
yum install kernel-devel dkms

2.下載
VirtualBox安裝檔:

VirtualBox目前版本為4.1.2:
到官
http://www.virtualbox.org/wiki/Linux_Downloads 下載rpm安裝檔:

我的Centos版本5.6-64位元,則下載


Red Hat Enterprise Linux 5 ("RHEL5") / Oracle Linux 5 ("OL5") / Centos 5 i386 | AMD64
wget http://download.virtualbox.org/virtualbox/4.1.2/VirtualBox-4.1-4.1.2_73507_rhel5-1.x86_64.rpm

3.安裝VirtualBox:
rpm -ivh VirtualBox-4.1-4.1.2_73507_rhel5-1.x86_64.rpm
/etc/init.d/vboxdrv setup


4.將user帳號加至vboxusers群組:
gpasswd -a root vboxusers

5.開機時自動執行虛擬機器開機
在你的 /etc/rc.local 中加入下列幾行

VBoxManage startvm win2008 --type headless

6.關機時自動執行虛擬機器關機
建立關機腳本

vi /etc/rc.d/init.d/vbox_shutdown.sh 內容如下

#!/bin/bash
pidfile=/var/lock/subsys/vbox_shutdown
touch $pidfile
VBoxManage controlvm win2008 acpipowerbutton
rm -f $pidfile


變更權限
chmod 755 /etc/rc.d/init.d/vbox_shutdown.sh

關機時執行批次檔
ln -s /etc/rc.d/init.d/vbox_shutdown.sh ./etc/rc.d/rc0.d/K01vbox_shutdown
 
重起時執行批次檔
ln -s /etc/rc.d/init.d/vbox_shutdown.sh ./etc/rc.d/rc6.d/K01vbox_shutdown

RHEL / CentOS / Fedora 支援 4GB 記憶體的方法

RHEL / CentOS / Fedora 支援 4GB 記憶體的方法

目前我所使用的 CentOS 5.0 無法完全的顯示 4GB 記憶體,大概衹有顯示 3GB 多一點,很多32位元的作業係統都有類似的問題,但是我明明就是 4GB 的記憶體??

kernel-PAE 這個套件解決我的問題,
安裝之後就可以完整支援 4GB 的記憶體了,

安裝方式很簡單

# yum install kernel-PAE

確認一下 /boot/grub/grub.conf 裡面的設定,
剛剛安裝的 kernel-PAE 應該在裡面了

title CentOS (2.6.18-92.1.22.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.1.22.el5PAE ro root=/dev/sda1 rhgb quiet
initrd /boot/initrd-2.6.18-92.1.22.el5PAE.img

要選它,當然,重新開機後才能生效


If you have 4 GB or more RAM use the Linux kernel compiled for PAE capable machines. Your machine may not show up total 4GB ram. All you have to do is install PAE kernel package.

This package includes a version of the Linux kernel with support for up to 64GB of high memory. It requires a CPU with Physical Address Extensions (PAE).
The non-PAE kernel can only address up to 4GB of memory. Install the kernel-PAE package if your machine has more than 4GB of memory (>=4GB).

Linux下shell的工作原理

Linux下shell的工作原理


shell是使用者和Linux操作系統之間的介面。Linux中有多種shell,其中預設使用的是Bash。本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的特性。
  
shell是使用者和Linux操作系統之間的介面。Linux中有多種shell,其中預設使用的是Bash。本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的特性。

什麼是shell


Linux系統的shell作為操作系統的外殼,為使用者提供使用操作系統的介面。它是指令語系、指令解釋程式及程式設計語系的統稱。

shell是使用者和Linux內核之間的介面程式,如果把Linux內核想像成一個球體的中心,shell就是圍繞內核的外層。當從shell或其他程式向Linux傳遞指令時,內核會做出相應的反應。

shell是一個指令語系直譯器,它擁有自己內建的shell指令集,shell也能被系統中其他應用程式所呼叫。使用者在提示符下輸入的指令都由shell先解釋然後傳給Linux核心。

有一些指令,比如改變工作目錄指令cd,是包括在shell內定的。還有一些指令,例如複製指令cp和搬移指令rm,是存在於檔案系統中某個目錄下的單獨的程式。對使用者而言,不必關心一個指令是建立在shell內定還是一個單獨的程式。

shell首先檢查指令是否是內定指令,若不是再檢查是否是一個應用程式(這裡的應用程式可以是Linux本身的實用程式,如ls和rm,也可以是購買的商業程式,如xv,或是是自由軟體,如emacs)。然後shell在搜尋路徑裡尋找這些應用程式(搜尋路徑就是一個能找到可執行程式的目錄清單)。如果鍵入的指令不是一個內定指令並且在路徑裡沒有找到這個可執行檔案,將會顯示一條錯誤訊息。如果能夠完成找到指令,該內定指令或應用程式將被分解為系統呼叫並傳給Linux內核。

shell的另一個重要特性是它自身就是一個解釋型的程式設計語系,shell程式設計語系支援絕大多數在進階語系中能見到的程式元素,如函數、變量、陣列和程式控制結構。shell寫程式語系簡單易學,任何在提示符中能鍵入的指令都能放到一個可執行的shell程式中。

當普通使用者完成登入,系統將執行一個稱為shell的程式。正是shell程式提供了指令行提示符。作為預設值(TurboLinux系統預設的shell是BASH),對普通使用者用「$」作提示符,對超級使用者(root)用「#」作提示符。

一旦出現了shell提示符,就可以鍵入指令名稱及指令所需要的參數。shell將執行這些指令。如果一條指令花費了很長的時間來運行,或是在螢幕上產生了大量的輸出,可以從鍵盤上按ctrl+c發出中斷信號來中斷它(在標準結束之前,中止它的執行)。

當使用者準備結束登入對話程式時,可以鍵入logout指令、exit指令或檔案結束符(EOF)(按ctrl+d實現),結束登入。

我們來實習一下shell是如何工作的。

$ make work
make:***No rule to make target 『work』. Stop.
$


注解:make是系統中一個指令的名字,後面跟著指令參數。在接收到這個指令後,shell便執行它。本例中,由於輸入的指令參數不正確,系統返回訊息後停止該指令的執行。

在例子中,shell會尋找名為make的程式,並以work為參數執行它。make是一個經常被用來編譯大程式的程式,它以參數作為目的來進行編譯。在 「make work」中,make編譯的目的是work。因為make找不到以work為名字的目的,它便給出錯誤訊息表示運行失敗,使用者又回到系統提示符下。

另外,使用者鍵入有關指令行後,如果shell找不到以其中的指令名為名字的程式,就會給出錯誤訊息。例如,如果使用者鍵入:

$ myprog
bash:myprog:command not found
$


可以看到,使用者得到了一個沒有找到該指令的錯誤訊息。使用者敲錯指令後,系統一般會給出這樣的錯誤訊息。

shell的種類


Linux中的shell有多種類型,其中最常用的幾種是Bourne shell(sh)C shell(csh)Korn shell(ksh)。三種shell各有優缺點。Bourne shell是UNIX最初使用的shell,並且在每種UNIX上都可以使用。Bourne shell在shell寫程式方面相當優秀,但在處理與使用者的互動方面做得不如其他幾種shell。Linux操作系統預設的shell是Bourne Again shell它是Bourne shell的延伸,簡稱Bash,Bourne shell完全向後相容,並且在Bourne shell的基礎上增加、增強了很多特性。Bash放在/bin/bash中,它有許多特色,可以提供如指令補全、指令編輯和指令歷史表等功能,它還包括了很多C shellKorn shell中的優點,有靈活和強大的寫程式介面,同時又有很友好的使用者介面。

C shell是一種比Bourne shell更適於寫程式的shell,它的語法與C語系很相似。 Linux為喜歡使用C shell的人提供了TcshTcsh是C shell的一個延伸版本Tcsh內含指令行編輯、可寫程式單詞補全、拼字校正、歷史指令取代、作業控制和類似C語系的語法,它不僅和Bash shell是提示符相容,而且還提供比Bash shell更多的提示符參數

Korn shell集合了C shellBourne shell的優點並且和Bourne shell完全相容。Linux系統提供了pdksh(ksh的延伸),它支援任務控制,可以在指令行上掛起、後台執行、喚醒或終止程式。

Linux並沒有冷落其他shell使用者,還內含了一些流行的shell如ash、zsh等。每個shell都有它的用途,有些shell是有專利的,有些能從Internet網上或其他來源獲得。要決定使用哪個shell,只需讀一下各種shell的聯機說明,並試用一下。

使用者在登入到Linux時由/etc/passwd檔案來決定要使用哪個shell。例如:

# fgrep lisa /etc/passwd
lisa:x:500:500:TurboLinux User:/home/lisa:/bin/bash

shell被列每行的末尾(/bin/bash)。

由於Bash是Linux上預設的shell,本章主要介紹Bash及其關聯知識。

shell指令

指令行c
使用者登入到Linux系統時,可以看到一個shell提示符,標識了指令行的開始。使用者可以在提示符後面輸入任何指令及參數。例如:

$ date
二 11 23 01:34:58 CST 1999
$


使用者登入時,實際進入了shell,它遵循一定的語法將輸入的指令加以解釋並傳給系統。指令行中輸入的第一個字必須是一個指令的名字,第二個字是指令的選項或參數,指令行中的每個字必須由空格或TAB隔開,格式如下:

$ Command Option Arguments

1. 選項和參數
選項是內含一個或多個字母的代碼,它前面有一個減號(減號是必要的,Linux用它來區別選項和參數),選項可用於改變指令執行的動作的類型。例如:

$ ls
motd passwd
$


這是沒有選項的ls指令,可列出現用的目錄中所有檔案,只列出各個檔案的名字,而不顯示其他更多的訊息。

$ ls -l
total 2
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd
$


加入-l選項,將會為每個檔案列出一行訊息,諸如資料大小和資料最後被修改的時間。
大多數指令都被設計為可以接納參數。參數是在指令行中的選項之後鍵入的一個或多個單詞,例如:

$ ls -l text
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd
$

將顯示text目錄下的所有檔案及其訊息。

有些指令,如ls可以帶參數,而有一些指令可能需要一些最小數目的參數。例如,cp指令至少需要兩個參數,如果參數的數目與指令要求不符,shell將會給出出錯訊息。例如:

$ cp -i mydata newdata
注意:指令行中選項先於參數輸入。

2. 指令行特徵
指令行實際上是可以編輯的一個文字緩沖區,在按換行之前,可以對輸入的文字進行編輯。比如利用BACKSPACE鍵可以刪除剛鍵入的字元,可以進行整行刪除,還可以插入字元,使得使用者在輸入指令,尤其是複雜指令時,若出現鍵入錯誤,無須重新輸入整個指令,只要利用編輯操作,即可改正錯誤。

利用上箭頭可以重新顯示剛執行的指令,利用這一功能可以重複執行以前執行過的指令,而無須重新鍵入該指令。

bash儲存著以前鍵入過的指令的清單,這一清單被稱為指令歷史表。按動上箭頭,便可以在指令行上逐次顯示各條指令。同樣,按動下箭頭可以在指令清單中向下搬移,這樣可以將以前的各條指令顯示在指令行上,使用者可以修改並執行這些指令。這一特徵將在10.4節中進行詳細的論述。

在一個指令行中還可以置入多個指令,用分號將各個指令隔開。例如:

$ ls -F;cp -i mydata newdata

也可以在幾個指令行中輸入一個指令,用反斜槓將一個指令行持續到下一行。

$ cp –i
mydata
newdata


上面的cp指令是在三行中輸入的,開始的兩行以反斜槓結束,把三行作為一個指令行。

shell中的特殊字元

shell中除使用普通字元外,還可以使用一些具有特殊含義和功能的特殊字元。在使用它們時應注意其特殊的含義和作用範圍。下面分別對這些特殊字元加以介紹。

1. 通配符
通配符用於模式符合,如檔名符合、路經名搜尋、字串搜尋等。常用的通配符有*、?和括在方括號〔 〕中的字元序列。使用者可以在作為指令參數的檔名中包括這些通配符,構成一個所謂的「模式串」,在執行過程中進行模式符合。

* 代表任何字串(長度可以不等),例如:「f*」符合以f打頭的任意字串。但應注意,檔名前的圓點(.)和路經名中的斜線(/)必須顯式符合。例如「*」不能符合.file,而「.*」才可以符合.file。

? 代表任何單個字元
〔〕 代表特殊的一個字元範圍,只要檔名中〔〕位置處的字元在〔〕中特殊的範圍之內,那麼這個檔名就與這個模式串符合。方括號中的字元範圍可以由直接給出的字元組成,也可以由表示限定範圍的起始字元、終止字元及中間的連字元(-)組成。例如,f 〔a- d〕 與f 〔abcd〕的作用相同。Shell將把與指令行中特殊的模式串相符合的所有檔名都作為指令的參數,形成最終的指令,然後再執行這個指令。

下面我們給出表10-1說明這些通配符的具體含義。
表10-1 通配符含義舉例

模式串

意 義

*
現用的目錄下所有檔案的名稱。
 

*Text*
現用的目錄下所有檔名中包括有Text的檔案的名稱。
 

〔ab-dm〕*
現用的目錄下所有以a、b、c、d、m開頭的檔案的名稱。
 

〔ab-dm〕?
現用的目錄下所有以a、b、c、d、m開頭且後面只跟有一個字元的檔案的名稱。
 

/usr/bin/??
目錄/usr/bin下所有名稱為兩個字元的檔案的名稱。


特別需要注意的是,連字元「-」僅在方括號內有效,表示字元範圍,如在方括號外面就成為普通字元了。而*和?只在方括號外面是通配符,若出現在方括號之內,它們也失去通配符的能力,成為普通字元了。例如,模式「- a〔*?〕abc」中只有一對方括號是通配符,*和?均為普通字元,因此,它符合的字串只能是- a*abc和- a?abc。

最後說明一下使用通配符時需要注意的一些問題。由於*、?和〔〕對於shell來說具有比較特殊的意義,因此在標準的檔名中不應出現這些字元。特別是在目錄名中不要出現它們,否則Shell符合起來可能會無窮的遞歸下去。另外要注意的一點是:如果目錄中沒有與特殊的模式串相符合的檔名,那麼Shell 將使用此模式串本身作為參數傳給有關指令。這可能就是指令中出現特殊字元的原因所在。

2. 引號
在shell中引號分為三種:單引號,雙引號和反引號。

* 單引號 『

由單引號括起來的字元都作為普通字元出現。特殊字元用單引號括起來以後,也會失去原有意義,而只作為普通字元解釋。例如:

$ string=』$PATH』
$ echo $string
$PATH
$


可見$保持了其本身的含義,作為普通字元出現。

* 雙引號 「

由雙引號括起來的字元,除$、、』、和」這幾個字元仍是特殊字元並保留其特殊功能外,其餘字元仍作為普通字元對待。對於$來說,就是用其後特殊的變量的值來代替這個變量和$;對於而言,是轉義字元,它告訴shell不要對其後面的那個字元進行特殊處理,只當作普通字元即可。可以想見,在雙引號中需要在前面加上的只有四個字元$,,』和」本身。而對」號,若其前面沒有加,則Shell會將它同前一個」號符合。
例如,我們假定PATH的值為.:/usr/bin:/bin,輸入如下指令:

$ TestString=」$PATH」$PATH」
$ echo $TestString
.:/usr/bin:/ bin」$PATH
$


讀者可以自己試一下在第二個雙引號之前不加會產生什麼結果。

* 反引號 `

反引號(`)這個字元所對應的鍵一般位於鍵盤的左上角,不要將其同單引號(』)混淆。反引號括起來的字串被shell解釋為指令行,在執行時,shell首先執行該指令行,並以它的標準輸出結果取代整個反引號(內含兩個反引號)部分。例如:

$ pwd
/home/xyz
$ string=」current directory is `pwd`」
$ echo $string
current directour is /home/xyz
$


shell執行echo指令時,首先執行`pwd`中的指令pwd,並將輸出結果/home/xyz取代`pwd`這部分,最後輸出取代後的整個結果。

利用反引號的這種功能可以進行指令置換,即把反引號括起來的執行結果賦值給指定變量。例如:

$ today=`date`
$ echo Today is $today
Today is Mon Apr 15 16:20:13 CST 1999
$


反引號還可以嵌套使用。但需注意,嵌套使用時內層的反引號必須用反斜線()將其轉義。例如:

$ abc=`echo The number of users is `who| wc-l``
$ echo $abc
The number of users is 5
$


在反引號之間的指令行中也可以使用shell的特殊字元。Shell為得到``中指令的結果,它實際上要去執行``中特殊的指令。執行時,指令中的特殊字元,如$,」,?等又將具有特殊含義,並且``所包括的可以是任何一個合法的Shell指令,如:

$ ls
note readme.txt Notice Unix.dir
$ TestString=」`echo $HOME ` ` ls 〔nN〕*`」
$ echo $TestString
/home/yxz note Notice
$


其他情況,讀者可自行試之。

1. 注解符

在shell寫程式中經常要對某些正文行進行注解,以增加程式的可讀性。在Shell中以字元「#」開頭的正文行表示注解行。

此外還有一些特殊字元如:用於輸入/輸出重定向與管道的、 >和|;執行後台指令的&amp;;指令執行操作符&amp;&amp;和||及表示指令組的{}將在下面各小節中加以介紹。

標準輸入/輸出和重定向

1. 標準輸入與輸出
我們知道,執行一個shell指令行時通常會自動開啟三個標準檔案,即標準輸入檔案(stdin),通常對應終端的鍵盤;標準輸出檔案(stdout)和標準錯誤輸出檔案(stderr),這兩個檔案都對應終端的螢幕。程式將從標準輸入檔案中得到輸入資料,將標準輸出資料輸出到標準輸出檔案,而將錯誤訊息送到標準錯誤檔案中。

我們以cat指令為例,cat指令的功能是從指令行給出的檔案中讀取資料,並將這些資料直接送到標準輸出。若使用如下指令:

$ cat config

將會把檔案config的內容依次顯示到螢幕上。但是,如果cat的指令行中沒有參數,它就會從標準輸入中讀取資料,並將其送到標準輸出。例如:

$ cat
Hello world
Hello world
Bye
Bye

$


使用者輸入的每一行都立刻被cat指令輸出到螢幕上。

另一個例子,指令sort按行讀入檔案正文(當指令行中沒有給出檔名時,表示從標準輸入讀入),將其排序,並將結果送到標準輸出。下面的例子是從標準輸入讀入一個採購單,並將其排序。

$ sort
bananas
carrots
apples

apples

bananas
carrots
$


這時我們在螢幕上得到了已排序的採購單。

直接使用標準輸入/輸出檔案存在以下問題:
輸入資料從終端輸入時,使用者費了半天勁輸入的資料只能用一次。下次再想用這些資料時就得重新輸入。而且在終端上輸入時,若輸入有誤修改起來不是很方便。

輸出到終端螢幕上的訊息只能看不能動。我們無法對此輸出作更多處理,如將輸出作為另一指令的輸入進行進一步的處理等。

為了解決上述問題,Linux系統為輸入、輸出的傳輸引入了另外兩種機制,即輸入/輸出重定向和管道。

2. 輸入重定向
輸入重定向是指把指令(或可執行程式)的標準輸入重導至特殊的檔案中。也就是說,輸入可以不來自鍵盤,而來自一個特殊的檔案。所以說,輸入重定向主要用於改變一個指令的輸入源,特別是改變那些需要大量輸入的輸入源。

例如,指令wc統計指定檔案包括的行數、單詞數和字元數。如果僅在指令行上鍵入:

$ wc

wc將等待使用者告訴它統計什麼,這時shell就好像死了一樣,從鍵盤鍵入的所有文字都出現在螢幕上,但並沒有什麼結果,直至按下<ctrl+d>,wc才將指令結果寫在螢幕上。

如果給出一個檔名作為wc指令的參數,如下例所示,wc將返回該檔案所包括的行數、單詞數和字元數。

$ wc /etc/passwd
20 23 726 /etc/passwd
$


另一種把/etc/passwd檔案內容傳給wc指令的方法是重定向wc的輸入。
輸入重定向的一般形式為:
指令this text forms the content

>of the here document,which
>continues until the end of
>text delimter
>delim
4 17 98


在檔名。例如:

$ ls > directory.out
$ cat directory.out
ch1.doc ch2.doc ch3.doc chimp config mail/ test/
$


將ls指令的輸出儲存為一個名為directory.out的檔案。

註:如果>符號後邊的檔案已存在,那麼這個檔案將被重寫。

為避免輸出重定向中指定檔案只能存放現用的指令的輸出重定向的內容,shell提供了輸出重定向的一種追加手段。輸出追加重定向與輸出重定向的功能非常相似,區別僅在於輸出追加重定向的功能是把指令(或可執行程式)的輸出結果追加到指定檔案的最後,而該檔案原有內容不被破壞。

如果要將一條指令的輸出結果追加到指定檔案的後面,可以使用追加重定向操作符>>。形式為:
指令>>檔名。
例如:

$ ls *.doc>>directory.out
$ cat directory.out
ch1.doc ch2.doc ch3.doc chimp config mail/ test/
ch1.doc ch2.doc ch3.doc
$


和程式的標準輸出重定向一樣,程式的錯誤輸出也可以重新定向。使用符號2>(或追加符號2>>)表示對錯誤輸出裝置重定向。例如下面的指令:

$ ls /usr/tmp 2> err.file

可在螢幕上看到程式的標準輸出結果,但又將程式的任何錯誤訊息送到檔案err.file中,以備將來檢查用。

還可以使用另一個輸出重定向操作符(&amp;>)將標準輸出和錯誤輸出同時送到同一檔案中。例如:

$ ls /usr/tmp &amp;> output.file

利用重定向將指令組合在一起,可實現系統單個指令不能提供的新功能。例如使用下面的指令序列:

$ ls /usr/bin > /tmp/dir
$ wc –w





From Linux主機伺服器

Citrix Xenserver 6.x 安裝註冊教學

Citrix Xenserver 6.x 安裝註冊教學


首先,到這個網址http://deliver.citrix.com/go/citrix/cnswbFreeXenServer 填資訊,獲取到Xenserver的ISO下載檔案

鑒於現在vmware workstation 8 已經能在xenserver裡面開vm了,所以我就在workstation裡面做了

安裝很簡單,就是在workstation裡面新建虛擬機器,自訂創建,會檢測不到系統類型,如圖



沒關係,下面選



然後後面的就不截圖了,建議設置2G記憶體,2個vcpu,安裝過程很多人寫過了,基本就是一路next,什麼檢測的自己skip就好了,設置下IP,閘道,安裝完如下圖


我這裡xenserver設置了IP 192.168.1.20,然後到一台windows 2003上輸入xenserver的網址


點第一個就是下載ISO,點第二個就直接彈MSI檔,裝完xencenter之後如下圖



自己喜歡,做poool,做幾個xenserver的,現在的vmware workstation 8已經可以在虛擬出來的xenserver裡面跑vm了,以前的版本是不行的

註冊啟動示意圖




下一步,在xencenter建好xenserver之後,需要註冊啟動,點擊license managener



先到這個網址

http://deliver.citrix.com/go/citrix/xenserver_activation

填資訊,此位址為伺服器請求註冊位址,申請出來的License可以被多台伺服器使用。填寫URL註冊位址資訊。打開註冊郵箱後,License會發到郵箱中;在License Manager中,導入剛剛申請的許可文件即可啟動


上圖為填完資訊後,citrix自動發到你郵箱的郵件,裡面包含的license.xslic就是要在license manager 裡面apply activation key的檔了,如下圖



完成這一步之後,到citrix網址註冊一個號,然後跳轉到

www.mycitrix.com 這個頁面


選擇圖中紅色的位置,預覽/測試版發佈



會有一些序號,隨便點一個,進去,到下一步,如下圖


要求輸入主機名稱,此主機名稱是指license server的主機名稱,不是xenserver的主機名稱,輸入錯了是啟動不了的,下一步,確認,然後點下載,如下圖



下載後是一個尾碼名為.lic的文件



然後找一台windows 2003的主機安裝licen server ,下載地址
http://www.citrix.com/English/ss/downloads/results.asp?productID=1679389



下載過程不截圖了,也是一路next,不能在xp上面裝,裝之前要先裝.net 3.5 sp1,夠麻煩吧,快點去下吧,安裝完打開許可管理主控台,埠8082,如下圖


點管理,供應商守護程式配置



導入剛才下載的尾碼是.lic的許可文件


成功之後,重啟citrix license 服務,再回到控制台,應該看到下面的資訊


  再回到xencenter,進入license manager 點擊assign license,選citrix xenserver for xendesktop,填對應的lincense server的IP位址和埠,確定


完了之後應該看到license server有顯示了,並且expires變成never了








本文出處 "逆轉的前奏"


HP DL360 G6 安裝 XenServer 5 實錄

HP DL360 G6 安裝 XenServer 5 實錄


系統環境說明

硬體:


機型 - HP DL360 G6
RAM - 4 GB
CPU - QC x 2
HDD - 146 GB/SAS/10K

軟體:Citrix XenServer 5.5.0 update 1

Vendor 連結

Citrix 認證硬體資訊
HP 有關 XenServer 的修正檔下載資訊

XenServer 安裝

從 Citrix 官網下載光碟檔及 XenCenter 安裝檔,如下

XenServer-5.5.0-Update1-install-cd.iso
XenServer-5.5.0-Update1-linux-cd.iso
XenServer-5.5.0-Update1-XenCenter.msi


將 iso 檔燒錄成兩張 CD,分別為 install-cd 及 linux-cd,安裝時,先用 install-cd 開機,按照精靈指示作安裝,過程中會提示要放入 Linux Pack CD,在將 linux-cd 放入後,繼續完成安裝步驟即可。

XenCenter 安裝

XenCenter 是 XenServer 的 console 軟體,是用來管理 XenServer 的所有操作,可以找一台 WinXP 機器來裝。
開啟 XenCenter,選擇 Server > Add

輸入 XenServer IP 或主機名稱,root 帳號及密碼

啟動 Free License

開啟 XenCenter 第一次登入 XenServer 時,系統會提示尚未註冊,必須在 30 天內完成啟動程序,按照提示視窗的導引,會連結到一個註冊的網頁,完成資料填寫,尤其 email 地址最是重要,完成後,系統會將授權檔寄到這個信箱。

開啟信箱,將授權檔 license.xslic 另存為新檔。
開啟 XenCenter,先點選 XenServer 主機 > 右鍵選 connect,輸入root帳號密碼 > 選擇 Server > Install License Key,選擇授權檔的路徑。



HP SIM agent 安裝

HP SIM(Systems Insight Manager) 這是 HP 伺服主機監控系統,被監控的主機必須安裝代理程式。

http://h18000.www1.hp.com/products/s...art/index.html
http://h18000.www1.hp.com/products/s...downloads.html

若是單機 Linux 作業環境,可以安裝 HP Smart Start CD 或者採用手動安裝方式,只要下載 PSP(Proliant Support Pack) 的安裝檔,執行 install 即可。
不過本例是安裝 XenServer,無法直接使用 Linux 版的 PSP 或 Smart Start,但 HP 官網有提供 SNMP 代理程式 for XenServer。

下載連結:

http://h50178.www5.hp.com/support/DU...s/os_4039.html
HP SNMP Agents for Citrix XenServer


安裝方法:

由於 XenServer 並無啟用 FTP 服務,所以將安裝檔 hp-snmp-agents-xs-8.2.5-7.tgz,以 WinSCP 工具上傳至 XenServer 主機。

#>tar -xzf hp-snmp-agents-xs-8.2.5-7.tgz 
#>cd hp-snmp-agents-xs-8.2.5-7 
#>vi example.conf


將 SIM Server 的主機名稱或 IP 填入以下幾個參數。
註:SIM Server 是指另一台有安裝 SIM 伺服器版軟體的主機,作為監控所有 HP 機器的中央監控主機。

CMAMGMTSTATIONRWIPORDNS="hpsim.mylocal.mydomain" CMAMGMTSTATIONROIPORDNS="hpsim.mylocal.mydomain" CMATRAPDESTINATIONIPORDNS="hpsim.mylocal.mydomain"

#>mv example.conf hp-snmp-agents.conf 
#>./hp-snmp-agents-xs-8.2.5-7 -s



出自 OSSLab

Install XenServer 5.6

Install XenServer 5.6


下載 Citrix XenServer 5.6 免費版。
下載完後掛載這個iso檔或將iso檔燒成光碟放在要安裝的機器上。

開始安裝

1. 選擇你的Keymap,我們選擇us這個選項。




2. 安裝XenServer會刪掉你硬碟裡面的所有資料,硬碟裡面有重要需要保留的資料應該先備
份起來,確定要繼續安裝XenServer之後按下Ok。




3. Citrix的End User License Agreement 閱讀完畢之後按Accept EULA 繼續XenServer 的安裝。




4. 警告訊息,閱讀完畢之後按下Ok繼續XenServer 的安裝。




5. 選擇一個硬碟來安裝XenServer。




6. 選擇哪些硬碟要做Virtual Machine Storage,建議把全部的硬碟空間都拿來當Virtual
Machine Storage。




7. 選擇Installation Source,這邊我們已經事先將XenServer 5.6 的iso檔掛載在機器上,所以
選擇從 Local media 進行XenServer的安裝。




8. 有沒有要裝Supplemental Packs,這邊我們選No。




9. 有沒有要Verify Installation Source 這邊我們選擇Skip verification。




10. 設定XenServer root 的密碼。




11. 設定XenServer的網路卡。




12. 設定XenServer的網路。




13. 設定XenServer的Hostname 和DNS。




14. 設定XenServer的Time Zone之一。




15. 設定XenServer的Time Zone之二。




16. 設定XenServer的System Time,這邊我們選擇用手動設定( Manual time entry )。




17. 基本設定完成後開始安裝XenServer。




18. 開始安裝XenServer。




19. 設定XenServer的系統時間。




20. 完成XenServer的安裝。




21. 完成安裝後的XenServer的Console 畫面。