Category: Operating System

  • การจัดการกับ Backscatter Mail

    (อยู่ระหว่างการปรับปรุง)

    เมื่อ Spammer หรือ Virus ในระบบเครือข่ายของเรา พยายามที่จะส่ง email ซึ่ง

    • ส่งจาก (From) email address ปลอมซึ่งไม่มีอยู่จริง
    • ถึง (To, CC, BCC) email address ซึ่งบางส่วนไม่มีอยู่จริง หรือ ผิดรูปแบบ หรือ ปลายทางไม่ยอมรับ email จาก domain ของเราแล้ว

    จดหมายเหล่านั้นจะมีการแจ้งถึงความล้มเหลวของการส่ง ที่เรียกว่า “Undeliverable mail notification” ไปยังผู้ส่ง ซึ่ง ไม่มีอยู่จริง ดังนั้น จะเกิดจดหมายพวกนี้ ค้างใน mail queue จำนวนมาก ทำให้เกิดความล้าช้าในการส่งจดหมายปรกติ โดยจดหมายพวกนี้เราจะเรียกว่า Backscatter mail

     

     

    Reference

    http://www.postfix.org/BACKSCATTER_README.html

  • How to install LibreOffice 4.0 in Ubuntu & Mint

    1. Uninstall LibreOffice รุ่นเก่าออกให้หมด
      $sudo apt-get remove --purge libreoffice*
    2. Download Libreoffice for Ubuntu ที่ LibreOffice โดยเลือกรุ่นให้ถูกต้องว่า 64 บิตหรือ 32บิต (x86 หรือ x86_64) ดูได้จากคำสั่ง
      $uname -a
      หากได้ผลลัพธ์ว่า
      Linux Enterprise 3.5.0-23-generic #35-Ubuntu SMP Thu Jan 24 13:15:40 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
      แปลว่า 64บิต สังเกตุว่ามี x86_64 ต่อท้าย ส่วนรุ่น 32บิตจะได้ว่า
      Linux ubuntu 2.6.32-34-generic-pae #77-Ubuntu SMP Tue Sep 13 21:16:18 UTC 2011 i686 GNU/Linux
      สังเกตว่ามี i686 เครื่องรุ่นเก่ากว่านี้อาจจะเป็นเลขอื่นๆ

    (more…)

  • เทคนิคการใช้งาน Regular Expression บน Excel

    เมื่อต้องการเลือกข้อมูล หรือจัดกลุ่มข้อมูลที่เป็นข้อความ ยาวๆ ซับซ้อน ก็ต้องคิดถึงการใช้ Regular Expression ซึ่งใช้งานได้ทั่วไปใน Shell Script ต่างๆ แต่เมื่อต้องทำสิ่งเหล่านี้ใน Excel นั้น ค่อนข้างยุ่งยาก  แล้วในที่สุด ก็ไปพบคนใจดี เขียน VBS มาให้ ตามไฟล์นี้ regexp.txt ให้ใช้งาน Regular Express แบบเป็น Formula ง่ายๆ

    วิธีการใช้ติดตั้งใช้งาน

    1. Download ไฟล์ข้างต้นไป แล้วแก้เป็นนามสกุล .bas
    2. เปิด Excel แล้วกดปุ่ม Alt-F11
    3. ไปที่ File > Import File แล้วเลือกไฟล์ .bas ข้างต้น
    4. ผลคือ จะได้ Module ชื่อ regexp
    5. ใน Excel ตั้งแต่ 2007 เป็นต้นไป จะไม่ยอมให้ Excel ใช้งานพวก Macro ต่างๆได้ ดังนั้น ให้ Save เป็นนามสกุล .xlsm จึงจะใช้งานต่อไปได้

    ใน Module นี้ จะได้ฟังก์ชั่นมา 3 อย่างคือ

    1. RegExp : หาว่าใน String นั้นมี Pattern ที่ค้นหาหรือไม่
    2. RegReplace: แทนที่คำที่ค้นหา
    3. RegExtract: แกะเอาเฉพาะ pattern ที่ต้องการออกมา

    ตัวอย่างที่ใช้งานจริง คือการแกะเอา Parameter บางอย่าง จาก URL ที่เก็บมา เพื่อเอาไปประมวลผลต่อด้วย PSPP หรือ SPSS

    สมมุติใน Cell “A1” มี URL ดังนี้

    /webmail/src/right_main.php?PG_SHOWALL=0&newsort=0&startMessage=1&mailbox=INBOX

    ใน Cell “B1” ต้องการดูว่า newsort ตั้งค่าเป็นอะไร ก็เขียนสูตรว่า

    =RegExExtract(“.*newsort=([0-9])&.*”,A1,”$1″)

    ผลที่ได้คือ 0

    หรือ Cell “C1” ต้องการดูค่าว่า mailbox ตั้งค่าอะไรอยู่ ก็ใช้สูตรว่า
    =RegExExtract(“.*mailbox=([a-zA-Z0-9._-]*)&.*”,A1,”$1″)

    Reference

    http://stackoverflow.com/questions/4556910/how-do-i-get-regex-support-in-excel-via-a-function-or-custom-function

  • วิธีติดตั้ง Vmware Tool บน Ubuntu สำหรับ Vcenter ESXi 5.1

    ทำไมต้องลง Vmware Tools

    Vmware Tools เปรียบเสมือน การลง driver ที่ทำให้การใช้งานราบรื่นทั้ง GUI และ Network รวมถึงเกี่ยวกับ
    อุปกรณ์ต่าง ๆ เช่น mouse, usb และการแสดงผล โดยที่สำคัญที่สุดคือสามารถใช้งานได้อย่างมีประสิทธิภาพสูงสุด

    วิธีนี้ใช้ได้กับทั้ง vmware server ที่เสียตังค์และฟรีนะครับ แต่วิธีที่ยกมาเป็นแบบที่เสียตังค์แต่สามารถ apply กันได้ครับ โดยทำดังนี้ครับ

    1. Login เข้าเครื่อง ทำการ apt-get update ให้เรียบร้อย

    # apt-get update
    # apt-get upgrade

    (more…)

  • แก้ปัญหา update ubuntu server แล้วแจ้ง error ว่า perl: warning: Setting locale failed.

    update Ubuntu Server แล้วมี error message แจ้งดังนี้

    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LC_TIME = "th_TH.UTF-8",
    LC_MONETARY = "th_TH.UTF-8",
    LC_ADDRESS = "th_TH.UTF-8",
    LC_TELEPHONE = "th_TH.UTF-8",
    LC_NAME = "th_TH.UTF-8",
    LC_MEASUREMENT = "th_TH.UTF-8",
    LC_IDENTIFICATION = "th_TH.UTF-8",
    LC_NUMERIC = "th_TH.UTF-8",
    LC_PAPER = "th_TH.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
    (more…)

  • Multiple SSL Web Sites On One IP Address

    แก้ให้ apache 2 สามารถให้บริการ ssl-site ได้มากกว่า 1 site บน ubuntu 12.04 ; Apache 2.2.22

    * Server ต้องสามารถให้บริการ https ได้อยู่แล้ว

    1. เพิ่มบรรทัด NameVirtualHost *:443 ลงไปในไฟล์ /etc/apache2/ports.conf
      ตัวอย่าง
      ports.conf

      # /etc/apache2/sites-enabled/000-default
      # This is also true if you have upgraded from before 2.2.9-3 (i.e. from
      # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
      # README.Debian.gz

      NameVirtualHost *:80
      NameVirtualHost *:443
      Listen 80
      (more…)

  • ใช้ Powershell แบบ Linux Shell Script

    รวบรวมการทำงานกับ Powershell บน Windows โดยเทียบเคียงกับการใช้ ShellScript บน Linux
    (ทะยอยเขียนบันทึก โปรดติดตามเรื่อยๆ)

    • เลือกบางบรรทัดจากไฟล์ที่มีคำที่ต้องการอยู่
      shellscript: grep someword textfile.txt
      powershell: select-string “someword” textfile.txt
    • เลือกบางบรรทัดจากไฟล์ แล้วแยกด้วยเครื่องหมาย : เพื่อเอาฟิลด์ที่ 3
      shellscript: grep someword textfile.txt | awk -f ‘{FS=”:”}{print $3}’
      powershell: select string “someword” textfile.txt | % { $_.line.split(‘:’)[2];  }
    • เลือกบางบรรทัดจากไฟล์ แล้วเอาลงไฟล์
      shellscript: grep someword textfile.txt  > output.txt
      powershell: select string “someword” textfile.txt | foreach-object {$_.line} > output.txt
    • ดูท้ายไฟล์ตลอดเวลา (ไม่รู้จะใช้คำว่าอะไรดี) และเริ่มดูโดยเอา 3 บรรทัดสุดท้าย ไม่ใช่เริ่มทั้งไฟลฺ์
      shellscript: tail -f mydata.log
      powershell: get-content mydata.log -wait -tail 3
  • ติว “การจัดการห้องบริการคอมพิวเตอร์และสำนักงาน”

    กิจกรรมของ CoP PSU sysadmin ของเราในลำดับต่อไป จะจัดขึ้นในวันที่ 31 ม.ค. 56 (พฤหัส) เวลา 09.00 – 16.00 น. มีอาหารเที่ยงเลี้ยง ที่ห้อง 101 อาคารศูนย์คอมพิวเตอร์ ม.อ.หาดใหญ่
    (หมายเหตุ วันที่ 30 ม.ค. 56 ทีมวิทยากรจะเตรียมห้องอบรมด้วยกัน) หากท่านสนใจรีบแจ้งอีเมลมาที่ผมโดยตรง ( wiboon.w@psu.ac.th ) หรือทางเฟสบุ๊คของกลุ่ม และผมจะนำรายชื่อมาใส่ไว้ด้านล่างของบล็อกนี้ (ดูรายชื่อผู้เข้าร่วมติว)

    ติว “การจัดการห้องบริการคอมพิวเตอร์และสำนักงาน”

    กลุ่มเป้าหมาย

    • ผู้ดูแลระบบคอมพิวเตอร์และเครือข่ายของม.อ.วิทยาเขตต่างๆ

    ระยะเวลา

    • 1 วัน

    สถานที่และเครื่องคอมพิวเตอร์ที่ใช้

    • ต้องใช้ห้องอบรมที่มีเครื่องคอมพิวเตอร์จำนวน 2 เครื่องต่อผู้เข้าอบรม 1 คน

    เนื้อหา

    • เป็นเรื่องราวเกี่ยวกับการนำโอเพนซอร์สและฟรีแวร์ มาประยุกต์ใช้ในการจัดการห้องบริการคอมพิวเตอร์และสำนักงาน
    • แนะนำโปรแกรม pGina บนวินโดวส์ เพื่อควบคุมการใช้เครื่องคอมพิวเตอร์ โดยใช้ radius server ที่ติดตั้งพร้อมใช้งานอยู่ใน PSU-12 ต้นแบบพัฒนาจาก FreeRADIUS ซึ่งมี module ที่สามารถ authen กับ PSU-Passport ได้
    • ความรู้เกี่ยวกับ Disk/Partition/Booting
    • แนะนำชุดโปรแกรม PSU-12

    ชุดโปรแกรม PSU-12 ที่มีสรรพคุณดังนี้

    • Boot Manager Server – ห้องคอมพิวเตอร์อัจฉริยะ ควบคุม boot manager จาก server
    • Cloning Server – ระบบโคลนนิงผ่าน network ใช้ทดแทนโปรแกรม GHOST
    • โคลนนิงได้ทั้ง MS Windows และ Linux
    • DHCP + PXE Server – ทำงานเป็น DHCP server และ PXE server
    • มีระบบบันทึก log accounting
    • สามารถกำหนดให้ หาก PC ลูกข่ายไม่ต่อกับ network จะบูทไม่ได้
    • ประยุกต์ใช้งานบังคับให้อ่าน message of today จึงจะบูทเครื่องใช้งานได้
    • สามารถกำหนดให้ PC ลูกข่ายบูทเข้า partition ไหนก็ได้

    รายละเอียดหัวข้อติว
    ตอนที่ 1 – ติดตั้ง server

    • ติดตั้ง Ubuntu server
    • ติดตั้งชุด PSU-12
    • การปรับแต่งให้ PSU-12 เป็น radius server ที่สามารถ authen กับ @psu.ac.th และ PSU-Passport
    • ทดสอบ authen กับอีเมลของ @psu.ac.th
    • ทดสอบ authen กับบัญชีผู้ใช้ PSU-Passport
    • สามารถปรับตั้งให้เฉพาะบุคลากรของ PSU หรือเฉพาะบุคลากรในหน่วยงานเท่านั้นที่ใช้บริการได้
    • สามารถปรับตั้งให้เฉพาะนักศึกษาในคณะเท่านั้นที่ใช้บริการได้

    ตอนที่ 2 – การโคลนนิ่ง

    • การ Cloning เครื่องต้นแบบไปเก็บเป็นไฟล์ต้นฉบับ (Backup Process)
    • การ Backup Partition Table
    • การ Backup Partition
    • การ Cloning เครื่องใหม่จากไฟล์ต้นแบบ (Restore Process)
    • การตั้งค่าเพื่อทำให้ระบบที่ Cloning มากลับมา boot ได้

    ตอนที่ 3 – ติดตั้งโปรแกรมสำหรับควบคุมการใช้เครื่องคอมพิวเตอร์

    • แบ่ง partition ของฮาร์ดดิสก์โดยใช้แผ่นซีดี Sysresccd และลง Windows 7 ใหม่ใน partition ที่สร้างขึ้น
    • ติดตั้งโปรแกรมเก็บข้อมูลการใช้เครื่องคอมพิวเตอร์ MS และบันทึกไว้บน server ที่เลือก
    • ติดตั้งโปรแกรม pGina เพื่อให้ login เข้าก่อนใช้เครื่อง MS
    • ตั้งค่า message of today
    • สามารถตั้งเวลา shutdown จาก server โดยตรงได้

    วิทยากร

    • ชัยวัฒน์ ศรีจันทร์กุล คณะวิทยาการจัดการ
    • ธีรเดช เขมะธีรรัตน์ คณะทันตแพทยศาสตร์
    • วิศิษฐ โชติอุทยางกุร คณะทันตแพทยศาสตร์
    • วิบูลย์ วราสิทธิชัย ศูนย์คอมพิวเตอร์

    รายชื่อผู้แจ้งเข้าร่วมติว

    1. วันชัย แซ่ลิ่ม ภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์
    2. อาฮาหมัด เจ๊ะดือราแม งานเทคโนโลยีสารสนเทศ คณะเทคนิคการแพทย์ (*)
    3. ศิริพงษ์ ศิริวรรณ คณะเภสัชศาสตร์
    4. ดุษณี โสภณอดิศัย คณะนิติศาสตร์ (*)
    5. ฝาติหม๊ะ เหมมันต์ ภาควิชาวิศวกรรมเครื่องกล คณะวิศวกรรมศาสตร์
    6. เกรียงไกร หนูทองคำ ศูนย์คอมพิวเตอร์ ม.อ.หาดใหญ่
    7. เอกภพ ถาวรจิตร สำนักทรัพยากรการเรียนรู้คุณหญิงหลง อรรถกระวีสุนทร
    8. นิติ โชติแก้ว คณะการแพทย์แผนไทย
    9. เพียงพิศ สุกแดง คณะวิทยาการจัดการ
    10. วิมลรัตน์ แดงสุวรรณ บัณฑิตวิทยาลัย
    11. พรจรัส สุทธินันท์ คณะการจัดการสิ่งแวดล้อม
    12. สงกรานต์ มุณีแนม ศูนย์คอมพิวเตอร์  ม.อ.หาดใหญ่
    13. คณกรณ์ หอศิริธรรม ศูนย์คอมพิวเตอร์ ม.อ.หาดใหญ่
    14. สุวัฒน์ อนันตคุณูปกร ศูนย์สื่อการเรียนรู้
    15. เกียรติศักดิ์ คมขำ ศูนย์สื่อการเรียนรู้
    16. ศรายุทธ จุลแก้ว ศูนย์สื่อการเรียนรู้
    17. ปุณณวัชร์ วิเทียมญลักษณ์ ศูนย์สื่อการเรียนรู้ (*)
    18. จรรยา เพชรหวน งานเทคโนโลยีและสารสนเทศ คณะทรัพยากรธรรมชาติ
    19. ยุวภา โฆสกิตติกุล คณะทรัพยากรธรรมชาติ
    20. ภูเมศ จารุพันธ์ สารสนเทศ คณะพยาบาลศาสตร์
    21. กฤตกร อินแพง สารสนเทศ คณะพยาบาลศาสตร์ (fb: Nick Justice)
    22. นาลิวัน หีมเห็ม สำนักวิจัยและพัฒนา
    23. ธีรวัฒน์ แตระกุล ฝ่ายวิจัยและบริการ คณะเภสัชศาสตร์
    24. สุระเชษฐ์ วงศ์อารยพาณิช คณะวิศวกรรมศาสตร์ (*)
    25. กฤษณะ คีรีวัลย์ คณะวิศวกรรมศาสตร์
    26. เสะอันวา เสะบือราเฮง คณะศึกษาศาสตร์ ม.อ.ปัตตานี

    ( (*) ไม่ได้เข้าร่วม)

  • การเปลี่ยนชื่อ group mail ใน mailman

    ในการใช้ mailman เพื่อการให้บริการ Mailing List หรือ Group Mail นั้น การเปลี่ยนชื่อกลุ่มนั้น ค่อนข้างยุ่งยาก แต่สามารถทำได้ง่ายกว่า โดยการสร้าง List ใหม่แล้ว เอา Config และ Member เดิมมาใส่

    ขอยกตัวอย่าง กรณี จะเปลี่ยน group name ของกลุ่มคณะ วจก. ซึ่งเดิมจะขึ้นต้นด้วย mgt-* ให้ไปเป็น fms-*
    ก็จะใช้ Shell Script ตามนี้

    oldname="mgt"
    newname="fms"
    owner="admin.name@psx.ac.th"
    password="xxxxxx"
    
    for line in $( /usr/lib/mailman/bin/list_lists | grep -i "$oldname-"|awk '{print $1}') ; do
       /usr/lib/mailman/bin/config_list -o $line.txt $line
       /usr/lib/mailman/bin/list_members $line > $line-member.txt
       newgroupname=$newname-$(echo $line | sed -e "s/$oldname-\(.*\)*/\1/i")
       sed -e "s/$oldname-/$newname-/i" $line.txt > $newgroupname.txt
       /usr/lib/mailman/bin/newlist $newgroupname $owner $password
       /usr/lib/mailman/bin/config_list -i $newgroupname.txt $newgroupname
       /usr/lib/mailman/bin/add_members -w n -a n -r $line-member.txt $newgroupname
    done

    1. เมื่อต้องการทราบว่า ในระบบของ mailman มี List ใดบ้างที่ชื่อขึ้นต้นด้วย “mgt-” บ้าง
    ใช้คำสั่ง

    /usr/lib/mailman/bin/list_lists | grep -i "mgt-"

    2. ซึ่งจะพบว่ามีหลายกลุ่ม ที่มีชื่อขึ้นต้นด้วย “mgt-“, ก็สามารถใช้ Shell Script เพื่อ เอาผลลัพธ์ จากคำสั่งดังกล่าว มาทำงานร่วมกับคำสั่ง ต่อไปนี้ เพื่อเก็บ Config ของกลุ่มนั้นๆ ออกมาเป็นไฟล์ (สมมุติว่า ชื่อกลุ่มคือ mgt-xxx ก็นำออกมาเป็นไฟล์ชื่อ mtg-xxx.txt)

    /usr/lib/mailman/bin/config_list -o mgt-xxxx.txt mgt-xxx

    3.ต่อไป วิธีการดูว่า แต่ละกลุ่ม มีใครเป็นสมาชิกบ้าง แล้วนำออกมาเป็นไฟล์ (สมมุติว่า ชื่อกลุ่มคือ mgt-xxx ก็นำออกมาเป็นไฟล์ชื่อ mtg-xxx-member.txt)

    /usr/lib/mailman/bin/list_members mgt-xxx > mgt-xxx-member.txt

    จะได้ไฟล์ชื่อเดียวกับชื่อกลุ่ม แต่จะลงท้ายด้วยคำว่า -member.txt

    4, ในการเปลี่ยนชื่อกลุ่ม จะเปลี่ยนจาก mgt-xxxx มาเป็น fms-xxxx วิธีการที่จะได้คำว่า xxxx ที่ต่อท้าย mgt-xxxx นั้น ใช้คำสั่งต่อไปนี้

    echo "mgt-xxxx" | sed -e "s/mgt-\(.*\)*/\1/i"

    คำสั่ง sed นั้นมี option “-e” คือการสั่งให้ execute คำสั่งที่ตามมา
    ส่วน  “s/mgt-\(.*\)*/\1/i” นั้น จะมีโครงสร้างคือ

    s/pattern/replace/i

    s : หมายถึง substitute คือ แทนที
    pattern: ที่เขียนว่า mgt-\(.*\)* หมายความว่า เมื่อเจอรูปแบบ mgt-xxxx ก็จะเอา xxxx มาเก็บไว้ในตัวแปร
    replace: ที่เขียนว่า \1 ก็คือเอาค่าจากตัวแปรใน pattern \(.*\) นั่นก็คือ xxxx
    i: ตัวสุดท้ายหมายถึง Case-Insensitive หรือ ไม่สนใจตัวเลขตัวใหญ่

    5. ต่อไป เป็นสร้าง List ใหม่ ใช่คำสั่งว่า

    /usr/lib/mailman/bin/newlist fms-xxxx admin.name@psx.ac.th xxxxxx

    คือ สร้างกลุ่มใหม่ชื่อ fms-xxxx โดยให้ owner เป็น admin.name@psx.ac.th และใช้พาสเวิร์ดเป็น xxxxxx

    6. ปรับ config ของกลุ่มใหม่นี้ ให้เป็นตามกลุ่มเดิม

     /usr/lib/mailman/bin/config_list -i fms-xxxx.txt fms-xxxx

    โดยนำ config จากไฟล์ fms-xxxx.txt มาปรับใช้กับกลุ่มชื่อ fms-xxxx

    7. สุดท้าย นำสมาชิกจากกลุ่มเดิม เข้าสู่กลุ่มใหม่

    /usr/lib/mailman/bin/add_members -w n -a n -r mgt-xxxx-member.txt fms-xxxx

    โดย option แต่ละตัวหมายถึง
    -w n : ไม่ต้องแจ้งผู้ใช้ว่าถูกเพิ่มเข้ากลุ่ม
    -a n : ไม่ต้องแจ้ง owner

    และนำข้อมูลสมาชิกจากไฟล์ mgt-xxxx-member.txt เข้ากลุ่ม fms-xxxx