2012年10月13日 星期六

[Learning Linux]Learning Linux - Expertise

系統管理(System Administration)

 

服務管理(Service Management)


專門技術(Expertise) 


   安全(Security)


   效能調教(Performance Tuning)


Reference 
About Linux Certification

[Learning Linux]Learning Linux - System Administrator

系統管理(System Administration)

  在CLI(Command Line Interface)環境下管理系統

    提示字串(Prompt String)
      PS1 (Prompt String 1)
      PS2 (Prompt String 2)
    變更loging shell

帳號管理

   /etc/passwd

服務管理(Service Management)



專門技術(Expertise)


Reference 
About Linux Certification

[Linux]About Linux Certification

    目前在台灣能見度較高的Linux 認證有 LPIC(Linux Professional Institute Certification) 及 Red Hat 兩大系統。

    LPIC 號稱為一中立的認證機構,其認證內容主要是在檢測考生對於Linux共通知識了解的程度,考試的方式是筆試。

    LPIC的認證到目前為止(2012.10.13)共分為 LPIC-1、LPIC-2、LPIC-3 三種等級,在LPIC的官方網站有詳細的說明,http://www.lpi.org/linux-certifications/programs

    Red Hat 的認證主要是針對Red Hat 所推出的產品,考試的方式是採實機測試。

    目前 Red Hat 推出的認證與Linux 系統管理相關的共有RHCSA(Red Hat Certified System Administrator)、RHCE(Red Hat Certified Engineer)、RHCA(Red Hat Certified Architect)、
RHCVA(Red Hat Certified Virtualization Administrator)、RHCSS(Red Hat Certified Security Specialist)等,詳細的資訊可從官方網站取得,https://access.redhat.com/knowledge/articles/133273

[Linux]Reference

  • Linux System Administration Recipes:A Problem-Solution Approach
    (writer:Juliet Kemp)
  • Expert Shell Scripting   (writer:Ron Peters)
  • Linux Shell 程式設計實務  (writer:臥龍小三)
  • Linux Shell Scripting Cookbookl  (wruter:Sarath Lakshman)
  •  

2012年10月4日 星期四

[Learning Python]不同型態的引號

