2010年3月16日 星期二

openfire 整合 微軟的AD網域

說明:
因台北移民署專案的需求,openfire需整合微軟AD 帳號進來,其目的是要
讓clinet 端的 Pidgin 能用 AD上 的帳號就能登入,無需額外再openfire上
用人力的方式再建立一份跟AD上一模一樣的帳號。


實作方法如下:

1 openfire 安裝完之後,進入到web的初始設定畫面

2 進行到 profile settings 選項,選擇:(LDAP)

  



3 把ad的帳號匯入openfire,基本設定如下:

  • server type選擇:Active Directory
  •  Host 填入 微軟 AD 的 網域名稱(Domain name) 或 ip
  •  填入Base DN:指填入AD的網域名稱,但必須符合格式,以本例的網域名稱 是:immigration.gov.tw 為例,則要設定為:dc="immigration",dc="gov",dc="tw
  •  填入Administrator DN: 主要是告訴openfire AD網域上的那一個帳號是具有管理者的權限。以本例來說,網域上的administrator是具有管理者權限。那麼在 Administrator DN 這個欄位上就要做如此的設定:cn="Administrator",cn="Users",dc="immigration",dc="gov",dc="tw"。這個設定很明確的告訴了openfire 在 AD網域(immigration.gov.tw) 上的 Users 目錄裡的Administrator這個帳號具有管理者權限 。這個步驟完畢之後,即可按Continue鈕







4 這一頁使用預設值即可,無需改寫。按 Continue鈕




5 同樣使用預設值就可以了,按 Continue鈕



6 新增ad 網域上的 administrator 為 openfire 的管理者

 



7  重新登出再登入。即完成 openfire 整合 微軟 ad





使用Pidgin 驗證 整合成功:

1 開啟Pidgin 
2 帳號-->管理帳號-->新增





3   設置新增帳號:
  • 通訊協定:選擇XMPP
  • 使用者:填入AD上的帳號
  • 域名:填入Openfire 的 ip 或 網域名稱(Domain name)
  • 填入完畢之後,按加入鈕






4  紅色框框所圍的圖示是彩色的表示已經上線了;若是灰白表示未上線。




2010年3月15日 星期一

sed、awk 二三事

(一)
說明:
在外交部的案子中,因應專案的需求要做一個雙系統的備份/還原程式。
簡單的說,就是程式要能備份整台電腦的雙OS系統,並且能指定要還原
系統中的那一個OS。

與同事討論後認為:Clonezilla + Perl 是最好的組合與實作。

實作上,要把 Clonezilla 安裝在本機機器上,再搭配寫好的 Perl 程式
自動去把 Clonezilla 的 開機 與 復原 的參數 寫到 linux grub 的 menu.list 檔裡面。
使用者只要利用 Clonezilla 把 os 的 image 檔存在指定的分割區中,那麼,一但系統
當掉要再 回復的作業,只要開機進入menu選單 ,選擇要復原的 作業系統,Clonezilla
即會自動做回復的動作。

該支perl 程式 有用到 awk 命令 ,就把實務上常用的命令記下來吧!

(二):
awk 實例:

