2012年1月17日 星期二

查看 HP-UX 版本


 HP 的 Unix 作業系統 HP-UX 目前(2009年止)最新的版本為 11i versions,其中11i 細分了 v1、v2、v3。

 HP-UX 各版本編號及支援硬體種類如下表:
版本編號版本名稱支援PARISC支援Integrity*1
ServersWorkstationsServersWorkstations
11.1111i v1
11.23.yymm*211i v2
11.31.yymm*211i v3
 

 *1 Integrity 是指 HP 與 Intel 共同研發的 Itanium IA64 CPU
 *2 11i v2/v3 大約每六個月會有 Patch 更新的版本號

 查看 HP-UX 版本的方法有下列幾種,擇一即可。

 # uname -r
  B.11.31

 # uname -a  HP-UX twerp01 B.11.31 U ia64 1234567890 unlimited-user license

 # swlist -l bundle QPKBASE
 # Initializing...
 # Contacting Target "localhost"...
 #
 # Target: localhost:/
 #
 QPKBASE B.11.23.0609.053a Base Quality Pack Bundle for HP-UX 11i v2, September 2006

HP-UX自學筆記:基礎篇


  一、UNIX與HP-UX的簡單介紹
  History of the UNIX Operating System
  1969年,UNIX作業系統源于貝爾實驗室。貝爾實驗室的工程師Ken Thompson在Rudd Canaday、Doug Mcllrow、Joe Ossana和Dennis Ritchie的協助下,編寫了一個能實現普通應用共用時段的小系統,這個系統開始引起人們的注意。
  Features of UNIX
  Kernel
  Kernel(內核)就是作業系統。它負責對可用資源進行管理和對硬體進行存取控制。
  shell
  shell是一個命令直譯器。在命令提示符後輸入命令,發出後會被執行。使用者通過shell與電腦通信(shell解釋使用者輸入的命令並交給內核執行,內核訪問、控制電腦硬體系統)。shell接收使用者在鍵盤上鍵入的內容,並把這些內容翻譯成內核可以理解的形式,然後系統執行這個命令。系統與內核是分離的。我們可以選擇自己喜歡的shell。UNIX系統的四種shell:Bourne shell(/usr/old/bin/sh),AT&T UNIX系統最初提供的shell,由貝爾實驗室的Stephen Bourne開發而成。C shell(/usr/bin/csh),基於BSD的UNIX系統提供的shell,由加利福尼亞大學伯克利分校的Bill Joy開發而成。人們將這個shell稱為California shell,縮寫為C shell。Korn shell(/usr/bin/ksh),這是貝爾實驗室新的開發成果,由David Korn開發而成。POSIX shell(/usr/bin/sh)遵從POSIX,包括程式設計語言與命令直譯器。
   層次性的檔案系統
     存儲在磁片上的資訊放在某種容器上,這種容器叫做檔。每個檔都有一個名字,用戶通過指定名字訪問檔。一個UNIX系統一般有數以百計的檔,用戶可以用另外一種容器——目錄,將他們的檔組織成一個邏輯組,在UNIX系統中,目錄可以用來存儲檔或其它目錄。
  多工系統
  在UNIX系統中可以同時執行多個任務。就單獨一個終端而言,使用者可以執行幾個任務。CPU按時間片分給相應的進程。
  多使用者系統
  UNIX對多用戶的支援使得多個用戶能在同一時間登錄和使用系統,多個終端和鍵盤可以同時與一台電腦建立聯接。
  The UNIX System and Standards
  UNIX的可修改性非常強,大部UNIX從AT&T UNIX、BSD UNIX或者兩者結合形成的UNIX中衍生而來,為了提高不同UNIX的的相容性,人們制定了UNIX作業系統環境的標準。這些標準可以提高UNIX的可攜性、互用性與可擴展性。
  What Is HP-UX?
  
  HP-UX 11.0起源於AT&T System V UNIX系統 。HP還提供了一些UNIX的附加特徵:X Windows和Motif使用者圖形界同;CDE(Common Desktop Envioronment)——基於Motif的用戶界同;Visual Editor;製圖語言;對本地語言的支援;基於功能表的系統管理工具(SAM)
  二、UNIX的基本使用
  Logging In and Out
  在登錄到UNIX過程中,有些終端顯示一段時間後會轉入休眠狀態,此時只需要按一個鍵就可以重新啟動它。如果沒有出現login提示符或者出現亂碼,按回車鍵,如果沒有起作用,按Breakspace鍵。這個鍵是讓電腦用另一個速度與你的終端聯接。“login:”後面輸入要登錄的用戶名,“password:”後輸入登錄密碼,密碼不顯示出來,在輸入用戶名和密碼時如果輸入錯了,按下#(Shift+3)會往回刪除一個字元,按下@(Shift+2)刪除整行。因為在此時Backspace鍵沒有刪除功能。
  “$”標記是Bourne shell、Korn shell和POSIX shell命令直譯器使用的標準提示符。
  使用者的密碼
  密碼應該滿足以下條件:至少6個字元;前6個字元中至少有2個字母;前6個字元中至少有1個不是字母。
  The Shell-Commmand Interpretation
  在登錄的過程中,系統將為使用者啟動一個shell,負責顯示提示符和翻譯你鍵入的命令。
  Command Line Format
 
    Syntax:
  $command [-options] [arguments] Return(Enter,按下回車鍵)
  
  “$”,已經知道是UNIX shell的提示符,後面緊跟著是UNIX shell命令;“#”是root用戶登錄時的shell提示符。一定注意命令與參數之間的空格,還得注意字母的大小寫,在UNIX系統中,是區分大小寫的。如果在一個命令列上輸入多個命令,它們之間得用“;”分開。
  Example(Operate on Fedora 15):
  The Secondary Prompt
  交互命令會出現二級提示符。
  The Manual
  
  HP-UX參考手冊
  The Online Manual
  使用man命令可以查看shell命令的幫助手冊。
  Some Beginning Commands
  id     Display you user and group identifications.
       who    Identify other users logged on the system.
  data   Display the system time and date.
  passwd Assign a password to your user account.
      echo    Display simple messages to your screen.
  clear  Clears terminal screen.
  write  Sends messages to another user's terminal.
  mesg   Allow/denies messages to your terminal.
 
  Example(Operate on Fedora 15):
  [senya@localhost ~]$ who
  liveuser tty7         2011-09-16 07:27 (:0)
  liveuser pts/0        2011-09-16 07:43 (:0)
  senya    tty1         2011-09-16 07:58 (:1)
  senya    pts/1        2011-09-16 07:59 (:1)
  [senya@localhost disk1]$ whoami
  senya
  [senya@localhost disk1]$ who am i
  senya    pts/1       2011-09-16 07:59 (:1)
  [root@localhost liveuser]# id
  uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)   context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  三、CDE的使用
  CDE:Common Desktop Environment
  Front Panel Elements
  前面板是在每個工作區螢幕底部的一特殊視窗,包含常用的控制項、指示器及級使用者來管理會話過程所有內容的子面板。
  Front Panel Pop-up Menus
  彈出式功能表是在一個應用程式視窗或工作區中按滑鼠右鍵彈出的功能表。在前面板裡每個控制項都有一個彈出式功能表,各有不同。要顯示在前面板中的彈出式功能表,把滑鼠指標移到某控制項上方,按滑鼠右鍵即可。
  Workspace Switch
  在預設情況下有四個工作區,每個工作區都佔據整個螢幕。工作區切換台由一定數目的按鈕組成,按這些按鈕能夠在工作區之間切換。代表當前工作區的按鈕看上去好像陷下去一樣。
  File Manager
  檔案管理員使用戶不用學習複雜的命令就可以對檔案系統中的檔進行管理。
  四、遍歷檔案系統
  What Is a File System?
  UNIX系統用檔案系統來管理和組織檔和目錄。檔通常是資料的容器,而目錄則是檔和其他目錄的容器。在一個目錄下的目錄被稱為子目錄。(這與Windows作業系統是一樣的。)
  The File System Hierarchy
  
  HP-UX 10.0的檔案系統被重新安排為兩個主要部分:靜態檔和動態檔。
  靜態檔
  這些檔是共用的。這部分有三個很重要的目錄:/opt、/usr和/sbin。/opt 包含應用程式和產品。HP-UX系統的開發者和管理員用這個目錄安裝新的產品或本地使用的應用程式。/usr/bin 包含了UNIX系統基本的操作和檔管理命令。/usr/sbin,包含了系統管理命令。只有超級用戶才可以使用其中的命令。/usr/lib,這個目錄包含應用程式所用的文檔和共用庫。/sbin,包含在啟動和關閉系統時起關鍵作用的命令。
  動態檔
  這些檔是個人所有的。這部分有七個很重要的目錄:/home、/etc、/stand、/tmp、/dev、/mnt、/var。
  /home UNIX系統中的每個使用者應該有自己的帳號。/home目錄下,通常每個使用者帳號都有一個子目錄。使用者對自己目錄下的內容有完全的控制權。
  /etc 存放著許多系統設定檔。/stand/vmunix 該檔存放著系統內核程式。打開系統時,這個程式會被載入記憶體,控制所有的系統操作。
  /tmp 這個目錄通常用來做作業系統的暫存檔案存放場,因為系統常要產生中間檔或者工作檔。UNIX系統有一個約定:系統可以在任何時候刪除任何tmp目錄下的檔。
  /dev 這個目錄包含著代表硬體設備的檔,這些硬體設備可能已經聯接到UNIX系統中。
  /mnt 這個目錄用來載入其它設備
  Path Names
  /home/user2/myfile1
  Some Specail Directories
  .和..目錄 當一個目錄被創建時,該目錄下有兩個條目——.和..。在使用相對路徑名時這兩個目錄常被用到,..是指上一級目錄,.是指目前的目錄。
  Basic File System Commands
  pwd(Present Working Directory) Display the directory name of your current location in the hierarchy.
  ls  Sees what files and directories are under the current directory.
    cd  Changes your location in the hierarchy to another directory.
  find Finds files.
  mkdir Creates a directory.
  rmdir Removea a directory.
  Example(Operate on Fedora 15):
   [liveuser@localhost ~]$ ls -l
   total 32
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Desktop
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Documents
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Downloads
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Music
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Pictures
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Public
   lrwxrwxrwx. 1 root     root       14 Sep 16 11:32 senya -> /var/senyafile
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Templates
   drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Videos
  五、文件管理
  What Is a Files?
  A container for data or a link to a device. Every file has a name and may hold data resides on a disk;There are serveral different types of files:Regular files:text,data、drawings、executable programs;Directories and Device files.
  What Can We Do with Files
  ls  Look at the characteristics of a file
    cat Look at the contents of a file
    more Look at the contents of a file,one screenful at a time
    lp   Print a file
    cp   Make a copy of a file
  mv Change the name of a file or directory or Move a file to another directory
    ln Create another name for a file
  rm  Remove a file
  File Characteristics
  For Example:
      [root@localhost mnt]# mkdir disk1
   [root@localhost mnt]# cd disk1
   [root@localhost disk1]#
    $ls -l
    -rw-r--r-- 1 user1  man1  49   Jul 24 08:06 file1
      drwxr-xr-x 2 user1  man1  1024 Jul 24 12:03 test
    對上面內容進行解釋:
  -(檔案屬性:-表示這是一個檔)rw-r--r--(這一組表示檔的存取權限) 1(聯接數) user1(檔所有者的使用者標識)  man1(能訪問檔的組的標識)  49(檔包含的位元組數)   Jul 24 08:06(檔最後一次被修改的時間) file1(檔案名)
    d(檔案屬性:d表示這是一個目錄)rwxr-xr-x(這一組表示檔的存取權限) 2(聯接數) user1(檔所有者的使用者標識)  man1(能訪問檔的組的標識)  1024(檔包含的位元組數) Jul 24 12:03(檔最後一次被修改的時間) test(目錄名)
  六、文件存取權限
  Who Has Access to a File?
  ◆The UNIX system incorporates a three-tier structure to define who has access to each file and directory:
  user  The owner of the file
    group A group that may have access to the file
    other Everyone else
  ◆The ls -l commmand displays the owner and group who has access to the file.
   UNIX系統對檔提供了三層存取控制結構:user 代表檔的所有者;group 代表可能訪問該檔的組;other 代表系統中所有的其他使用者。
  Types of Access
  There are three types of access fo each file and directory:
    read(r)
  files:    contents can be examined.
    directories: contents can be examined.
  write(w)
  files:    contents can be changed.
  directories:  contents can be changed.
  execute(x)
  files:    file can be used as a command.
  directories:  Can become current working directory.
  chmod——修改檔的許可權
  chmod命令用來修改檔或目錄的許可權,且只能由檔的所有者(或root——系統管理員)修改許可權。因此,在UNIX系統中,設置檔的存取權限是檔所有者的事情,而不是系統管理員的責任。三種許可權:r讀許可權,w寫許可權,x執行許可權。可以選擇修改的方法:+增加許可權;-去掉一部分許可權;=將許可權設置為。可以指定組別:u用戶(文件的所有者)、g組(與檔相關聯的組)、o其它使用者(系統中所有的其它使用者)、a所有使用者(系統中每一個使用者)。
  chmod命令支持用十進位數字字的形式分配檔訪問限制,這種方法已經過時,但也常用。
  $chmod 777 file
  $chmod 000 file1 取消file1檔所有的存取權限
  chown——改變檔的所有者
  chgrp——改變檔所屬的組
  su——Switch User Id(改變使用者標識)
    newgrp——可以改變組標識號 
  Example(Operate on Fedora 15):
   [root@localhost senya]# ll
   total 4
   -rw-r--r--. 1 root root 37 Sep 16 16:13 myscript1.sh
   [root@localhost senya]# chmod u+x myscript1.sh
   [root@localhost senya]# ll
   total 4
   -rwxr--r--. 1 root root 37 Sep 16 16:13 myscript1.sh
  在這個例子中給檔myscript1.sh的所有者增加了執行許可權。
    umask命令——Permission Mask(文件許可權遮罩)
  新建檔的默認許可權一般為rw-rw-rw-,這意味著在系統中的任何使用者都可以修改這個新建檔的內容。新建目錄的預設許可權一般為rwx rwx rwx,這意味著在系統中的任何使用者都可以進入這個目錄、刪除這個目錄下的任何東西。為了保護新建檔和資料夾,應當使用umask命令。
  touch——Update Timestamp on File(更新檔的時間戳記)
  touch命令可以用來創建一個新的空白檔。如果被指定的檔已經存在,touch僅僅更新檔的時間戳記,對檔內容沒有任何影響。
 
  Access Control Lists
  lsacl  list the ACL for a file
  chacl  change the ACL for a file
  用chmod修改許可權將刪除該檔的所有的ACL;ACL 只在hfs檔案系統上得到支持,HP-UX11.00的默認檔案系統不是hfs。
  小結:由於沒有機器,不能安裝HP-UX,命令都是在Fedora 15上練習的。這一部所學習的命令是最基本的系統命令了,一定得熟練操作,記住常用命令選項,實在記不住就使用man手
 七、shell的基礎知識
 
  What Is the Shell?
  shell作為程式,是一個具有交互性的命令列解譯器。它獨立於作業系統。這種設計思路使用戶可以靈活地選擇最適合使用者要求的介面。shell的作用在於等你鍵入命令,執行一些特定的功能,然後將經它解釋的命令傳到作業系統(內核)執行。當使用者登錄到UNIX系統時,shell會先為你的終端會話程序定義一些特定的特徵,然後顯示使用者的提示符。這個提示符在POSIX、Bourne和K shell中被預設為一個$符號。C shell的默認提示符是一個百分號%。
  Commonly Used Shells
  /usr/bin/sh    POSIX shell
  /usr/bin/ksh    Korn shell
  /usr/old/bin/sh Bourne shell
  /usr/bin/csh   C shell
  HP-UX的默認shell是POSIX shell。POSIX是一個遵從POSIX標準的命令程式設計語言和命令直譯器,位於/usr/bin/sh。它可能執行終端和檔中讀來的命令。
  POSIX(Portable Operating System Interface of Unix) Shell Features
  ●A shell user inteface with some advanced features:
   -Command aliasing
      -File name completion
      -Commnad history mechanism
      -Command line recall and editing
   -Job control
      -Enhanced cd capabilities
   -Advanced programming capabilities
  Aliasing
  alias命令 別名是命令的一個新名字。使用別名可以縮短長命令列,創建新的命令,用別名命令的功能替換原標準命令的功能從而使用標準命令執行起來跟以前不同。別名可以是一個字母或者一個簡短的單詞。如,常用命令ps -ef,我們可以創建一個一別名:psf,來代替ps -ef。