建立字串時,可以使用『'(單引號)』、『"(雙引號)』、『'''(三個單引號)』或『"""(三個雙引號)』將字串的頭尾兩端括起來。

=>
    Var = 'This is a String'
    Var = "This is a String"
    Var = '''This is a String'''
    Var = """This is a String"""

與 Bash shell 不同,這四種型態的引號對Python來講在功能上是一樣的,Python提供四種型態的引號主要是要讓使用者在建立字串時可以有更多的彈性。

例如當使用單引號括住字串,而字串中又出現縮寫,Python會認為引號不成對,因此就會發生語法錯誤。

=>
Var =  'This isn't a string'

>>> Var =  'This isn't a string'                                              
  File "<stdin>", line 1
    Var =  'This isn't a string'
                     ^
SyntaxError: invalid syntax                







這時就可以改用雙引號或三引號括住字串來解決這個問題。

=>
Var = "This isn't a string"

Var =  '''This isn't a string'''

[Learning Python]建立字串

建立字串有兩種常見的方式可以選擇,

A.指定一個字串給變數 

語法:
    Var = 'String'
    Var = "String"
    Var = '''String'''
    Var = """String"""

    字串要用引號括起來,只要兩端用的引號是一致的即可。

 B.使用 str()函數建立

語法:
    Var = str(String)

    str() 函數也可以用來將其他型別的物件轉換成 str 型別

2012年9月22日 星期六

[Performance Tuning]Monitoring and Analyzing Linux System Performance

1.How to Monitor and Analyz Linux System Performance
2.CPU
3.Memory
4.IO
5.Storage
6.Networking

2012年8月21日 星期二

[Drupal]WYSIWYG Editor Module

1.安裝:http://drupal.org/project/Wysiwyg

2.設定:Modules -> USER INTERFACE -> Wysiwyg ->Configure

  • INPUT FORMAT : 設定在不同輸入模式的介面中可使用的編輯功能
  • INSTALLATION INSTRUCTIONS : 選擇要安裝的 Editor

2012年6月11日 星期一

[KVM]How to convert .vhd image file to the qcow2 image type

如果要將 .vhd 或其他 kvm-img 可辨識的映像檔格式轉換乘 raw 或其他其他 kvm-img 可辨識的映像檔格式,可以使用 kvm-img 命令進行轉換。

使用 kvm-img 轉換映像檔格式的語法如下,

kvm-img  convert -O <Output Format>   <FileName>  <Output FileName>

以下以轉換 .vhd 格式檔案為 .qcow2 格式檔案為例,
 
max@satomi:~$ kvm-img convert -O qcow2 FileName.vhd OutputFileName.qcow2       




所需的轉換時間視主機效能及轉換檔案的大小而定。


2012年6月9日 星期六

[Ubuntu]在Ubuntu 12.04 Desktop 加裝LXDE 與 Gnome 3 Classic 桌面環境(Desktop environment)

將舊筆電 (Fujitsu s6510)升級為 Ubuntu 12.04 Desktop 後發現內建的桌面環境還是沒有 LXDE 與 Gnome , 所以還是要自己動手裝。

加裝 LXDE 比較簡單只需要......
 
$ sudo apt-get update                    
$ sudo apt-get install lxde




就可以了。

如果只需要 LXDE 可以直接裝 lubuntu 12.04 (http://lubuntu.net/)。

加裝 Gnome 就比較麻煩,我是依據 
http://ubuntuguide.net/install-tweak-classic-gnome-desktop-in-ubuntu-12-04-precise/
的方法裝的,不過之後再查,似乎還有其他的安裝程序比較簡便,至於這些不同的程序有何差異......,比起Server 的管理,在 Desktop 的使用上我是採實用主義 , 所以並沒有花時間深入研究的打算 , 總之 , 在使用這個方法加裝 Gnome 前建議先找其他方法試試.....

以下是我加裝Gnome 的紀錄,

1.先加裝『gnome-session-fallback』這個套件 , 再增加『jconti/gnome3』的 repository 加到套件資料庫伺服器清單中



max@tomomi:~$sudo apt-get install gnome-session-fallback               
max@tomomi:~$sudo add-apt-repository ppa:jconti/gnome3





2.接著修改『/etc/apt/sources.list.d/jconti-gnome3-precise.list』的內容

max@tomomi:~$sudo vim /etc/apt/sources.list.d/jconti-gnome3-precise.list         


 


deb http://ppa.launchpad.net/jconti/gnome3/ubuntu precise main
deb-src http://ppa.launchpad.net/jconti/gnome3/ubuntu precise main   



 
 兩行中的『precise』改成『oneiric』....

# deb http://ppa.launchpad.net/jconti/gnome3/ubuntu precise main
deb http://ppa.launchpad.net/jconti/gnome3/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/jconti/gnome3/ubuntu precise main
deb-src http://ppa.launchpad.net/jconti/gnome3/ubuntu oneiric main     






 3.更新套件庫清單後再安裝一大票東西.....

max@tomomi:~$sudo apt-get update     
max@tomomi:~$sudo apt-get install indicator-applet indicaator-applet-complete indicator-applet-session   





不過,目前的 Gnome3 似乎還有不少問題,裝完之後還需要手動調整一些東西,不然並不如Gnome2好用....=_= ~ 有點麻煩....

我調整了.....

1.ALT-TAB 失效。
2.將程式加到快速啟動列之後就無法刪掉。
3.功能表列的字體顏色是深灰色,跟底色幾乎一樣。

等問題 .....囧~~

如果不是 LXDE 沒有延伸桌面可用,以我的需求,其實用 LXDE 就夠了說....囧

2012年5月30日 星期三

[Ubuntu]How to configure network in bridge mode on Ubuntu 10.04 / 12.04

這個程序在 Ubuntu 10.04 及 12.04 都可以用



1.安裝橋接工具套件『bridge-utils』及『 uml-utilities』
 
$ sudo apt-get install bridge-utils uml-utilities



2.新增橋接器『br0』

    橋接器的名稱並沒有特別的規定,比較常看到的是『br0』或『bri0』。

   新增橋接器的語法如下,

        brctl  sddbr   <橋接器名稱>

$ sudo brctl addbr br0


 
3.將eth0接到橋接器『br0』

    概念上就跟使用實體橋接器是一樣的,這個動作可以當成是拿一條網路線連接主機的網路卡與橋接器。

    橋接網路卡的語法如下,

        brctl  sddif    <橋接器名稱>  <實體網卡名稱>

$ sudo brctl addif br0 eth0



4.檢視橋接器

    設定完畢看一下設定結果。

     檢視的語法如下,

        brctl  show

$ sudo brctl show

bridge name          bridge id           STP enabled         interfaces   
br0               8000.c89cdc26033b no                    eth0     
virbr0 8000.000000000000 yes







 5.修改『 /etc/network/interfaces』設定檔

    設定完橋接器之後接著還要修改網路介面設定檔,修改內容如下,

#將eth0的網路組態設定註解掉
# The primary network interface
#auto eth0
#iface eth0 inet dhcp


#新增橋接器網路組態設定
auto br0
iface br0 inet static
#將eth0接到橋接器 br0                                                          
bridge_ports eth0
address X.X.X.X #這是橋接器的IP
netmask A.B.C.D
gateway Y.Y.Y.Y 
















6.啟動 IP Forwarding

    找到『/etc/sysctl.conf』設定檔中的『#net.ipv4.ip_forward=1』 這一行,將前面的註解符號拿掉。

# Uncomment the next line to enable packet forwarding for IPv4 
#net.ipv4.ip_forward=1 
net.ipv4.ip_forward=1  #<--將這一行的註解拿掉,啟動IP Forwarding 』 





7.重開機    

$ sudo reboot                                          



8.收工



[Ubuntu]How To Install KVM on Ubuntu 10.04 /12.04

   本安裝程序適用 Ubuntu 10.04 以後的版本


1. 前置作業
 
    安裝KVM前我們需要作一些檢查以確認主機的環境是否符合需求。   
    
    a. 確認 主機BIOS是否支援虛擬化技術(Virtualization Technology)

        一開始需要先確認BIOS是否支援虛擬化技術,同時已開啟這項支援。
 
        進入BIOS設定畫面之後找一下相關設定,依不同的主機品牌這項設定可能稱為『Virtualization Support』 或『Virtualization Technology』,請確定有此項設定同時已啟動『Enable』。

        Reference:
                http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/sect-Virtualization-Troubleshooting-Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.html      


  b. 確認CPU是否支援虛擬化技術

        除了BISO之外,CPU也需要支援虛擬化技術。

        檢視一下『 /proc/cpuinfo』中的CPU Flag,若輸出大於等於『1』,即表示你所使用的CPU支援虛擬化技術。

$ egrep -c '(vmx|svm)' /proc/cpuinfo                                
4                       




       Note:
            (1).  vmx:Virtual Machine Extensions ( INTEL)。
            (2).  svm:Secure Virtual Machine(AMD)。
            (3). 若為多核心CPU,每一核心會有一個vmx或svm Flag。

      Reference: 
                http://zh.wikipedia.org/wiki/多核心 
                http://en.wikipedia.org/wiki/Multi-core_processo   

    c. 確認CPU是否為64 bits

        你的實體CPU得是64 bits KVM才有辦法模擬出64 bits的vCPU(Virtual CPU)。

        同樣是檢視『 /proc/cpuinfo』中的CPU Flag,若輸出大於等於『1』,即表示你所使用的CPU是64 bits。
 
$ egrep -c 'lm' /proc/cpuinfo                                
4                       




        若沒有模擬64 bits vCPU的需求,可以略過這項檢查。

        Note:
           (1). lm:Long Mode (64bit) support。
           (2).若為多核心CPU,每一核心會有一個 lm Flag。

         Referenve: 
                http://www.unixtutorial.org/2009/05/how-to-confirm-if-your-cpu-is-32bit-or-64bit/

    d.確認所安裝的OS是否為64 bits

        要讓KVM模擬 64 bits 的環境,所使用的OS必須是 64 bits。

$ uname -m                                                                       
x86_64




        若輸出不是『x86_64』即表示OS不是64-bits。

        若沒有模擬64 bits 環境的需求,可以略過這項檢查。

    e. 使用『kvm-ok』命令確認系統環境是否可符合執行 hardware accelerated KVM virtual machine 的需求

        當然也可以直接執行『kvm-ok』確認系統環境是否可符合執行 hardware accelerated KVM virtual machine 的需求。

$ kvm-ok                                                                  



         『kvm-ok』會確認下列項目,

            (1). 從『/proc/cpuinfo』中確認是否有 『vmx』或『svm』Flag。
            (2). 從 dmesg  中確認BIOS的虛擬化技術支援是否已開啟。
            (3). 『/dev/kvm』裝置檔是否存在。


        若上述三項檢查均符合KVM的需求會有如下輸出,

INFO: Your CPU supports KVM extensions                                                             
INFO: /dev/kvm exists
KVM acceleration can be used






2.安裝KVM

    完成前置作業後開始進行安裝程序。

    a. 安裝 KVM及其相依套件

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils


    
b.確認操作KVM的帳號是『libvirtd』及『 kvm』群組的成員
        
    我是用『max』這個帳號登入系統操作KVM,所以要確認『max』是否為『libvirtd』及『 kvm』的群組成員。

$ groups max
max : max adm dialout cdrom plugdev lpadmin admin sambashare libvirtd kvm



           
   
        如果發現操作帳號不是libvirtd』或『 kvm』的群組成員,就使用下操作程序將該帳號加入『libvirtd』或『 kvm』群組。

    (1). 以該帳號登入系統或切換使用者身份為該帳號
 
    (2).將該帳號加入『libvirtd』及『 kvm』群組
 

$ sudo adduser `id -un` kvm                                                   
$ sudo adduser `id -un` libvirtd


           


    c.登出後再重新登入系統


    d.確認安裝是否完成


$ virsh -c qemu:///system list                                                        
 Id Name                           State
----------------------------------    

           




        virsh 是 KVM 的管裡工具,如果可以使用這個命令且看到上面的輸出,表示安裝已順利完成。

3. 安裝GUI 管理工具

    你可以使用KVM的命令列管理工具來操作KVM,不過由於參數跟選項眾多,在操作上需要相當的注意,建議可寫成 Script以減輕管理的負擔。

    不過現在有相當多的KVM GUI 管理工具可以選擇 (http://www.linux-kvm.org/page/Management_Tools),其中『Virt-manager』在操作上頗為便利且多數的細項設定可透過『Virt-manager』完成,同時亦可管理遠端的KVM Server,若無特殊的嗜好建議使用『Virt-manager』來進行KVM系統的管理。

     Ubuntu 10.04 / 12.04的套件庫有收錄該『Virt-manager』,可以使用下列命令安裝,



$ sudo apt-get install virt-manager                       

           



若你的VM需要像實體機器一樣擁有實體 IP 就需要先將 KVM Host上的網路卡設為橋接模式,Ubuntu 10.04 / 12.04 的設定可以參考:http://www.mpsstudio.org/2011/07/ubuntuhow-to-configure-network-in.html

2012年5月7日 星期一

[Ubuntu]在 Ubuntu 12.04 Server 的 Name Server(DNS) Client 端設定

Ubuntu 12.04 Server 不建議以手動更改『/etc/resolv.conf』 的方式指定 Name Server,


max@riyu:~$ sudo cat /etc/resolv.conf                                  


# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN








 就算是手動在『/etc/resolv.conf』 指定 Name Server , 重開機之後你所作的變更也會被覆寫掉。

如果需要指定 Name Server , 可以在『/etc/network/interfaces』設定檔中以
『dns-nameservers』這個指令來指定。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
# 在最後加入下列設定
dns-nameservers 8.8.8.8 168.95.192.1 168.95.1.1 

auto eth1
iface eth1 inet static
address 1.2.3.4
netmask 255.255.255.0
gateway 3.4.5.6
#設定為固定IP的界面也是一樣
dns-nameservers 8.8.8.8 168.95.192.1 168.95.1.1    


auto br0
iface br0 inet static
bridge_ports eth2
address 3.4.5.6
netmask 255.128.0.0
gateway 7.8.9.10
#如果設定了橋接器,就加在橋接器界面設定的最後一行
dns-nameservers 8.8.8.8 168.95.192.1 168.95.1.1                                



























重新起動網路服務後, 在『/etc/network/interfaces』設定檔中所指定的 Name Server , 會被寫入到『/etc/resolv.conf』中。

不同的 interface可以給予不同的設定,不過最後在寫入到『/etc/resolv.conf』時會將之合併,同時,會依據在『/etc/network/interfaces』所設定的 Name Server 先後順序決定 DNS 解析順位。

root@riyu:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 168.95.192.1
nameserver 168.95.1.1  









[Ubunbtu]在 Ubuntu 12.04 Server 安裝 Gnome3

安裝完 Ubuntu 12.04 之後,只需要再加裝『ubuntu-desktop』即可

1.更新套件清單

=> $sudo apt-get update

2.安裝 『ubuntu-desktop』

 => $sudo apt-get install  ubuntu-desktop


登入時,記得將桌面環境改成『gnome classic』

2012年3月12日 星期一

[android]Android Programming

  • 建置開發環境 
        android 的開發環境可以建置在 Linux、Mac OS X 10.5.8 以上 及 MS-Windows XP 以上等多種作業系統平台上,這邊的開發環境是建置在 Ubuntu 11.04上。
 
        要建置android 的開發環境依序要安裝下列套件

        1. Java Development Kit                    

           Install JDK 6.0 & JRE 6.0 on Ubuntu 11.04 

        2. Eclipse  IDE & ADT

        3. android SDK


        4. android AVD