Month: February 2014

  • วิธี Backup PSU Email ด้วย Thunderbird

    เนื่องจาก PSU Email ให้พื้นที่ปัจจุบัน 1GB ซึ่ง อาจจะไม่เพียงพอต่อความต้องการของผู้ใช้บางท่าน หรือ บางท่านต้องการสำรองข้อมูล Email เก็บไว้ในเครื่องคอมพิวเตอร์

     ซึ่งสามารถทำได้ โดยใช้งานผ่านโปรแกรม Mozilla Thunderbird เชื่อมต่อกับ PSU Email ด้วย IMAP อีกทั้ง สามารถส่ง Email ออกได้จากทั่วโลกผ่าน smtp2.psu.ac.th และ ตัวอย่างต่อไปนี้ จะสร้างพื้นที่จัดเก็บบนเครื่องคอมพิวเตอร์ ไว้ใน D:\MyBackup

    (รายละเอียดของ PSU Email สามารถอ่านได้ที่ http://www.cc.psu.ac.th/staffemail)

    มีวิธีการดังนี้

    1. Download Mozilla Thunderbird (รุ่นล่าสุด 24.3.0) จาก http://www.mozilla.org/en-US/thunderbird/

     

    คลิกที่ Thunderbird Free Download แล้ว Save File ลงเครื่อง

    2. Double Click ไฟล์ ที่ Download มา (Thunderbird Setup 24.3.0.exe)

    3. จากนั้น ใช้ Next Technology คือ Yes, Next, Next, Install และ Finish

    4. จากหน้านี้ คลิก Set as Default

     5. คลิก Skip this and use my existing email

    6. กรอกข้อมูล ให้ครบ แล้ว คลิก Continue แล้ว คลิก Manual Config

    7. กรอกข้อมูลตามนี้ แล้ว คลิก ปุ่ม Advanced Config

    8. คลิกที่ Local Folder, คลิก Browse แล้ว เลือก D:\MyBackup (แล้วแต่จะสร้าง Folder)

    9. หน้าต่างนี้ คลิก Restart

    10. ด้านขวามือ คลิกขวา ที่ Local Folders แล้ว คลิก New Folder ….

     

    11. ตั้งชื่อ PSUEmail แล้วคลิก Create Folder

     12. เมื่อต้องการ เก็บสำเนา (Copy) หรือ ย้าย (Move) จดหมายจาก INBOX ของ PSU Email มาเก็บไว้ใน Local Folders บนเครื่องคอมพิวเตอร์ของเท่าน ก็ให้ทำการเลือกจดหมายที่ต้องการ แล้ว คลิกขวา (Right Click) แล้ว เลือก Copy To หรือ Move To ไปยัง Local Folder > PSUEmail

    เท่านี้ ก็ สามารถ เก็บจดหมายที่ต้องการไว้ในเครื่องได้แล้ว และสามารถทำการ สำรอง D:\MyBackup เอาไว้ใน Handy Drive, DVD หรือ External Hard disk ได้

    13. เมื่อต้องการนำมาใช้งาน ก็เพียงแค่ Copy ลงไปในเครื่อง แล้ว ทำตามขั้นตอน ข้อ 8 และ 9 ก็จะสามารถใช้งาน Email ที่เก็บไว้ได้ ดังตัวอย่างนี้

    14. สำหรับ การใช้งาน ThunderBird ให้สามารถใช้ภาษาไทยได้อย่างถูกต้อง และเป็นสากล ต้องตั้งค่าให้ ภาษาไทยใช้ Character Encoding เป็น UTF-8 โดยคลิกที่ Menu > Options แล้ว คลิกที่ Display > Advanced แล้ว เปลี่ยน Font for เป็น Thai และ ตั้งค่า Outgoing mail, Incoming Mail เป็น UTF-8 ตามภาพ แล้วคลิก OK

    หวังว่าจะเป็นประโยชน์ครับ

  • เทคนิคการเขียน Shell Script #1

    เมื่อต้องการเขียน Shell Script เพื่อรับ Argument และ Option เช่น เขียน myscript.sh ซึ่งแบ่งเป็น 3 แบบ
    1) $ sh myscript1.sh myfirstname mylastname 16
    2) $ sh myscript2.sh -f myfirstname -l mylastname -a 16
    3) $ sh myscript3.sh –firstname myfirstname –lastname mylastname –age 16

    [บทความนี้ ใช้งานบน Ubuntu 12.04 Server และ ใช้ Bash Shell]

    1) วิธีแรก คือ การรับตัว Argument เรียงตามลำดับ โดยใช้ เครื่องหมาย $ ตามด้วยลำดับของตัวแปร เช่น $1, $2, $3 ดัง Script myscript1.sh มีรายละเอียด ต่อไปนี้

    firstname=$1
    lastname=$2
    age=$3
    echo "Firstname=$firstname"
    echo "lastname=$lastname"
    echo "age=$age"

    วิธีนี้ ข้อดีคือ สร้างง่าย แต่ ข้อเสียคือ ต้องใส่ Argument ตามลำดับเท่านั้น

    2) วิธีที่สอง คือ มีการใช้ Option แบบชื่อสั้น เช่น -f, -l ,-a โดยต้องใช้คำสั่ง getopts ดังตัวอย่าง Script myscript2.sh

    getopts "f:l:a:" opt
    while [ "$opt" != "?" ]
    do
       case $opt in
        f)
         echo "Firstname: $OPTARG"
         ;;
        l)
         echo "Lastname: $OPTARG"
         ;;
        a)
         echo "Age: $OPTARG"
         ;;
        esac
     getopts "f:l:a:" opt
    done

    อธิบายเพิ่มเติม

    • getopts "f:l:a:" opt
      คำสั่งนี้ บอกว่า getopts จะรับ Option คือ f, l และ a และ เมื่อรับมาแล้ว จะใส่ในตัวแปร opt
      ส่วนใน “f:l:a:” นั้น เป็นการกำหนด Short Option Name โดยที่ เป็นอักษรตัวเดียว และ ค่า Option ใด ไม่มี เครื่องหมาย “:” แสดงว่า ไม่ต้องการใส่ค่า
      Option ใด มี     เครื่องหมาย “:” แสดงว่า ต้องการมีการใส่ค่า
      Option ใด ไม่มี เครื่องหมาย “::” แสดงว่า จะใส่ค่า หรือไม่ใส่ค่า ก็ได้
    • while [ "$opt" != "?" ] … done
      วนลูป ทุก Options จนเจอค่า “?” จึงหยุดทำงาน
    • case $opt in … esac
      เป็นการ Switch Case ตัว Option ที่เข้ามา ระหว่าง f, l และ a ให้ทำงานตามสั่ง
    • $OPTARG
      เป็นค่าที่ให้มา ผ่าน Option นั้นๆ เช่น หากมีการสั่งงานด้วยคำสั่ง

      sh myscript2.sh -f Somchai -l Jaidee -a 16
      เมื่อลูป ค่า $opt เป็น l , ก็จะได้ค่า $OPTARG เป็น Somchai เป็นต้น

    วิธีนี้ มีข้อดีคือ ง่ายต่อการพัฒนา สามารถ สลับตำแหน่งของ Option ได้ดีกว่าวิธีแรก แต่มีข้อเสียคือ ชื่อย่อ ของ Option นั้นสั้น อาจจะทำให้ยากต่อการสื่อสาร

    3) วิธีที่สาม คือ มีการใช้งาน Option แบบชื่อยาว เช่น –firstname, –lastname, –age
    ตัวอย่าง

    if ! options=$(getopt -o f:l:a: -l firstname:,lastname:,age: -- "$@")
    then
     exit 1
    fi
    
    set -- $options
    
    while [ $# -gt 0 ]
    do
     case $1 in
       -f|--firstname) echo "Firstname: $2" ; shift 2;;
       -l|--lastname) echo "Lastname : $2"; shift 2 ;;
       -a|--age) echo "Age: $2" ; shift 2 ;;
       --) shift ; break;;
     esac
    done
    

    ทั้งนี้ สิ่งที่แตกต่างระหว่างวิธีที่ 2) และ 3) คือ การใช้งาน “getopts” นั้น จะไม่สามารถใส่ Long Options ได้ ต้องใช้ “getopt” จึงจะใช้งานได้ นอกนั้น ก็คล้ายๆกันครับ