$alias psf='ps -ef'
  ualias命令用來關閉別名。
  Example(Operate on Fedora 15):
[liveuser@localhost ~]$ alias
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --showtilde'
[liveuser@localhost ~]$ alias cls='clear'
[liveuser@localhost ~]$ alias dir='ls -l'
[liveuser@localhost ~]$ dir
total 32
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Desktop
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Documents
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Downloads
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Music
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Pictures
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Public
lrwxrwxrwx. 1 root     root       14 Sep 16 11:32 senya -> /var/senyafile
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Templates
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Videos
[liveuser@localhost ~]$ ls -l
total 32
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Desktop
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Documents
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Downloads
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Music
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Pictures
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Public
lrwxrwxrwx. 1 root     root       14 Sep 16 11:32 senya -> /var/senyafile
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Templates
drwxr-xr-x. 2 liveuser liveuser 4096 Sep 16 11:22 Videos
[liveuser@localhost ~]$ unalias dir
  
  File Name Completion
  當訪問一個帶長檔名的檔時,檔案名補齊非常方便。當輸入的字元足夠唯一確定該檔案名時,按Esc Esc,這時POSIX shell會補齊檔案名剩餘的部分。
  Command History
  POSIX shell維護著一個歷史檔,該檔存儲著曾經輸入的命令。也可以重輸入這些命令。UNIX系統對歷史檔的維護跨越各個登錄進程。history命令會顯示最近輸入的16個命令,每行用命令號開頭。當重輸入命令時,指定該命令相應的命令號即可。HISTSIZE參數定義可以訪問歷史命令的數日。
  Example(Operate on Fedora 15):
[liveuser@localhost ~]$ history
    1  ps
    2  ps -ef
    3  ps -a
    4  ps -u
    5  ps -au
    6  man ps
    7  qqq
    8  clear
    9  history
[liveuser@localhost ~]$ history +3
    8  clear
    9  history
   10  history +3

  Re-entering Commands
  Type r c to re-enter command number c.

    Recalling Commands(回檔命令)
  Command Line Editing
  The User Environment
  ◆Your environment describes your session to the programs you run.
  使用者環境描述了會話過程的許多內容,其包括以下資訊:
  ■主目錄的路徑名
  ■在哪裡存放email
  ■工作的時區
  ■登錄的身份
  ■shell從哪裡搜索命令
  ■終端類型和大小
  ■應用程式所依賴的其它東西
  例如,命令vi和more命令需要知道使用的終端類型,這樣它們才能正確地格式化輸出結果。用戶環境可以比喻為辦公室環境。使用者環變數值存儲在/etc/profile或.profile中。/etc/profile用於所有使用者環境變數。env命令可以查看用戶環境。
  Example(Operate on Fedora 15):

  Setting Shell Variables
  
  Syntax:name=value(變數名=變數值)
  兩個重要的變數:PATH與TERM。PATH變數代表的是shell搜索命令的一系列目錄。這要只需要鍵入一個命令名,不用輸入該命令的完全路徑名。例子:PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin。這個PATH表明,鍵入一個命令,shell將首先在/usr/bin搜索命令,接著是/usr/contrib/bin,以此類推,直到在這些目錄找到或都找不到該命令。如果鍵入的命令在任何一個PATH目錄中都找不到,在螢幕上會顯示一個錯誤資訊:command:not found。TERM變數是一個描述使用終端類型的環境變數。
  八、shell的高級特徵
  Shell Substitution Capabilities
  There are three types of substitution in the shell:variable substitution;command substitution;tilde(波浪符號) substitution.替換有助於加快對命令的輸入和執行。
  變數替換(variable Substitution)
  每個被定義的變數有一個值與其相關,當變數名前面緊接著一個$時,shell會用這個變數的值替換這個參數。這個過程被稱為變數替換。
  Example(Operate on Fedora 15):
   [liveuser@localhost ~]$ echo $PATH
   /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/liveuser/bin
   [liveuser@localhost ~]$ echo $HOME
   /home/liveuser
  命令替換(command substitution)
  命令替換就是同個命令列中用一個命令的輸出結果替換該命令。命令替換的標準語法是$(command)。
  Example(Operate on Fedora 15):
   [liveuser@localhost ~]$ echo $(pwd)
   /home/liveuser
   [liveuser@localhost ~]$ date
   Fri Sep 16 11:38:23 EDT 2011
   [liveuser@localhost ~]$ echo $(date)
   Fri Sep 16 11:38:42 EDT 2011
  波浪號替換(Tilde Substitution)
  顯示變數的值
  變數替換體如$variable,可以用來顯示一個變數的值,無論這個變數是在本地資料區還是在使用者環境定義的。env命令可以用來顯示在使用者環境中定義的所有變數的值。set命令可以用來顯示在本地資料區和使用者環境中當前定義的所有變數的值。
  Examples:
  Transferring Local Variables to the Environment(將本地變數轉移到使用者環境中)
  Syntax:
    export variable
  Monitoring Processes(監控進程)
  
  Example(Operate on Fedora 15):