以冒號區分欄位,並印出第一筆記錄的第四個欄位值
awk 'BEGIN{FS=":"} NR==1 {print $4} ' config `


網路上有很多awk 的資源,推好文如下:
awk 單行腳本

2010年3月4日 星期四

Postgresql DB 備份與還原

說明:
 使用Postgresql DB 要做資料的備份與還原時,可以用以下的二個指令:

  • pg_dump :資料庫備份的指令
  • pg_restore :資料庫回復(Recover)的指令

實驗環境:

  • Ubuntu 9.04
  • Postgresql DB 8.3

    pg_dump 常用指令參數:
    •  -f  file
       --file=file
       輸出到指定的文件


    • -F format
      --format=format
      輸出的格式可以是下列之一

      p  輸出成一個sql 腳本

      t   輸出成一個 tar 檔

      c  輸出成一個壓縮格式的文件

       
    • -v
      --verbose
      備份時在瑩幕上顯示出祥細的訊息(如備份進度等)


    • -Z 0..9
      --compress=0..9
      此選項要配合輸出格式參數為 'c'   一起配合使用。數字
      0到9表示壓縮的級別


    • -h  host
      --host=host
      連線的主機名稱(也可以是ip)


    • -p  port
      --port=port
      資料庫的連結埠


    • -U username
      登入資料庫的帳號





    使用 pg_dump 做資料庫備份:

    (1)把名稱為xdna_kiosk_client 的資料庫備份
    到james家目錄的db資料匣中,且備份的檔名為 kiosk_client.bak
    pg_dump -h 127.0.0.1 -p 5432 -U postgres -F c -b -v -f "/home/james/db/xdna_kiosk_client.bak" xdna_kiosk_client  
    


    使用 pg_restore做備份還原:

    (1)
    新建一個空白的資料庫,該資料庫名稱為mydb:
    psql -U postgres -h 127.0.0.1 -c "create database mydb"
    

    (2)
    把james家目錄的db資料匣中備份檔 Recover 到 mydb
    pg_restore -h 127.0.0.1 -p 5432 -U postgres -F c -b -v -f "/home/james/db/xdna_kiosk_client.bak" mydb 
    

    2010年2月21日 星期日

    免費防毒軟體avast

    說明: avast! Antivirus 是一套功能強大的防毒軟體。有分為商業版與家用版。
                 家用版是完全免費的而且功能不輸給任何一套付費的軟體。下載家用版
                 的軟體之後,還要到官網去注冊取得合法的序號就可以使用一年。而且
                 最重要的是:合法序號可重覆申請,如此期限到期就可以再使用 


    下載軟體:
                      點我下載


    安裝:
    1. 請選擇:Chinese[traditional] 即繁體中文 並按下一步




               
    2.  使用預設選項按下一步





    3.  可視需求安裝。本例是不安裝。按下一步





    4.  軟體安裝中……



       
      


    啟動avast並輸入合法序號:
    1. 啟動軟體:程式集 --> avast ! Free Antivirus --> avast ! Free Antivirus





    2. 點選:註冊 --> 輸入合法序號





    3. 輸入合法序號後,系統出現:已註冊的狀態。




       
     說明:
              合法的序號只要到官網注冊就可以取得。
            

     

    2010年2月18日 星期四

    Perl Telnet 範例

    (一)使用情形:
    使用Perl 提供的 telnet 模組自動登入到網路上的某台主機,執行命令後把結果給傳回。

    (二)使用環境:
    client:ubuntu9.04
    server:centos5.4

    (三)注意事項:

    1 server端必須裝有telnet server
    2 server端必須開啟防火牆的23 port


    (四)Server端的配置:

    1啟動telnet服務:
    (i) 將“disable = yes” 改為“disable = no"
    [root@CentOS5 /]#vi /etc/xinetd.d/telnet 

    (ii) 重新啟動服務
    [root@CentOS5 /]#service xinetd restart 

    2 開啟防火牆23 port:

    (i) 編輯檔案

    [root@CentOS5 /]#vi /etc/sysconfig/iptables  
    

    (ii) 加入以下的規則(注意:不能加到最底下)
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23
    -j ACCEPT 

    (iii)重新啟動iptable

    [root@CentOS5 /]#service iptables restart 


    (五)client code:


    1. #!/usr/bin/perl
    2. use Net::Telnet();
    3. my $t = new Net::Telnet(Timeout => 10 , Prompt => '/[\$#>]/');
    4. $t->open("192.168.2.104");
    5. $t->login('root', 'n123815798');
    6. @lines = $t->cmd("ifconfig");
    7. print @lines;

    2010年1月2日 星期六

    解決 /usr/bin/ld: cannot find -lxxx 問題

    問題:
    在linux環境編譯應用程式或lib的source code時常常會出現如下的錯誤訊息:
    • /usr/bin/ld: cannot find -lxxx

    這些訊息會隨著編譯不同類型的source code 而有不同的結果出來如:
    • /usr/bin/ld: cannot find -lc
    • /usr/bin/ld: cannot find -lltdl
    • /usr/bin/ld: cannot find -lXtst

    其中xxx即表示函式庫文件名稱,如上例的:libc.so、libltdl.so、libXtst.so。
    其命名規則是:lib+庫名(即xxx)+.so。


    會發生這樣的原因有以下三種情形:
    1 系統沒有安裝相對應的lib
    2 相對應的lib版本不對
    3 lib(.so檔)的symbolic link 不正確,沒有連結到正確的函式庫文件(.so)

    對於上述三種原因有一篇文章寫的很棒可參考這一篇文章的第4點:
    gcc命令祥解


    解決方法:
    (1)先判斷在/usr/lib 下的相對應的函式庫文件(.so) 的 symbolic link 是否正確
    若不正確改成正確的連結目標即可解決問題。

    (2)若不是 symbolic link 的問題引起,而是系統缺少相對應的lib安裝lib即可解決。

    (3)如何安裝缺少的lib:
    以上面三個錯誤訊息為例:
    錯誤1缺少libc的LIB
    錯誤2缺少libltdl的LIB
    錯誤3缺少libXtst的LIB
     

      以Ubuntu為例:
      先搜尋相對應的LIB再進行安裝的作業如:
      apt-cache search libc-dev
    apt-cache search libltdl-dev
    apt-cache search libXtst-dev

    實例:
    在進行輸入法gcin的 Source Code的編譯時出現以下的錯誤訊息:
    /usr/bin/ld: cannot find -lXtst

    經檢查後發現是:
    lib(.so檔)的symbolic link 不正確

    解決方法如下:
    cd /usr/lib
    ln -s libXtst.so.6 libXtst.so

    如果在/usr/lib的目錄下找不到 libXtst.so 檔,那麼就表示系統沒有安裝libXtst的函式庫。
    解法如下:
    apt-get install libxtst-dev

    2010年1月1日 星期五

    在Ubunut 9.04 安裝 Epson-ALCX11 印表機

    問題:
    Epson官網不提供 型號AlCX11 印表機的linux Drive。
    因此,若想在linux安裝此印表機,必須有第三方提供該印
    表機的drive。

    解決方法:
    下載第三方drive:
    載點


    安裝:

    • change to root
    • apt-get install libcupsys2-dev
    • apt-get install libstdc++5
    • tar -zxvf Epson-ALCX11-filter-1.1.tar.gz
    • cd Epson-ALCX11-filter-1.1
    • ./configure --prefix=/usr/
    • make install
    • aa-complain cupsd