[root@localhost senya]# ps
  PID TTY          TIME CMD
 1577 pts/0    00:00:00 su
 1582 pts/0    00:00:00 bash
 1602 pts/0    00:00:00 ps

[root@localhost senya]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:55 ?        00:00:03 /sbin/init
root         2     0  0 14:55 ?        00:00:00 [kthreadd]
root         3     2  0 14:55 ?        00:00:00 [ksoftirqd/0]
root         4     2  0 14:55 ?        00:00:00 [kworker/0:0]
root         5     2  0 14:55 ?        00:00:00 [kworker/u:0]
root         6     2  0 14:55 ?        00:00:00 [migration/0]
root         7     2  0 14:55 ?        00:00:00 [watchdog/0]
root         8     2  0 14:55 ?        00:00:00 [cpuset]
root         9     2  0 14:55 ?        00:00:00 [khelper]
root        10     2  0 14:55 ?        00:00:00 [netns]
root        11     2  0 14:55 ?        00:00:00 [sync_supers]
root        12     2  0 14:55 ?        00:00:00 [bdi-default]
root        13     2  0 14:55 ?        00:00:00 [kintegrityd]
[root@localhost senya]# top
top - 15:22:13 up 26 min,  2 users,  load average: 0.22, 0.19, 0.37
Tasks: 125 total,   1 running, 124 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.7%us,  1.3%sy,  0.0%ni, 97.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    499528k total,   486864k used,    12664k free,    49340k buffers
Swap:        0k total,        0k used,        0k free,   285764k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
 1065 root      20   0 29320 7688 4360 S  1.7  1.5   0:15.52 Xorg              
 1531 liveuser  20   0 84000  15m  10m S  1.0  3.2   0:05.39 gnome-terminal    
 1348 liveuser  20   0  375m  45m  20m S  0.7  9.2   0:17.10 gnome-shell      
 1629 root      20   0  2736 1036  792 R  0.7  0.2   0:00.10 top              
    1 root      20   0 15248  12m 1760 S  0.0  2.7   0:03.52 systemd          
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd          
    3 root      20   0     0    0    0 S  0.0  0.0   0:00.07 ksoftirqd/0      
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.12 kworker/0:0      
    5 root      20   0     0    0    0 S  0.0  0.0   0:00.22 kworker/u:0      
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0      
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0        
    8 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 cpuset            
    9 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper          
   10 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 netns            
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 sync_supers      
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 bdi-default      
   13 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kintegrityd      
   14 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kblockd          
   15 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kacpid            
   16 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kacpi_notify
  在系統上啟動的每個進程都被分配一個唯一的標識號,這個標識號叫進程號(PID)。ps命令顯示當前運行(或者處於睡眠狀態)進程的有關資訊,包括每個進程的PID及其父進程的PPID。通過PID和PPID可以跟蹤到在系統中運行的任何進程的痕跡。ps命令還可以報告誰是進程的所用者、每個進程的運行終端和其他有用的資訊。
  九、檔案名生成
  File Name Generating Characters(檔案名生成的字元集)
  ? Matches any single character except a leading dot(匹配任意單個字元除用點開頭的之外。)
  [] Defines a class of characters(從將匹配的字元裡分類除了用點開頭之外。)
    - Defines an inclusive range()
    ! Negates the defined class
  (在[]中,一個連字號(-)用在兩個ASCII字元中間表示所有聯接的字元集都包括在同一個範圍裡,!則用做第一個字元來表示否定這個定義的類。)
  * Matches zero or more characters except a leading dot(匹配零字元或者更多的字元集。)
  File Name Generation and Dot Files(檔案名生成與點檔集)
  點文件集是一些檔案名以“.”字元開頭的檔,比如像.profile、.kshrc和.exrc等檔案名。這些檔在系統時通常都是一些隱藏檔,必須用ls -a命令才可以看到這些檔案名。
  File Name Generationg(檔案名生成符)-?
  ?匹配任何單個的字元。
  Example(Operate on Fedora 15):
  
  問號字元能匹配任意的單個字元,但是不能匹配起始符為點的字元。
  
  檔案名生成符-[]
  []defines a class of characters from which one will be matched.中括弧是用來指定一個字元類的匹配符。它作為一個字元類能匹配中括弧內所出現的任意單個字元。用!作為中括弧包含項中的第一個字元是用來表示這個字元類的非類,也就是說,這個中括弧包含的類是用來代替所有不在中括弧裡的字元類。
  Example(Operate on Fedora 15):
    
  十、引用
  對於shell來說,在UNIX系統中有許多字元具有特別的意思。例如:空白鍵用來作為命令和參數之間的間隔符。Carriage return(回車符)執行的是一個回車命令,$字元用來顯示變數名的值。有時,我們需要用到這些特殊的字元,所以,UNIX系統必須能提供一種機制來避免或刪掉帶有特殊意思的指定字元。這種機制就叫做引用(quoting)
  Quoting Characters(引用字元)
  \  backslash(反斜線)
  '    Single Quotes(單引號)
  "  Double Quotes(雙引號)
  反斜線用來去掉在反斜線後的特殊字元的特殊意思。單引號也是用來支掉特殊字元的特殊意思的引用字元。所有包含在單引號中的字元都會被單引號引用。
  \使用的例子:
  '使用的例子:
  "使用的例子:

  十一、輸入與輸出重定向
  Input and Output Redirection——Introduction
  UNIX shell的另一個特徵就是能讓使用者使用關於輸入輸出重定向的功能。大多數UNIX命令執行後把他們的執行結果輸出到使用者終端,有些命令是通過鍵盤得到輸入的。在UNIX系統中,所有的資料都是以檔的形式存在,包括使用者終端和鍵盤。Output redirection(輸出重定向)允許使用者把資料輸出到某些檔裡而不用輸出到終端顯示。同樣,Input redirection(輸入重定向)可以使用使用者通過鍵盤鍵入而從檔中得到輸入資料。輸出重定向對於處理日誌或者捕獲更深層次的輸出命令是非常有用的。
  stdin、stdout and stderr
  每次啟動一個shell,系統中都會有三個檔自動打開提供給用戶。這三個文件是stdin、stdout和stderr。stdin檔用來從用戶shell中讀入輸入的檔。stdout檔用做用戶shell寫標準輸出的檔。stderr檔是用來存放用戶shell的寫操作產生錯誤資訊的檔。
  Input Redirection—— <
  Any command tha reads its input from stdin can have its input redirected to com from another file.
  Output Redirection——> and >>
  any commmand that produces output to stdout can have its output redirected to another file.
  如果想在一個檔後追加內容又不想覆蓋它,可以使用輸出重定向追加符>>。
  Error Redirection——2> and 2>>
  Any command that produces error messages to stderr can have those messages redirection to another file.
  What Is a Filter?
  ◆Reads standard input and produces standard output.
  ◆Filters the contents of the input stream or a file.
   ◆Sends results to screen,never modifies the input stream or file.
  ◆Processes the output of other commands when they are used in conjunction with output redirection.
  wc——Word Count
  wc命令用來統計在標準輸入或者檔時提交內容的行數、詞數和字元。它有一些可選選項:-l、-w、-c。使用-l選項顯示命令列的數目,-w選項顯示詞數,-c選項顯示字元的數目。不用關心選項的使用順序,他們執行結果的輸出順序總是按照行數 、詞數、字元數的順序輸出。
  sort——按字母或數位排序
  grep——Pattern Matching
  grep是一個很有的系統命令。它可以把一個模式(通常被稱為引用)作為其第一個參數,而且它可以將檔案名中的任何數位作為它的保留參數。
  十二、管道
  Pipelines Introduction
  |字元(稱之為管道符),是用來把兩個命令聯接到一起使用的特定字元。在|字元左邊的指令產生的標準輸出,在管道技術裡將作為|字元右邊指令的標準輸入。
  十三、使用網路服務
  What Is a Local Area Network?
  局域網(Local Area Network)是一種在範圍很小的區域內將兩個或多個電腦系統互聯起來的網路技術。 
  LAN Services
  The hostname Command
  hostname  Reports your computer's network name
  十四、vi編輯器介紹
  
  What Is vi?
  ●A screen-oriented text editor
  ●Included with most UNIX system distributions
  ●Command driven
  ●Categories of commands include
    -General administration
    -Cursor movement
    -Insert text
    -Delete text
    -Paste text
    -Modify text
  vi是一個標準的文字編輯器,被廣范地應用在絕大多數UNIX系統裡。一個所謂的文字編輯器實際上是一個互動式的電腦程式,它可以在一個檔裡鍵入文字或者修改檔裡的文字資訊。
  Why vi?
  ●On every UNIX platform
  ●Runs on any type terminal
  ●Very powerful editor
  ●Shell command stack uses it
  ●Other UNIX tools require it
  vi應用廣泛,不論是什麼UNIX機型或系統,都帶有vi編輯器。它是一個基於螢幕而且可以在任何ASCII字元類型的終端上運行的。
  
  Starting a vi Session(開啟一個vi會話)
  調用vi命令將啟動一個編輯任務。如果要編輯的檔已經生成,這個檔的內容將首先顯示在螢幕上。否則,如果正在編輯一個新的檔,將看到一個空白的螢幕而且在最左邊的一行上會出現一個波浪字元。
   vi的幾種模式:Command Mode(命令模式)、Last Line Mode、Input Mode
        按下Esc 鍵進入命令模式,dd 刪除除一行 ,i ,進入輸入模式:當前游標處插入字元。
  十五、進程控制
  The ps Command
  Syntax:
  ps [-efl] Reports Process Status
  Example(Operate on Fedora 15):
[root@localhost senya]# ps
  PID TTY          TIME CMD
 1577 pts/0    00:00:00 su
 1582 pts/0    00:00:00 bash
 1602 pts/0    00:00:00 ps

[root@localhost senya]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:55 ?        00:00:03 /sbin/init
root         2     0  0 14:55 ?        00:00:00 [kthreadd]
root         3     2  0 14:55 ?        00:00:00 [ksoftirqd/0]
root         4     2  0 14:55 ?        00:00:00 [kworker/0:0]
root         5     2  0 14:55 ?        00:00:00 [kworker/u:0]
root         6     2  0 14:55 ?        00:00:00 [migration/0]
root         7     2  0 14:55 ?        00:00:00 [watchdog/0]
root         8     2  0 14:55 ?        00:00:00 [cpuset]
root         9     2  0 14:55 ?        00:00:00 [khelper]
root        10     2  0 14:55 ?        00:00:00 [netns]
root        11     2  0 14:55 ?        00:00:00 [sync_supers]
root        12     2  0 14:55 ?        00:00:00 [bdi-default]
root        13     2  0 14:55 ?        00:00:00 [kintegrityd]
  每一個系統中的進程在初始化的時候都會由系統分配一個唯一的身份認證數位,稱之為進程ID(PID,Process IDentification)
  Background Processing
  Syntax:
   command line>cmd.out & 這個命令列的意思是:◇將這個作業轉入後臺進程;◇shell提示符在作業剛提交完就立即出現;◇重定向這個命令的輸出不會干擾下面的命令交互;◇一旦退出shell,將終止這個後臺進程。當一個後臺進程已經執行完畢後,系統監視器將生成已經完成的資訊提示,當一個命令已經在後臺運行後,它將不再受鍵盤的控制。
  Example(Operate on Fedora 15):
  Putting Jobs in Background/Foreground
  jobs     Display jobs currently running
  Ctrl+z      Suspends a job running in the foreground
    fg [%number]  Brings job number to the foreground or
    fg [%string] and job whose command lin begins with string.
  bg [%number]  Transfers job number to background or
    bg [%number]  and job whose command line begins with string.
  在POSIX shell這種UNIX系統裡,進程即可以在前臺運行,也可以在後臺執行。如果一個正在前臺運行的進程過長,妨礙了別的作業執行。這時可以使用掛起字元。掛起字元通過都是在註冊檔.profile裡指定,掛起命令停止前臺進程,同時提供一個shell提示符。這時可以通過使用bg %數位或者bg %字串來切換作業到後臺執行。數字表示的是從jobs命令返回的作業號,字串表示的是作業的起始命令列。同樣,如果有一個作業在後臺運行而想把它換在到前臺運行,可以使用fg命令。
  Example(Operate on Fedora 15):
  The nohup Command
  Syntax: nohup command line &  UNIX作業系統提供了nohup命令,使得某些命令避免被掛起和退出。nohup命令是UNIX系統中首碼命令組的一種,比其它的命令優先順序要高。
  The nice Command

    Syntax: nice [-N] command_line Runs a process at a lower priority,N is a number between 1 and 19.UNIX作業系統是一個分時系統,而且它有一個基本功能,就是定義進程優先極,以決定哪一個進程經常訪問系統的各類資源。對優先順序低的作業訪問系統資源,系統將加以限制,而高優先順序的進程將優先執行。
  The kill Command kill命令可以終止所有的命令運行,包括nohup命令和後臺運行的命令。
  十六、shell程式設計介紹
  Shell Programming Overview
  A shell program is a regular file containing UNIX system commands.The file's permissions  must be at least "read" and "execute".To execute,type the name of the file at the shell prompt.
  shell是一個命令直譯器。它用於解釋在shell提示符下鍵入的各種命令。而且,可以建立一個shell命令組,這個組裡的命令是經常需要反復鍵入命令。shell可以把這些命令存儲在一個檔裡,然後像別的UNIX系統提供的命令一樣執行這個檔。這個命令檔通常稱之為shell程式或者shell腳本。shell支援變數、命令列參數調用、互動式輸入、測試、分支和迴圈,所以在編寫腳本的時候,可以根據需要寫出功能更強、結構更複雜的程式來。
  Example(Operate on Fedora 15):
  先用vi編輯器創建一個指令檔,檔案名為myscript1.sh:
  myvar='I love Linux'
  echo $myvar
  pwd
  為用戶賦於可以執行許可權:
  [root@localhost senya]# chmod u+x myscript1.sh
  執行腳本:
  [root@localhost senya]# ./myscript1.sh
  腳本運行的結果:
  I love Linux
  /home/liveuser/senya
  Passing Data to a Shell Program(傳遞資料給shell程式)
  Arguments to Shell Programs(Shell程式中的參數)
  Some Special Shell Variables-# and *
  十七、shell程式設計——分支
  ◆The if Construct
  Syntax:
  if
   list A
  then
   List B
    fi
  ◆The if-else Construct
  if
      list A
    then
      list B
    else
      list C
    fi
  Example:
  ◆The case Construct
  Syntax:
     case word in
      pattern1) list A
              ;;
      pattern2) list B
              ;;
      pattern3) list N
              ;;
      esac
  Example(Operate on Fedora 15):
   x=yes
   case $x in
     yes) echo 'This is ok!';;
     no) echo 'Not Lucky!';;
   esac
  十八、shell程式設計——迴圈
  Loops——an Introduction
  Purpose: Repeat executtion of a list of commands.
  Three forms:
    while...do...done
        until...do...done
        for...do...done
  十九、檔離線存儲
  Storing Files to Tape
  ◆To store files to a tape you must know the device file name for your tape device.
  ◆Typical names might be
   /dev/rmt/Om
      /dev/rmt/cotedoBEST
  ◆Ask your system administrator which device file accesses the tape drive.
  ◆Commands to perform file backups include:
      tar  cpio
  tar example:
   [root@localhost etc]# tar -cvf /var/senya/UserInfobk.tar passwd group
passwd
group
[root@localhost etc]# ls /var/senya
FirstScript.sh  user6file.txt  UserInfobk.tar
[root@localhost etc]# tar -zcvf /var/senya/userinfobk.tar.gz passwd group
passwdgroup
[root@localhost etc]# ls /var/senya
UserInfobk.tar  userinfobk.tar.gz
  tar命令是把文檔進行打包歸檔,配合gzip與bzip2可以對打包的檔進行壓縮。
  參考資料:《UNIX系統基礎》

Informix基本安裝步驟-IBM AIX環境(SUN和HP類似)


首先,我們當然要取得informix資料庫的安裝包了,不同的系統,安裝包不一樣。其實基本安裝步驟都是差不多。
一:取得informix資料庫的安裝包,並將其上傳到系統中的某個目錄
二:建立informix組和informix用戶
IBM:mkuser或者useradd建立informix用戶,mkgroup建立informix組
HP:useradd建立用戶,groupadd建立組
SUN:useradd建立用戶,groupadd建立組
三:規劃好informix資料庫的空間,informix資料庫需要如下空間,安裝informix資料庫本身的空間,rootdbs,tempdbs,phydbs,logdbs以及workdbs。一般,informix資料庫本身安裝在/opt/informix目錄或者/usr/informix目錄下。
rootdbs,tempdbs,phydbs,logdbs以及workdbs使用touch命令創建即可。如果資料量比較大,可以單獨建立類型為raw的lv。
建立好之後將lv或者dbs賦予相應許可權。
chown informix:informix *dbs*
chmod 660 *dbs*
四:開始安裝informix資料庫
將安裝包拷貝到/opt/informix(假設informix安裝在此目錄下面),在informix使用者下解壓安裝包
編輯.cshrc環境變數
setenv INFORMIXDIR /opt/informix
setenv PATH $INFORMIXDIR/bin:$PATH
setenv ONCONFIG onconfig
保存退出,source .chsrc使環境變數生效。
在剛才的環境下,使用su命令切換到root用戶,注意,在切換的時候確保剛才的環境變數不會改變。
#./installserver(informix 7.3) 或者#./ids_install(informix9.4)系統自動進行安裝。
五:修改設定檔
主要修改以下幾個設定檔:/opt/informix/etc/sqlhosts ,/opt/informix/etc/onconfig /etc/services
下面給出這幾個檔的典型例子
/opt/informix/etc/sqlhosts文件
hostname_online            onipcshm        hostname   sqlexec
hostname_online_net        onsoctcp        hostname   sqlexec_net(適用於IBM和HP)
hostname_online_net        ontlitcp        hostname   sqlexec_net (用與SUN)

/etc/services文件
sqlexec        9002/tcp
sqlexec_net    9003/tcp

/opt/informix/etc/onconfig檔,太長,只貼點關鍵的。這裡以IBM的AIX為例子

# Root Dbspace Configuration

ROOTNAME        rootdbs         # Root dbspace name
ROOTPATH        /dev/rlvrootdbs # Path for device containing root dbspace
ROOTOFFSET      40              # Offset of root dbspace into device (Kbytes)
ROOTSIZE        256000          # Size of root dbspace (Kbytes)

# Disk Mirroring Configuration Parameters

MIRROR          0               # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH                      # Path for device containing mirrored root
MIRROROFFSET    0               # Offset into mirrored device (Kbytes)

# Physical Log Configuration

PHYSDBS         phydbs          # Location (dbspace) of physical log
PHYSFILE        500000          # Physical log file size (Kbytes)

# Logical Log Configuration

LOGFILES        10              # Number of logical log files
LOGSIZE         50000           # Logical log size (Kbytes)

# Diagnostics

MSGPATH         /opt/informix/online.log # System message log file path
CONSOLE         /dev/console    # System console message path

# To automatically backup logical logs, edit alarmprogram.sh and set
# BACKUPLOGS=Y
ALARMPROGRAM    /opt/informix/etc/alarmprogram.sh # Alarm program path
TBLSPACE_STATS  1               # Maintain tblspace statistics

# System Archive Tape Device

#TAPEDEV                /dev/null       # Tape device path
TAPEDEV         /usr/informixdata
TAPEBLK         128             # Tape block size (Kbytes)
TAPESIZE        20400000                # Maximum amount of data to put on tape (Kbytes)

# Log Archive Tape Device

#LTAPEDEV       /dev/null       # Log tape device path
LTAPEDEV        /opt/informix/data/logbackdev
LTAPEBLK        64              # Log tape block size (Kbytes)
LTAPESIZE       8192000                 # Max amount of data to put on log tape (Kbytes)

# Optical

STAGEBLOB                       # Informix Dynamic Server staging area

# System Configuration

SERVERNUM       1               # Unique id corresponding to a OnLine instance
DBSERVERNAME    hostname_online            # Name of default database server
DBSERVERALIASES hostname_online_net                # List of alternate dbservernames
NETTYPE                         # Configure poll thread(s) for nettype
DEADLOCK_TIMEOUT        60      # Max time to wait of lock in distributed env.
RESIDENT        0               # Forced residency flag (Yes = 1, No = 0)

MULTIPROCESSOR  0               # 0 for single-processor, 1 for multi-processor
NUMCPUVPS       1               # Number of user (cpu) vps
SINGLE_CPU_VP   0               # If non-zero, limit number of cpu vps to one

NOAGE           0               # Process aging
AFF_SPROC       0               # Affinity start processor
AFF_NPROCS      0               # Affinity number of processors

# Shared Memory Parameters

LOCKS           500000          # Maximum number of locks
BUFFERS         50000           # Maximum number of shared buffers
NUMAIOVPS                       # Number of IO vps
PHYSBUFF        32              # Physical log buffer size (Kbytes)
LOGBUFF         32              # Logical log buffer size (Kbytes)
CLEANERS        1               # Number of buffer cleaner processes
SHMBASE         0x700000010000000       # Shared memory base address
SHMVIRTSIZE     8000            # initial virtual shared memory segment size
SHMADD          8192            # Size of new shared memory segments (Kbytes)
SHMTOTAL        0               # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL       300             # Check point interval (in sec)
LRUS            8               # Number of LRU queues
LRU_MAX_DIRTY   2               # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY   1               # LRU percent dirty end cleaning limit
TXTIMEOUT       300             # Transaction timeout (in sec)
STACKSIZE       64

MIRROR          0               # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH                      # Path for device containing mirrored root
MIRROROFFSET    0               # Offset into mirrored device (Kbytes)

不同的系統,SHMBASE的值不太一樣,這裡一定要注意,否則,資料庫初始化會報錯。
informix 9.4在3種小型機上安裝的時候,SHMBASE的參數各不相同。
Solaris:SHMBASE         0x10A000000L    # Shared memory base address
AIX:SHMBASE         0x700000010000000       # Shared memory base address
HP-UX:SHMBASE         0       # Shared memory base address

還有一點要注意,在資料庫進行oninit -iv之前,phydbs和logdbs的空間應該為rootdbs,而且phydbs和logdbs之和應該小於rootdbs空間,否則,oninit -iv無法初始化。

六:使用oninit -iv進行informix的初始化,正常情況下,資料庫應該處於online狀態。
informix 初始化的一些過程

% oninit -iv

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y
Checking group membership to determine server run modesucceeded
Reading configuration file '/opt/informix/etc/onconfig'...succeeded
Creating /INFORMIXTMP/.infxdirs ... succeeded
Creating infos file "/opt/informix/etc/.infos.mscp_online1" ... "/opt/informix/etc/.conf.mscp_online1" ... suc
ceeded
Writing to infos file ... succeeded
Checking config parameters...succeeded
Allocating and attaching to shared memory...succeeded
Creating resident pool 231712 kbytes...succeeded
Creating buffer pool 3962016 kbytes...succeeded
Creating buffer pool 37992 kbytes...succeeded
Initializing rhead structure...succeeded
Initializing ASF ...succeeded
Initializing Dictionary Cache and SPL Routine Cache...succeeded
Bringing up ADM VP...succeeded
Creating VP classes...succeeded
Onlining 6 additional cpu vps...succeeded
Onlining 2 IO vps...succeeded
Initialization of Encryption...succeeded
Forking main_loop thread...succeeded
Initializing DR structures...succeeded
Forking 1 'ipcshm' listener threads...succeeded
Forking 1 'soctcp' listener threads...succeeded
Starting tracing...succeeded
Initializing 15 flushers...succeeded
Initializing log/checkpoint information...succeeded
Opening primary chunks...succeeded
Opening mirror chunks...succeeded
Initializing dbspaces...succeeded
Validating chunks...succeeded
Creating database partition
Initialize Async Log Flusher...succeeded
Forking btree cleaner...succeeded
Initializing DBSPACETEMP list
% Checking database partition index...succeeded
Checking location of physical log...succeeded
Initializing dataskip structure...succeeded
Checking for temporary tables to drop
Forking onmode_mon thread...succeeded
Verbose output complete: mode = 5

使用onstat -,如果出現如下提示,表示資料庫初始化成功。
IBM Informix Dynamic Server Version 9.40.FC2     -- On-Line -- Up 12 days 05:44:38 -- 303532 Kbytes

七:使用onspaces創建其它資料空間,並將phydbs和logdbs移出rootdbs,並使用oninit -vy重新開機資料庫即可。

建立使用者帳號(適用 HP-UX)


 建立帳號可用 SAM、SMH 或指令,這裡介紹使用 useradd 指令建立帳號。


# useradd -o \            # 允許使用相同的 UID
     -u 101 \           # 自訂 UID
     -g users \          # 定義主要群組
     -G mis,sales \        # 定義次要群組
     -c "Manager" \       # 自訂註解
     -m -d /home/user1 \     # 建立家目錄
     -s /usr/bin/sh \       # 定義預設 shell
     -e 1/1/2010 \        # 定義帳號過期日
     -p Ukkfue.28FYie \     # 設定密碼,必須已加密
     -t /etc/default/useradd \ # 上列未設定的參數,則參考範本檔
     username
註: " \ " 為跳脫字元,指與下一行為同一行指令


-o -u uid
========
建立使用者,預設會從 UID 100 開始自動配發唯一的 UID。
-u 參數可自訂 UID 號碼。
-o 參數允許使用與其他使用者帳號相同的 UID,一般與 -u 一起使用。
-g group
========
定義主要群組,必須已存在 /etc/group 中。
- G group
=========
定義次要群組,必須已存在 /etc/group 中。
若要定義多個次要群組以 " , " 分隔。
最多只能有 20 個次要群組。
-c comment
===========
註解,自訂 /etc/passwd 註解欄位的說明。
-k skeldir
=========
可指定建立帳號時,要複製誰的家目錄。
預設是 /etc/skel 範本目錄。
-m -d dir
========
-d 參數可定義使用者家目錄。
家目錄預設為 /home/username。
-m (make) 參數自動建立使用者家目錄。
-s shell
=======
定義使用者登入後所使用的 shell。
預設使用 /sbin/sh。
/sbin/sh 是 POSIX shell,它是一個 statically linked ,比 /usr/bin/sh shell 的 dynamically linked 需要更多系統資源。
所以 /sbin/sh 是給 root 帳號使用,其他一般使用者應該使用 /usr/bin/sh。
-e expire
=========
定義帳號過期日期。
超過期限,將無法使用互動模式登入系統。
格式為 /mm/dd/yyyy。
系統有使用 /etc/shadow,此參數才會生效。
-f inactive
==========
定義密碼過期後,還有多少天數可以使用。
在 HP-UX 系統,僅適用 Trusted System 中。
-p password
============
自訂帳號密碼,此參數必須使用已加密過的密碼。
可搭配 perl 的 crypt 參數來建立,範本建立user1 的密碼為 " user ":
# useradd -p $(perl -e "print crypt('user','xx')") user1
上述方法雖可一次設定使用者密碼,但要注意,操作過的指令會以明碼記錄在 ~/.sh_history ( 11i v2 之前為 ~/.bash_history ) 中。
假如 -p 不定義,預設帳號是停用的,必須使用 passwd username 設定新密碼。
此參數僅適用 11i v3 以後的版本。
-t template
===========
指定範本檔。
當使用 useradd 未使用其他參數時,則參考範本檔的參數。
未輸入任何參數,預設範本檔為 /etc/default/useradd。
Username
==========
新使用者的帳號名稱。
長度為 1 ~ 8 個字元。
第一個字元必須為英文。
如果定義的帳號名稱超過 8 個字元,只有前 8 個字元有效。


--------------------------------------------------------------------

設定使用者密碼
============


 使用 useradd 指令建立使用者帳號後,除非有使用 -p 參數指定密碼,否則必須使用 passwd 指令設定密碼後才能使用新帳號登入系統。


 使用互動模式設定帳號密碼。
 # passwd user1


 設定密碼為空值,無須密碼即可登入系統。
 # passwd -d user1


 設定下次登入必須變更密碼。
 # passwd -f user1


建立 /etc/default/ 中 useradd 的範本檔
====================================


/etc/default/ 可自訂多種範本檔,以便建立多種不同用途的使用者帳號。
useradd 預設使用 /etc/default/useradd 為範本檔。
  自訂範本檔。
  # useradd -D \               # 更新預設範本檔
       -t /etc/default/useradd.sales \ # 範本檔路徑(11i v3 才有此參數)
       -b /home \            # 預設家目錄路徑
       -c "Sales Div." \         # 註解
       -g salses \            # 主要群組
       -s /usr/bin/sh           # 預設的 shell
  

  檢查範本內容,使用 useradd 檢查必須加上 -D 及 -t 參數,或使用 cat 指令查看範本內容。
  # useradd -D -t /etc/default/useradd.sales
   GROUPID 101
   BASEDIR  /home
   SKEL    /etc/skel
   SHELL   /usr/bin/sh
   INACTIVE -1
   EXPIRE
   COMMENT Sales Div
   CHOWN_HOMEDIR no
   CREAT_HOMEDIR no
   ALLOW_DUP_UIDS no


  使用新範本建立使用者,記得加上 -m 參數建立家目錄。
  # useradd -m -t /etc/default/useradd.sales sales01
  

  使用預設範本建立使用者,記得加上 -m 參數建立家目錄,否則只會建立帳號,不會連同家目錄一起建立。
  # useradd -m sales01
  

  若未加 -m 參數,則要自行建立家目錄。
  # mkdir /home/sales01         # 建立家目錄
  # cp /etc/skel/.* /home/sales01      # 複製預設檔案
  # chown -R sales01:users /home/sales01  # 變更家目錄及檔案的擁有者及群組

Linux及HP-UX下Informix的安裝配置


準備工作﹕linux os 安裝好
一.建立informix group﹐group id 為200
    #groupadd –g 200 informix
二.建立informix user id
    #useradd  –g  informix  –d  /u/inf7.3  –u  200  informix
三.        改informix password            “一般不用改”
     # passwd Informix
     #new passwd :
     # reinput
四.設置informix 環境參數
# INFORMIXDIR=/u/inf7.3      “可以從其它機器上拷貝一個.bash_profie”
# PATH=$INFORMIXDIR/bin:$PATH
# export INFORMIXDIR PATH
五.將其他機器上的informix備份*.tar.Z文件拷貝到/u/inf7.3目錄中。
  或者從光盤上拷貝informix 的*.tar.Z文件拷貝到/u/inf7.3目錄中。
  #mount  /mnt/cdrom
  #cp  /mnt/cdrom/informix/*.tar.Z  /u/inf7.3

六.        進入INFORMIXDIR
#  cd /u/inf7.3
安裝informix
    1 .Su – Informix
2 . su  root  “使用informix的環境變量用root用戶。”
step 1 .解壓縮sql.tar.Z,(uncompress sql.tar.Z/tar xvf sql.tar)
      或使用tar vxf  sql.tar。   ( root 下解包)
      產生installsql 文件
      安裝  # ./installsql      “ 要使用root賬號﹐informix的環境變量。”
      輸入 serial number and key 即可
serial number:ACN#A313826
key:YNLUKN
step 2: 解壓縮debug.tar.Z(uncompress debug.tar.Z/tar xvf debug.tar)
      產生install4db 文件
      安裝  # ./install4db
      輸入 serial number and key 即可
serial number:ACN#A313826
key:YNLUKN
step 3: 解壓縮redevel.tar.Z(uncompress rdevel.tar.Z/tar xvf rdevel.tar)
      or use this command line: tar –vxzf redevel.tar.Z
      產生install4gp 文件
      安裝  # ./install4gp
      輸入 serial number and key 即可
serial number:ACN#A313826
key:YNLUKN
step 4:安裝 ids
          光盤安裝步驟﹕
#cp /mnt/cdrom/informix/IDS.RPM  /u/inf7.3/ids.rpm
      #rpm  -iv  ids.rpm
      #rpm  -e  ids-7.30.UC7-1
      #rpm  -iv  --prefix  $INFORMIXDIR  ids.rpm(在ROOT賬號下使用INFORMIX的環境變量。)
       cpio –icuvdmB<ids.7.31.FD4W6.HPUX-11.cpio
     產生installserver 檔    “這個installserver安裝檔﹐不用安。”
     安裝  # ./installserver
     輸入 serial number and key 即可
serial number:ACN#A313826
key:YNLUKN
          從其它機器上拷貝過來的壓縮文件﹐安裝步驟﹕
解壓縮IDS940UC6.tar.Z(uncompress IDS940UC6.tar.Z/tar xvf IDS940UC6.tar)
      or use this command line: tar –vxzf  IDS940UC6.tar.Z
      產生IDS940UC6 目錄﹕
      cd  IDS940UC6
     安裝  # ./ids_install
     選擇﹕1 (server 9.40)
     輸入 serial number and key 即可
serial number:ACN#A313826
key:YNLUKN
step 5: 安裝 中文支援 (uncompress chinese.tar.Z/tar xvf chinese.tar)
       or use this command : tar –vxzf Chinese.tar.Z
      產生installzh_tw* 文件
      安裝  # ./installzhtw
      選擇  7(engine version)  and (tools version is  1)
      輸入 serial number and key 即可
 serial number:ACN#A313826
 key:YNLUKN
七.        配置/u/inf7.3/.bash_profile 檔 加入以下內容
   INFORMIXDIR/bin:$PATH;export PATH
   INFORMIXDIR=/u/inf7.3;export INFORMIXDIR
   PATH=$INDBDATE=Y4MD0;export DBDATE                    
   DBCENTURY=C;export DBCENTURY
   DBDELIMITER=^A;export DBDELIMITER
   INFORMIXSERVER=on_tcp51;export INFORMIXSERVER
   ONCONFIG=onconfig.top;export ONCONFIG
   DB_LOCALE=zh_tw.big5;export DB_LOCALE
   CLIENT_LOCALE=zh_tw.big5;export CLIENT_LOCALE
   SERVER_LOCALE=zh_tw.big5;export SERVER_LOCALE
八.        配置/etc/services 加入以下內容: vi /etc/services
     on_tcp51_srv         9051/tcp
九.        .配置/etc/hosts 加入以下內容: vi /etc/hosts
     ip address    hostname  
十.        用informix 在/u/inf7.3/etc/下﹐執行以下命令﹕
cp  sqlhosts.std   sqlhosts
cp  onconfig.std   onconfig.top
十一.配置/u/inf7.3/etc/sqlhosts 檔,加入以下內容; “在informix 用戶下加入﹕”
cdr51        group           -               -               i=51
on_tcp51    onsoctcp   bm1uxzby(hostname)   on_tcp51_srv  g=cdr51
on_shm51   onipcshm   bm1uxzby(hostname)    on_shm51_srv  g=cdr51

十二.以 Informix login
注意:首先要 touch 一個file 用作rootdbs
可以用命令增加﹐例如﹕
Onspaces  -c  -d  dbs  -p /u/dbs/rootdbs  -s 204800  -o 0;
列如;
目錄  /u/dbs/rootdbs
mkdir dbs
chown Informix dbs
chmod 770 dbs
cd dbs
touch rootdbs
chmod 660 rootdbs
chown Informix: Informix  rootdbs
十三.修改/u/inf7.3/etc/onconfig.top 檔,加入以下內容:
ROOTNAME       rootdbs
ROOTPATH        /u/dbs/rootdbs
ROOTSIZE        1000000(Kbytes) 可以默認
MSGPATH         /u/inf7.3/online.log              # System message log file path
CONSOLE         /dev/console                   # System console message path
ALARMPROGRAM    /u/inf7.3/etc/alarmprogram.sh    # Alarm program path
TBLSPACE_STATS  1                            # Maintain tblspace statistics
SERVERNUM       51             # Unique id corresponding to a OnLine instance
DBSERVERNAME    on_tcp51       # Name of default database server
DBSERVERALIASES  on_shm51
NETTYPE      soctcp,1,300,NET           # Configure poll thread(s) for nettype
NETTYPE      ipcshm,1,50,CPU
$ onmonitor---- Parameters----- Initialize
配置informix paramenters.-----------initializes----Y---enter
也可以直接vi /u/inf7.3/etc/onconfig.top  然後 oninit –iv  “第一次初始化用i 參數”
如果要加入dbspace
要先建立文件如建立dbs1 一樣.
然後$ onmonitor---dbspaces---create---輸入dbspace name   path   offset    size   (mirror   temp   all N)  即可.
Licence for sql ,debug,redevel,Chinese support
serial number and key:
ACN#A313826   KEY:  YNLUKN
LICENCE FOR IDS:
  AAB#C540893     KEY:CETPJF
INFORMIX SOURCE HOSTS:
IP: 172.30.189.64
/u/source/sql.tar.Z debug.tar.Z Chinese.tar.Z redevel.tar.Z   IDS.RPM-7.3UC7
IP:172.30.189.56
/exp/source:
Chinese.tar debug.tar redevel.tar sql.tar  IDS.RPM(7.3) clientsdk.tar
/exp/ids:
ids.rpm (ids2000)
附﹕啟動後﹐添加logical log 的數量 (系統默認在rootdbs 裡添加4 個logical log ,需添加log 到logdbs裡)
# onparams -a -d logdbs -s 10000
刪除在rootdbs 裡的4個logical log
#onstat –l(查看log ,前4個logical log 建在rootdbs上)
#onmode –c (執行檢查點)
#onmode –l (強迫至下一個邏輯登錄)
#onparams –d –l 1 (2/3/4)
oninit: DBSERVERNAME 'sappds02' not in sqlhosts file or sqlhosts file contents
are damaged.
shared memory not initialized for INFORMIXSERVER '<NULL>'

ndd命令


該命令是在Solaris下用於查詢和修改系統中驅動程式模組的配置參數;目前只對TCP/IP協定簇模組驅動程式實現了ndd命令的功能;
使用方法:
ndd [-set] <驅動程式模組路徑名> <參數名> [值]

例如:查詢TCP驅動模組的相關配置參數的説明方法為下命令:
ndd /dev/tcp \?
會輸出以下內容:
? (read only)
tcp_time_wait_interval (read and write)
tcp_conn_req_max_q (read and write)
tcp_conn_req_max_q0 (read and write)
tcp_conn_req_min (read and write)
tcp_conn_grace_period (read and write)
tcp_cwnd_max (read and write)
tcp_debug (read and write)
tcp_smallest_nonpriv_port (read and write)
tcp_ip_abort_cinterval (read and write)
tcp_ip_abort_linterval (read and write)
tcp_ip_abort_interval (read and write)
tcp_ip_notify_cinterval (read and write)
tcp_ip_notify_interval (read and write)
tcp_ipv4_ttl (read and write)
tcp_keepalive_interval (read and write)
tcp_maxpsz_multiplier (read and write)
tcp_mss_def_ipv4 (read and write)
tcp_mss_max_ipv4 (read and write)
tcp_mss_min (read and write)
tcp_naglim_def (read and write)
tcp_rexmit_interval_initial (read and write)
tcp_rexmit_interval_max (read and write)
tcp_rexmit_interval_min (read and write)
tcp_deferred_ack_interval (read and write)
tcp_snd_lowat_fraction (read and write)
tcp_sth_rcv_hiwat (read and write)
tcp_sth_rcv_lowat (read and write)
tcp_dupack_fast_retransmit (read and write)
tcp_ignore_path_mtu (read and write)
tcp_rcv_push_wait (read and write)
tcp_smallest_anon_port (read and write)
tcp_largest_anon_port (read and write)
tcp_xmit_hiwat (read and write)
tcp_xmit_lowat (read and write)
tcp_recv_hiwat (read and write)
tcp_recv_hiwat_minmss (read and write)
tcp_fin_wait_2_flush_interval (read and write)
tcp_co_min (read and write)
tcp_max_buf (read and write)
tcp_strong_iss (read and write)
tcp_rtt_updates (read and write)
tcp_wscale_always (read and write)
tcp_tstamp_always (read and write)
tcp_tstamp_if_wscale (read and write)
tcp_rexmit_interval_extra (read and write)
tcp_deferred_acks_max (read and write)
tcp_slow_start_after_idle (read and write)
tcp_slow_start_initial (read and write)
tcp_co_timer_interval (read and write)
tcp_sack_permitted (read and write)
tcp_trace (read and write)
tcp_compression_enabled (read and write)
tcp_ipv6_hoplimit (read and write)
tcp_mss_def_ipv6 (read and write)
tcp_mss_max_ipv6 (read and write)
tcp_rev_src_routes (read and write)
tcp_ndd_get_info_interval (read and write)
tcp_rst_sent_rate_enabled (read and write)
tcp_rst_sent_rate (read and write)
tcp_use_smss_as_mss_opt (read and write)
tcp_wroff_xtra (read and write)
tcp_extra_priv_ports (read only)
tcp_extra_priv_ports_add (write only)
tcp_extra_priv_ports_del (write only)
tcp_status (read only)
tcp_bind_hash (read only)
tcp_listen_hash (read only)
tcp_conn_hash (read only)
tcp_acceptor_hash (read only)
tcp_host_param (read and write)
tcp_time_wait_stats (read only)
tcp_host_param_ipv6 (read and write)
tcp_1948_phrase (write only)
tcp_reserved_port_list (read only)
tcp_close_wait_interval(obsoleted- use tcp_time_wait_interval) (no read or write)

查詢TCP的傳輸報文長度參數:
ndd /dev/tcp tcp_mss_def_ipv4
ndd /dev/tcp tcp_mss_max_ipv6
ndd /dev/tcp tcp_mss_min

查詢TCP的接受連接請求佇列的大小:
ndd /dev/tcp tcp_conn_req_max_q
ndd /dev/tcp tcp_conn_req_max_q0
ndd /dev/tcp tcp_conn_req_min

查詢TCP擁塞視窗的最大大小:
ndd /dev/tcp tcp_cwnd_max

查詢TCP資料緩存空間的最大大小:
ndd /dev/tcp tcp_max_buf

loopback具體作用


    此類介面是應用最為廣泛的一種虛介面,幾乎在每台路由器上都會使用。常
見於如下用途。
1 、作為一台路由器的管理地址
    系統管理員完成網路規劃之後,為了方便管理,會為每一台路由器創建一個
loopback 介面,並在該介面上單獨指定一個IP 位址作為管理位址,管理員會
使用該位址對路由器遠端登入(telnet ),該位址實際上起到了類似設備名稱
一類的功能。
    但是通常每台路由器上存在眾多介面和位址,為何不從當中隨便挑選一個呢?
原因如下:由於telnet 命令使用TCP 報文,會存在如下情況:路由器的某一個
介面由於故障down 掉了,但是其他的介面卻仍舊可以telnet ,也就是說,到
達這台路由器的TCP 連接依舊存在。所以選擇的telnet 位址必須是永遠也不會
down 掉的,而虛介面恰好滿足此類要求。由於此類介面沒有與對端互聯互通
的需求,所以為了節約位址資源,loopback 介面的位址通常指定為32 位元遮罩。
2 、使用該介面位址作為動態路由式通訊協定OSPF 、BGP 的router id
    動態路由式通訊協定OSPF 、BGP 在運行過程中需要為該協定指定一個Router id ,作
為此路由器的唯一標識,並要求在整個自治系統內唯一。由於router id 是一個
32 位的不帶正負號的整數,這一點與IP 地址十分相像。而且IP 地址是不會出現重複
現象的,所以通常將路由器的router id 指定為與該設備上的某個介面的位址相
同。由於loopback 介面的IP 位址通常被視為路由器的標識,所以也就成了
router id 的最佳選擇。
3、使用該介面位址作為BGP 建立TCP 連接的源位址
    在BGP 協議中,兩個運行BGP 的路由器之間建立鄰居關係是通過TCP 建立連
接完成的。
    在配置鄰居時通常指定loopback 介面為建立TCP 連接的源位址(通常只用於
IBGP ,原因同2.1 ,都是為了增強TCP 連接的健壯性)
配置命令如下:
router id 61.235.66.1
interface loopback 0
ip address 61.235.66.1 255.255.255.255
router bgp 100
neighbor 61.235.66.7 remote-as 200
neighbor 61.235.66.7 update-source LoopBack0

informix for linux安裝全攻略


第一步:下載
ids 9.4 for linux:
ftp://ftp.youngcow.net/Special/Database/DatabaseServer/Informix/InformixDynamicServerVersion9.4/IIUG-IDS-9.4-linux.zip

csdk for linux:
ftp://ftp.software.ibm.com/software/data/informix/downloads/clientsdk.2.81.UC2.LINUX.tar

第二步:linux搭建安裝informix的環境

建立informix組:groupadd -g 20000 informix

建立informix用戶:useradd -u 20000 -g 20000 -d /home/informix -m informix

修改informix使用者環境變數:
修改 .bash_profile檔 增加以下環境變數

INFORMIXDIR=/home/informix
INFORMIXSERVER=cs_dbs
ONCONFIG=onconfig.cs
DBDATE=MDY4*
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export INFORMIXDIR INFORMIXSERVER ONCONFIG LD_LIBRARY_PATH
PATH=$PATH:$INFORMIXDIR/bin
export PATH
這個就不用偶解釋了吧;

第三步:準備安裝文件

zip檔解壓就不用偶說了吧;呵呵

把解開的一個Linux-IDS.9.40.tc1e1.cpio與clientsdk.2.81.UC2.LINUX.tar檔傳入環境中;

解開Linux-IDS.9.40.tc1e1.cpio:cpio -idmv <Linux-IDS.9.40.tc1e1.cpio;
生成的檔你看的到;

解開clientsdk.2.81.UC2.LINUX.tar:tar xvf clientsdk.2.81.UC2.LINUX.tar;
生成csdk.cpi;

解開csdk.cpi cpio -idmv <csdk.cpi;
生成的檔你看的到;

第四步:開始安裝

首先用informix用戶登陸

安裝ids:在informix目錄下運行./installserver

碰到提示,直接回車;

完成後su到root運行RUN_AS_ROOT.server;

這樣你的ids就安裝好了;

安裝csdk:在inforomix目錄下運行./installclientsdk;

碰到提示敲yes,回車;

完成後su到root運行RUN_AS_ROOT.clientsdk;

這樣你的clientsdk就裝好了;

第五步:開始配置

1、配置/etc/services檔
sqlexe    1526/tcp
    sqlexec   1528/tcp

--sqlexe和sqlexec是services 名字,1526、1528是埠號;
--TCP/IP表示TCP/IP協議

2、配置/etc/hosts檔
192.168.28.1 linux(本主機名稱稱)

3、配置$INFORMIXDIR/etc/sqlhosts檔
cs_dbs onipcshm linux sqlexe
cs_dbs_tcp onsoctcp linux sqlexec

--這裡配置了共用記憶體方式和soctcp方式連接資料庫的兩種方式;linux代表主機名稱;sqlexe/sqlexec分別代表在services檔中配的服務;
--另外需要注意的是,informix for linux 9.4版中release提到不支援tlitcp方式;所以這裡採用的onsoctcp方式;
--若sqlhosts檔配置了tlitcp方式或者說sqlhosts檔中的配置和onconfig.cs檔配置不一樣,會出現很多人都經常碰到的25507錯誤;

4、建立空間
以informix用戶操作
在INFORMIXDIR中建立dbs目錄;(便於區分拉)
首先touch rootdbs logdbs phydbs blobdbs tmpdbs datadbs
然後chmod 660 *
保證所有的dbs檔都是informix用戶informix組;許可權都是660;

5、配置$INFORMIXDIR/etc/onconfig.cs文件
以下列出需要注意的幾點內容:

--rootdbs路徑、空間
ROOTNAME        rootdbs         # Root dbspace name
ROOTPATH        /home/informix/dbs/rootdbs  # Path for device containing root dbspace
ROOTOFFSET      0               # Offset of root dbspace into device (Kbytes)
ROOTSIZE        100000          # Size of root dbspace (Kbytes)

--物理日誌的dbs空間,先用rootdbs的20M;
PHYSDBS         rootdbs         # Location (dbspace) of physical log
PHYSFILE        20000           # Physical log file size (Kbytes)

--邏輯日誌用預設的
# Logical Log Configuration

LOGFILES        6               # Number of logical log files
LOGSIZE         2000            # Logical log size (Kbytes)

--把磁帶的東西都改成/dev/null
TAPEDEV         /dev/null       # Tape device path
TAPEBLK         32              # Tape block size (Kbytes)
TAPESIZE        10240           # Maximum amount of data to put on tape (Kbytes)

# Log Archive Tape Device

LTAPEDEV        /dev/null       # Log tape device path
LTAPEBLK        32              # Log tape block size (Kbytes)
LTAPESIZE       10240           # Max amount of data to put on log tape (Kbytes)

--配置資料庫伺服器參數,根據自己機器配置的實際情況分配locks和buffers;
SERVERNUM       0               # Unique id corresponding to a OnLine instance
DBSERVERNAME    cs_dbs          # Name of default database server
DBSERVERALIASES cs_dbs_tcp      # List of alternate dbservernames
NETTYPE         ipcshm,1,8,CPU  # Configure poll thread(s) for nettype
NETTYPE         soctcp,1,8,NET  # Configure poll thread(s) for nettype

LOCKS 5000 # Maximum number of locks
BUFFERS 500 # Maximum number of shared buffers
NUMAIOVPS 2 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 1 # Number of buffer cleaner processes
SHMBASE 0x10000000 # Shared memory base address
SHMVIRTSIZE     8000 # initial virtual shared memory segment size
SHMADD 8192 # Size of new shared memory segments (Kbytes)

另外就是onconfig.cs檔中所有/usr/informix都替換成/home/informix/

6、初始化資料庫了
oninit -ivy
成功後用onstat -i 就可以看到了
Informix Dynamic Server Version 9.40.UC1E1   -- On-Line -- Up 00:31:47 -- 18872
Kbytes
onstat>;

7、完善資料庫空間

下面提供一個我經常使用的shell

echo "Add blobdbs, tmpdbs0, phydbs, logdbs..."
echo "====================================================="

onspaces -c -b blobdbs -g 32 -p /home/informix/dbs/blobdbs -o 0 -s  48000
onspaces -c -d tmpdbs -t -p /home/informix/dbs/tmpdbs -o 0 -s 100000

onspaces -c -d phydbs -p /home/informix/dbs/phydbs -o 0 -s 50200
onspaces -c -d logdbs -p /home/informix/dbs/logdbs -o 0 -s 200000

echo "\nShut Down Server to Quiescent Mode..."
echo "====================================================="
onmode -s -y
sleep 5

echo "Adding Logical Log\n"
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 10000

echo "\nArchiving Database Server Please Wait 20 seconds.\n"
echo "====================================================="
ontape -s
sleep 5

onmode -l
onmode -l
onmode -l
onmode -l
onmode -l
onmode -l
onmode -c
sleep 10

echo "\nDrop the old Logical Log Files... \n"
echo "====================================================="
onparams -d -l 1 -y
onparams -d -l 2 -y
onparams -d -l 3 -y
onparams -d -l 4 -y
onparams -d -l 5 -y
onparams -d -l 6 -y

echo "\nChange Physical Log Files, please wait about 1 minutes...\n"
echo "====================================================="
onparams -p -s 50000 -d phydbs -y
sleep 100

echo "\nNow add more dbspaces/chunks...\n"
echo "====================================================="


onspaces -c -d datadbs   -p /home/informix/dbs/datadbs -o 0 -s 500000

echo "\nTake a level 0 archive.\n"
echo "====================================================="

ontape -s  -L 0

echo "\nReboot IDS...\n\n"
echo "====================================================="

onmode -ky
oninit

sleep 10

echo "\n====================================================="
echo "Well done! \n"
echo "====================================================="

最後修改onconfig.cs文件
DBSPACETEMP     tmpdbs         # Default temp dbspaces
onmode -ky
oninit

2012年1月15日 星期日

Linux 各種壓縮與解壓縮指令


.tar
套件:tar
打包:tar cvf FileName.tar DirName
解包: tar xvf FileName.tar

.gz
套件:gzip
壓縮:gzip FileName
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz

.tar.gz
套件:gzip
壓縮:tar zcvf FileName.tar.gz DirName
解壓:tar zxvf FileName.tar.gz

.bz2
 套件:bzip2
壓縮: bzip2 -z FileName
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2

.tar.bz2
套件:bzip2
壓縮:tar jcvf FileName.tar.bz2 DirName
解壓:tar jxvf FileName.tar.bz2

bz
壓縮:unkown
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz

.tar.bz
壓縮:unkown
解壓:tar jxvf FileName.tar.bz

.Z
壓縮:compress FileName
解壓:uncompress FileName.Z

.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
解壓:tar Zxvf FileName.tar.Z

.tgz
壓縮:unkown
解壓:tar zxvf FileName.tgz

.tar.tgz
壓縮:tar zcvf FileName.tar.tgz FileName
解壓:tar zxvf FileName.tar.tgz

.zip
套件:zip
壓縮:zip FileName.zip DirName
解壓:unzip FileName.zip

.rar
套件:rar, unrar
壓縮:rar a FileName.rar DirName
解壓1:rar e FileName.rar
解壓2:unrar e FileName.rar

.lha
套件:lha
壓縮:lha -a FileName.lha FileName
解壓:lha -e FileName.lha

.7z
套件:p7zip-full
壓縮:7zr a FileName
解壓:7zr x FileName.7z

2012年1月12日 星期四

測試種類和測試階段


一、測試種類
功能測試:針對產品需求說明書的測試,主要是驗證功能是否符合需求,包括原定功能的檢測、是否有冗餘功能、遺漏功能。這類測試應該有測試人員完成,這並不意味著程式師在發佈前不檢查他們的代碼能否工作。
健壯性測試(容錯能力/恢復能力測試):側重于程式容錯能力測試。本測試在單元測試階段和系統測試階段都要進行。如數據邊界測試、非法資料測試、異常中斷測試等等,主要是驗證程式對各種異常情況是否進行正確的處理。為了執行方便,建議健壯性的大部分測試用例儘量編寫在功能測試用例中。
介面測試:程式師對各個模組進行系統聯調的測試,包含程式內介面和程式外介面測試。這個測試,在單元測試階段進行了一部分工作,而大部分都是在集成測試階段完成的。由開發人員進行。
強度測試:檢查程式對異常情況的抵抗能力。強度測試總是迫使系統在異常的資源配置下運行。例如,1 當中斷的正常頻率為每秒一至兩個時,運行每秒產生十個中斷的測試用例;2定量地測試資料登錄率,檢查輸入子功能的反映能力;3 運行需要最大存儲空間的測試用例;4 運行可能導致虛存作業系統崩潰或磁片資料劇烈抖動的測試用例。
壓力測試:對系統不斷施加壓力的測試,是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。例如測試一個Web網站在大量的負荷下,何時系統的回應會退化或失敗。
性能測試:在交替進行負荷和強迫測試時常用的術語。性能測試關注的是系統的整體。它和通常說的強度、壓力/負荷測試有密切關係。所以壓力和強度應該與性能測試一同進行。舉例說明,針對一個網站進行測試,模擬10到50個使用者就是在進行常規性能測試,使用者增加到1000乃至上萬就變成了壓力/負載測試。如果同時對系統進行大量的資料查詢操作,就包含了強度測試。壓力測試注重的是外界不斷施壓,強度測試注重的是極限或者異常情況下系統的測試。
使用者介面測試:對系統的介面進行測試,測試使用者介面是否友好、是否方便易用、設計是否合理、位置是否正確等一系列介面問題。
安全測試:主要是測試系統在沒有授權的內部或者外部使用者對系統進行攻擊或者惡意破壞時如何進行處理,是否仍能保證資料的安全。測試人員可以學習一些駭客技術,來對系統攻擊。
可靠性測試:這裡是比較狹義的可靠性測試,它主要是對系統能否穩定運行進行一個統計,在實際工作中如果沒有條件可以不必特意去做。重點做好與之相關的功能測試、健壯性測試就可以了。
安裝/反安裝測試:安裝測試主要檢驗軟體是否可以正確安裝,安裝檔的各項設置是否有效,安裝後能否影響原系統;反安裝是逆過程,測試是否刪除乾淨,是否影響原系統等。
文檔測試:主要測試開發過程中針對用戶的文檔,以需求、用戶手冊、安裝手冊等為主。檢驗文檔是否和實際應用存在差別。文檔測試不需要編寫測試用例。
二、測試階段
單元測試:單元測試是針對軟體設計的最小單位——程式模組進行正確性檢驗的測試工作,由開發人員進行,其目的在於發現每個程式模組內部可能存在的缺陷,實際程式師編碼過程中已經進行了。單元測試基本不需要編寫測試用例,開發人員自己調試通過、符合設計要求就可以了。
集成測試:集成測試是將模組按照設計要求組裝起來進行測試,主要目標是發現與介面有關的問題,由於在產品提交到測試部門前,產品開發小組都要進行聯合調試,所以大部分企業是由開發人員來完成集成測試的,但也可以到了測試部門後再次進行集成測試。主要測試模組之間資料傳輸是否正確、模組集成後的功能是否實現、模組介面功能與設計需求是否一致。集成測試緊接在單元測試之後,當單元測試通過後,便可開始配置集成測試環境。集成測試是最關鍵的一步,如果問題較多就把產品送到測試部,會造成反復測試,從而浪費人力、物力資源,延誤了工期。
系統測試:系統測試是在集成測試通過後進行,目的是充分運行系統,驗證各子系統是否都能正常工作並完成設計的要求。主要由測試部門進行,是測試部門最大最重要的一個測試,對產品的品質有重大的影響。系統測試的主要內容有:功能測試、健壯性測試、性能-效率測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試等。這個測試需要編寫大量的測試用例,投入大量的資源來完成。
接受度測試:根據需求階段的《需求規格說明書》為驗收標準,測試時要求模擬實際運行環境。對於實際專案可以和客戶共同進行,對於產品實際就是最後一次的系統測試。測試內容為對功能模組的全面測試, 尤其要進行文檔測試。
三、測試種類、階段和用例關係
功能測試用例:包含功能測試、健壯性測試、可靠性測試,
性能測試用例:包含性能測試、壓力測試、強度測試
集成測試用例:包含介面測試、健壯性測試、可靠性測試
安全測試用例:安全測試用例
使用者介面測試用例:使用者介面測試用例、少量功能測試用例。
安裝/反安裝測試用例:安裝/反安裝測試用例
                                     

測試階段
 測試類型
 執行人員
單元測試
模組功能測試,包含部分介面測試、路徑測試
開發人員
集成測試
介面測試、路徑測試,含部分功能測試
開發人員,如果測試人員水準較高可以由測試人員執行
系統測試
功能測試、健壯性測試、性能測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試
測試人員
接受度測試
對於實際項目基本同上,並包含文檔測試;對於軟體產品主要測試相關技術文檔
測試人員,可能包含用戶


四、以測試一部電梯為例

功能測試:開門,關門,鈴聲提示,報警電話,上樓,下樓,不同樓層同時呼叫,選擇多個樓層停留。

健壯性測試:同時按上下,不按關門鍵直接選擇樓層,不選擇樓層,選擇全部樓層,准載人數測試,超載人數測試,突然停電,運行中開門,用物體擋住門,本樓層選擇(如5樓選5)。

2012年1月11日 星期三

Google搜尋結果會警告惡意網站


Google 運用 MapReduce 從網頁資料庫(不包括未被Google索引的封閉網站)中,抽取有效的待檢網址。將待檢網址輸入虛擬環境中的IE瀏覽器,以自動瀏覽程式瀏覽待檢網址的內容,包括:網站主提供內容、使用者貢獻內容、串連的廣告內容、第三方提供的網頁內嵌小工具(Widgets)。Google不檢查網站原始碼而是直接執行瀏覽,判斷最後是否造成惡意程式路過下載(未經使用者同意瀏覽過網頁就會自動下載的方式)最後將結果存到惡意網頁資料庫中。凡同一個網站中的連結、多數連結(或主要連結)都會被判定成惡意網頁,這網站就被判定成惡意網站。使用者於Google搜尋時,凡惡意網站均會加註安全警告[ 這個網站可能會損害您的電腦。 ],同時Google會在搜尋結果中顯示該網址有惡意程式的文字但移除直接瀏覽的超連結,也就是說不能直接點進去了。

##CONTINUE##
Google惡意網站警告流程.JPG


註:本圖截取於 iThome

舉例來說:搜尋[ ESPN ]會得到[ 這個網站可能會損害您的電腦。 ]點選連結Google 不會直接顯示網頁而是出現警告網頁,並且要你自己用手打網址才可以去。而 ESPN 該網站所有所屬的網頁則都會被打上該標誌。

Google惡意網站警告_01.JPG

Google惡意網站警告_02.JPG


Google惡意網站警告_03.jpg
Google 的說明:為什麼有些搜尋結果時會顯示"該網站有可能會損害您的電腦"?

想瞭解更多關於這種類型站點的資訊,請您造訪 http://www.stopbadware.org/home/help
如果您擔心您的電腦上已經安裝了惡意軟體,請造訪 http://www.google.com/support/bin/answer.py?answer=8091 ;在這裏您可以獲得如何從您的系統裏刪除惡意軟體的資訊。
如要瞭解如何舉報某網站違反了我們的網站管理員指南,請您造訪 http://www.google.com/support/bin/answer.py?answer=16162
如果您是已由我們確認站點的管理員,請造訪 http://www.google.com/support/webmasters/bin/answer.py?answer=45432