Category: Operating System

  • How to use bitlocker?

    หลังจาก Truecrypt ไม่ปลอดภัย ? คนความลับเยอะจะใช้อะไรเข้ารหัส HDD กันดี ทางเลือกหนึ่งคือใช้ bitlocker ที่มาพร้อมกับ Windows 7/8/8.1/10 (รุ่น Professional, Enterprise, Education, Enterprise LTSB เท่านั้น) และ Windows Server 2008/2008R2/2012/2012R2/(2016?)

    • เพื่อความสะดวกจึงสร้าง Virtual Hard Disk ดังนี้
      • เปิด Disk Management (Start > RUN > diskmgmt.msc)
        rundiskmgmt.msc
      • จะได้ Disk Management
        diskmanagementconsole
      • คลิกที่เมนู Action เลือก Create VHD
        createvhd
      • จะได้หน้าต่าง Create and Attach Virtual Hard Disk
        createandattachvhd
      • เลือกที่เก็บ ขนาดและชนิดได้ตามชอบใจ VHD และ VHDX ต่างกันตามคำอธิบายนะครับ ดังนั้นตามตัวอย่างนี้จะได้ดังรูป
        createvhdx
      • เลือกเรียบร้อยกด OK จะได้ HDD ลูกใหม่เพิ่มขึ้นมาอยู่ในสถานะ Not Initialize เหมือนเราเอา HDD ลูกใหม่ที่เพิ่งซื้อ (สดๆ :p ) มาเสียบ
        newdiskattach
      • คลิกขวาที่ HDD ลูกใหม่นี้เลือก Initialize Disk
        initializedisk
      • เลือกชนิดพาทิชั่นที่ต้องการว่าจะเป็น MBR หรือ GPT อันนี้ปล่อยตามค่าที่ถูกเลือกไว้แต่แรกเลยก็ได้ อย่าลืมอ่าน Note: ด้านล่างด้วยนะครับ (จะเป็น MBR หรือ GPT ขึ้นอยู่กับว่าลง Windows มาในโหมดไหน UEFI หรือ BIOS)
        initializenewdisk
      • สร้าง Partition ใหม่ ตัวอย่างนี้เลือกเป็น GPT Partition Table จะเรียกเป็น Simple Volume คลิกขวาที่พื้นที่ Unallocated เลือก New Simple Volume…
        newsimplevolume
      • เลือกขนาด Partiton ให้เป็นพื้นที่ทั้งหมดไปเลย แล้วกด Next ไปเรื่อยๆ
        newsimplevolumewizard
      • จนถึงขั้นตอน Format สามารถเลือกได้ทุกชนิดไม่ว่าจะเป็น FAT32 หรือ NTFS ตามตัวอย่างนี้เลือก NTFS กด Next แล้ว Finish
        format
      • จะได้ HDD ลูกใหม่ที่มี Partition ชื่อ Bitlocker เพิ่มขึ้นมาแล้ว (H:)
        drivebitlocker
      • เปิดดูด้วย Windows Explorer จะเห็น Drive H เพิ่มขึ้นมาแล้ว เป็นอันเสร็จสำหรับการสร้าง Virtual Hard Disk
        windowsexplorer
    • คลิกขวาที่ Drive H เลือก Turn on Bitlocker
      turnonbitlocker
    • จะได้หน้าต่าง Bitlocker Drive Encryption (H:) (ชื่อ Drive อาจต่างไปจากนี้แล้วแต่เครื่องนะครับ)
      bitlockerdriveencryption
    • เลือก Use a password to unlock the drive แล้วตั้ง Password ตามต้องการ กด Next
      passwordcreate
    • จะได้หน้าสำหรับ Backup recovery key เลือกได้เลยว่าจะเก็บไว้ในรูปแบบไหน (ในตัวอย่างเลือก Save to a file ไว้ก่อนเนื่องจากไม่ได้เข้าวินโดวส์ด้วย Microsoft account) เลือกเสร็จแล้วกด Next
      backuprecoverykeyจะได้ TXT file ชื่อขึ้นต้นด้วย BitLocker Recovery Key*.txt ให้เก็บไว้ให้ดีเผื่อกรณีฉุกเฉิน (อ่านรายละเอียดเกี่ยวกับ recovery key ได้โดยคลิกที่ What is a recovery key?)
    • คลิก Start encrypting
      startencrypting
    • รอสักครู่เมื่อไปดูที่ Windows Explorer จะเป็นว่ามีรูปแม่กุญแจขึ้นที่ Drive H แล้ว
      bitlockersuceed
    • คลิกขวาที่ Drive H เลือก Eject
      eject
    • Drive H หายไปแล้ว
      nonh
    • ไปยังที่เก็บแฟ้มที่สร้างไว้ ในข้อ ๑ หัวข้อย่อย ๕ (E:\aa.vhdx)
      aa
    • คลิกขวาที่ aa.vhdx เลือก Mount
    • ดูที่ Windows Explorer จะเห็นว่า Drive H ถูกล็อคไว้อยู่
      lock
    • คลิกขวาที่ Drive H เลือก Unlock Drive… จะมีหน้าต่างปรากฏขึ้นให้ใส่พาสเวิร์ดที่ตั้งไว้
      unlock
      enterpasswordtounlock
    • Unlocked
      bitlockersuceed
    • สามารถใช้ได้เหมือน HDD ปกติ และ HDD ปกติสามารถเปิดใช้ Bitlocker ได้ด้วยวิธีการเดียวกัน โดยไม่ต้องสร้าง Virtual Hard Disk ก็ได้
    • Eject Drive H ทุกครั้งที่งานเสร็จ
    • จบ ขอให้สนุกครับ

    อ้างอิง
    http://truecrypt.sourceforge.net/
    http://www.neowin.net/news/truecrypt-audit-reveals-vulnerabilities-but-no-backdoors

  • Dual Boot Ubuntu 14.04 & Windows 8.1 in UEFI

    • เหตุการณ์สมมติจึงใช้ VirtualBox
    • ตั้งค่า VirtualBox ดังภาพ (ขอข้ามวิธีการสร้างเครื่องใหม่บน VirtualBox ไปเลยนะครับ คิดซะว่าชำนาญแล้ว โดยขนาด HDD ที่ต้องการ 100GB เป็นอย่างน้อย) โดยเลือก option ที่เขียนว่า Enable EFI (special OSes Only) และในช่อง  Boot Order: ให้เลื่อนเป็น Optical แล้วตามด้วย Hard Disk แล้วกด OK
      uefi1
    • เมื่อเปิดเครื่องจะได้หน้าจอดังภาพ แสดงว่า BIOS ของเรากลายเป็น UEFI เรียบร้อยแล้ว
      uefi2
    • เลือกแผ่น Ubuntu 14.04 ให้ต่อเข้ากับ Device
      uefi3
    • reset เครื่อง
      uefi4
    • เลือก *Try Ubuntu without installing
      uefi5
    • รอจนได้ Windows Manager แล้วดับเบิ้ลคลิก Install Ubuntu 14.04.2 LTS บน Desktop เข้าสู่กระบวนการติดตั้ง Ubuntu ปกติทั่วไปสามารถใช้ Next Technology ได้เลยไปเรื่อยๆ จนถึงหน้า Installation type ให้เลือกหัวข้อ Something else แล้วกด Continue
      uefi6
    • คลิก New Partition Table… คลิก Continue จะได้ดังภาพ
      uefi7
    • คลิกคำว่า free space แล้วคลิกเครื่องหมายบวก (+) สร้าง Partition ขนาด 512MB มีชนิดเป็น EFI boot partition (ควรดูด้วยว่าพาทิชั่นที่ได้เมื่อสร้างเสร็จมีขนาด 512MB จริงๆ โดยใน VM ที่สร้างนี้ตอนสร้างใส่ไป 514MB) และกด + เพื่อสร้าง swap ในตัวอย่างกำหนดแรมไว้ 4GB สามารถสร้าง Swap เท่าแรมได้เลย และ / (root ขนาด 50GB) ตามลำดับโดยจะเหลือพื้นที่เปล่าไว้ด้วย
      uefi8
    • ภาพแสดงพาทิชั่นเมื่อสร้างเสร็จแล้ว
      uefi9
    • คลิก Install Now และคลิก Continue ที่เหลือหลังจากนี้สามารถกลับสู่โหมด Next Technology ได้เลยจนจบ
      uefi10
      uefi11
    • สิ้นสุดคลิก Restart Now
      uefi12
    • เอาแผ่นออกแล้วกด Enter (ปกติจะเอาออกให้อัตโนมัติ)
      uefi13
    • ลองบูตดูจนได้หน้า Log In
      uefi14
    • เลือก Devices แล้ว Optical Drives แล้วเลือกแผ่น Windows 8.1
      uefi15
    • คลิกรูปเฟืองที่มุมบนขวา เลือก Shutdown แล้วคลิก Restart
      uefi16
    • เมื่อ VM กำลัง Shutdown ให้สังเกตุดูว่า โลโก้ Ubuntu หายไปให้รีบ ESC ทันทีจะได้ดังภาพ
      uefi17
    • เลื่อน Cursor ลงมาที่ Boot Manager แล้วกด Enter จะได้ดังภาพ
      uefi18
    • เลื่อน Cursor ลงมาที่คำว่า EFI DVD/CDROM แล้วจะมีข้อความว่า Press any key to boot from CD or DVD….
      uefi19
    • เมื่อกดปุ่มใดๆ จะเข้าสู่วินโดวส์เพื่อเริ่มติดตั้ง
      uefi20
    • เมื่อได้หน้าเลือกภาษาให้เลือกดังภาพ แล้วคลิก Next
      uefi21
    • คลิก Install now
      uefi22
    • คลิกเครื่องหมายถูกหน้าข้อความ I accept the license terms คลิก Next
    • เลือก Custom: Install Windows only (advanced)
      uefi23
    • จะเห็นพื้นที่ดิสก์ที่เราใช้งานอยู่ในตอนนี้จะเห็นว่ามีที่เหลืออยู่ 48GB ที่เป็น Unallocated Space (และถูกเลือกโดยอัตโนมัติไว้อยู่แล้ว) ในตัวอย่างนี้เราจะสร้างเพียงไดรฟ์ซีเพียงอย่างเดียวให้คลิก Next
      uefi24
    • เข้าสู่การติดตั้ง Windows รอไปจนเสร็จ…
      uefi25
    • เมื่อติดตั้ง Windows  เสร็จแล้วจะถูกบังคับเข้าวินโดวส์ทันที Ubuntu หายไปแล้ว… เพราะ Boot Manager ของ Ubuntu ถูกเขียนทับไปนั่นเอง ให้ตั้งค่า Windows ให้เสร็จเรียบร้อยก่อนแล้วชัตดาวน์เครื่อง เลือก Devices แล้วเลือก Optical Drives เลือกแผ่น Ubuntu อีกครั้ง เมื่อได้ Menu ให้เลือก *Try Ubuntu without installing
      uefi26
    • เมื่อได้หน้า Windows Manager กด Ctrl+alt+T พิมพ์ข้อความดังนี้  และในขั้นตอนนี้ต้องแน่ใจว่าเครื่องเชื่อมต่อ Internet ได้เรียบร้อยแล้ว
      sudo add-apt-repository ppa:yannubuntu/boot-repair
      sudo apt-get update
      sudo apt-get install -y boot-repair
    • แล้วต่อด้วยคำสั่ง sudo boot-repair จะได้ดังภาพ
      uefi27
    • คลิกที่ Recommended repair จะได้ดังภาพ ให้รอไปจนเสร็จ
      uefi28
    • เมื่อได้หน้าจอดังภาพกด OK แล้วสั่งรีบูตได้เลยuefi29
    • เมื่อบูตขึ้นมาจะได้หน้าเมนูที่คุ้นเคยสามารถเลือกได้ว่าจะเข้าอะไร
      uefi30
    • จบขอให้สนุกครับ

    อ้างอิงเพิ่มเติม

    https://help.ubuntu.com/community/Boot-Repair

  • How to reset root password CentOS 7.1

    • เข้า Single user mode โดย reboot แล้วเมื่อได้เมนูของ Grub ให้เลื่อนแถบสีไปยัง Kernel ที่ต้องการบูต (โดยปกติจะถูกเลือกไว้อยู่แล้ว) ให้กด e
      reset1จะได้หน้าจอดังนี้
      reset2สิ่งที่เราสนใจคือบรรทัดที่ขึ้นต้นว่า linux ซึ่งในบทความนี้คือ linux16 สำหรับ CentOS 7/7.1 x86_64 บนเมนบอร์ดที่ใช้ระบบ BIOS (อาจจะพบกับ linuxefi สำหรับเมนบอร์ดที่ใช้ระบบ UEFI) เมื่อหาเจอแล้วเลื่อน cursor ไปที่ ข้อความ ro
      reset2-1เปลี่ยน ro เป็น rw init=/sysroot/bin/sh
      reset3-1กดปุ่ม ctrl และปุ่ม x พร้อมกันเพื่อบูตระบบจะได้ดังภาพ
      reset4
    • พิมพ์คำสั่ง chroot  /sysroot
      reset5-1
    • พิมพ์ passwd เพื่อเปลี่ยนรหัสผ่านสำหรับ root
    • สร้างแฟ้ม autorelabel เพื่อปรับปรุงกฏของ selinux (ถึงแม้จะไม่ได้ใช้งาน selinux ก็ตาม เพื่อความไม่ประมาท) โดยคำสั่ง touch /.autorelabel
    • พิมพ์ exit เพื่อยกเลิก chroot
    • พิมพ์ reboot
      reset6-1
    • ระบบจะรีบูตสองรอบ อัตโนมัติเพื่อปรับปรุง selinux และไฟล์ autorelabel จะถูกลบอัตโนมัติ
    • ล็อคอินเข้าระบบด้วยผู้ใช้ root และ password ที่เปลี่ยนไป ลบแฟ้ม /.bash_history ทิ้งด้วยคำสั่ง rm /.bash_history (ถูกสร้างตอนออกจากระบบ chroot)
    • จบขอให้สนุกครับ

    อ้างอิงเพิ่มเติม
    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sec-Terminal_Menu_Editing_During_Boot.html#sec-Recovering_Root_Password

  • วิดีโอแนะนำการติดตั้ง PSU12-Sritrang Server โปรแกรมสำหรับการจัดการห้องบริการคอมพิวเตอร์ (cloning & control PC)

    วิดีโอแนะนำการติดตั้ง PSU12-Sritrang Server โปรแกรมสำหรับการจัดการห้องบริการคอมพิวเตอร์ (cloning & control PC)
    โดย  Wiboon Warasittichai on youtube

    01 PSU12-sritrang install (ตอนที่ 1 วิธีติดตั้ง)
    PSU12-sritrang-t01
    https://youtu.be/GAhZhGCciY0

    02 PSU12-sritrang cloning (ตอนที่ 2 วิธีโคลนนิ่งฮาร์ดดิสก์)
    PSU12-sritrang-t02
    https://youtu.be/CegdT_LtE4k

    03 PSU12-sritrang features (ตอนที่ 3 คุณสมบัติของแต่ละเมนู)
    PSU12-sritrang-t03
    https://youtu.be/Dw_wAyMa3vA

    04 PSU12-sritrang control (ตอนที่ 4 การควบคุมเครื่องวินโดวส์ send, restart, shutdown, wakeonlan)
    PSU12-sritrang-t04
    https://youtu.be/o801BZ9ye0Y

    05 PSU12-sritrang prnews (ตอนที่ 5 ประชาสัมพันธ์ข่าวด้วยภาพ เมื่อ boot from network)
    PSU12-sritrang-t05
    https://youtu.be/FA2X182oKXo

    06 PSU12-sritrang windows master (ตอนที่ 6 เตรียมวินโดวส์ต้นฉบับที่ติดตั้ง cygwin)
    PSU12-sritrang-t06
    https://youtu.be/9XkLQQ-niz4

    07 PSU12-sritrang windows computer name (ตอนที่ 7 เปลี่ยนชื่อเครื่อง)
    PSU12-sritrang-t07
    https://youtu.be/TuW8_Z2U7V4

    08 PSU12-sritrang windows pgina freeradius (ตอนที่ 8 ตั้ง login ใช้ RADIUS server)
    PSU12-sritrang-t08
    https://youtu.be/58Pw-dbxljw

    09 PSU12-sritrang windows partitions (ตอนที่ 9 เตรียมฮาร์ดดิสก์ของวินโดวส์ต้นฉบับ)
    PSU12-sritrang-t09
    https://youtu.be/jP4oSqRNvCo

    10 PSU12-sritrang linuxmint master (ตอนที่ 10 เตรียมลินุกซ์มินท์ต้นฉบับ)
    PSU12-sritrang-t10
    https://youtu.be/zpR0UQbTy_U

    11 PSU12-sritrang control linuxmint (ตอนที่ 11 การควบคุมเครื่องลินุกซ์มินท์)
    PSU12-sritrang-t11
    https://youtu.be/bVtfc4x-kKU

    12 PSU12-sritrang server backup (ตอนที่ 12 สำเนาไฟล์เก็บไว้)
    PSU12-sritrang-t12
    https://youtu.be/dA7-pWjy35I

    และมีเอกสารแนะนำอยู่ที่ http://opensource.psu.ac.th/PSU-Open-server

  • How to restore a system after accidentally removing all kernels?

    เหตุการณ์สมมติ… ทำไงดี??? เผลอรันคำสั่ง

    sudo apt-get remove --purge linux-image-3.19.0-*

    ได้ผลดังรูป (ดันกด y แล้ว enter อีกนะ)
    Capture1งานงอก …ลอง ls /boot เผื่อว่ายังมี Kernel เหลืออยู่บ้าง
    Capture2
    คุณพระ ไปหมดแล้ว… ตกใจ!!! reboot สิ… (กรั่ก ๆ)
    (หากไม่ตกใจจน reboot ไปซะก่อนสามารถพิมพ์คำสั่ง sudo apt-get install linux-image-generic ได้เลย)
    Capture3 เงิบ!!! เหลือแต่ Memory Test….

    แก้ไขโดยหาแผ่น Ubuntu Desktop ควรเป็นรุ่นเดียวกับรุ่นที่ติดตั้ง 12.04, 14.04 เป็นต้น (แต่แนะนำ 14.04 ถึงแม้จะกู้เครื่องที่เป็น 12.04)

    • เมื่อบูตให้เลือก Try Ubuntu รอจน Desktop ขึ้นมาเรียบร้อย เปิด Terminal ขึ้นมา (กด ctrl+alt+t)
    • พิมพ์คำสั่ง sudo fdisk /dev/sda -l (กรณีนี้รู้แน่ๆ ว่าติดตั้งบน /dev/sda)
      Capture4
    • จากรูปมีสอง patition ที่น่าจะติดตั้ง Ubuntu เอาไว้ คือ /dev/sda1 และ /dev/sda5 ถ้าใช้แผ่น 12.04 จะไม่สามารถ mount ส่วนของ /dev/sda5 ได้เพราะมองไม่เห็น patition ที่เป็น LVM ตั้งแต่แรก แต่แผ่น 14.04 มองเห็น
      Capture5
    • เมื่อคลิกที่ 103 GB Volume สามารถมองเห็นไฟล์ทั้งหมด
      Capture6
    • ลองเปิดไฟล์ใน etc/fstab ดูไฟล์ข้างในว่า partition อยู่อย่างไร
      Capture7
    • พบว่า /dev/sda1 เป็น boot และ /dev/mapper/ubuntu–vg-root เป็น / และ /dev/mapper/ubuntu–vg-swap_1 เป็น swap เราสนใจแค่ boot และ /
    • สั่ง mount patition ตามลำดับต่อไปนี้
      sudo mount /dev/mapper/ubuntu--vg-root /mnt
      sudo mount /dev/sda1 /mnt/boot
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /sys /mnt/sys
      sudo mount --bind /proc /mnt/proc
      Capture1111
    • สั่งคำ chroot ไปยัง /mnt สังเกตว่าหลังจากสั่งคำสั่ง chroot แล้ว prompt จะเปลี่ยนเป็น root@ubuntu:/#
      sudo chroot /mnt
      Capture9
    • ให้ตรวจสอบแฟ้ม /etc/apt/sources.list ว่าใช้ repository ไหนด้วย หากไม่ได้ใช้ th.archive.ubuntu.com หรือ mirror.psu.ac.th หรือ mirrors.psu.ac.th หรือ mirror1.ku.ac.th ให้เปลี่ยนเป็น th.archive.ubuntu.com จากนั้นทดสอบ nslookup th.archive.ubuntu.com สำหรับคนที่ resolve ได้ (เรายินดีด้วย) ข้ามข้อ ๑๐ ไปได้เลย
      Capture11
    • แก้ไขแฟ้ม /etc/hosts
      สำหรับเครื่องที่อยู่นอกมหาวิทยาลัยเพิ่มข้อความว่า
      192.100.77.186 th.archive.ubuntu.com
      สำหรับเครื่องที่อยู่ภายในมหาวิทยาลัยเพิ่มข้อความว่า
      192.168.101.34 th.archive.ubuntu.com
       
    • สั่ง
      apt  install linux-image-generic
      Capture1112
    • รอจนเสร็จได้ข้อความสุดท้ายประมาณว่า  Setting up linux-image-generic (… ให้แก้ไขไฟล์ /etc/hosts โดยเอาบรรทัดที่เพิ่มเข้าไปออก
    • พิมพ์คำสั่งต่อไปนี้ตามลำดับ
      exit
      sudo umount /mnt/proc /mnt/dev /mnt/sys /mnt/boot /mnt
      sudo reboot
    • เย่บูตได้..
    • จบขอให้สนุกครับ
  • iTALC 2.0.2 โปรแกรมควบคุมคอมพิวเตอร์ในห้องเรียน

    italc-installation-2-window
    มาแนะนำกันอีกสักรอบสำหรับ iTALC 2.0.2 โปรแกรมควบคุมคอมพิวเตอร์ในห้องเรียน เป็นซอฟต์แวร์ชนิดโอเพนซอร์สที่บางคนก็ได้ลองใช้ในเวอร์ชั่นแรก ๆ ไปบ้างแล้ว ผมลองเข้าไปดูในเว็บไซต์ผู้สร้างโปรแกรมก็เห็นว่ายังคงอัปเดตปรับปรุงโปรแกรมกันอยู่ถึงปัจจุบัน ก็เลยสนใจลองทดสอบดูครับ

    iTALC ทำอะไรได้หลายอย่าง เช่น ผู้สอนสามารถ Lock หน้าจอเครื่องผู้เรียน สามารถส่งภาพหน้าจอเครื่องผู้สอนไปยังหน้าจอเครื่องผู้เรียนได้ สามารถรีโมทคอนโทรลเข้าไปเครื่องผู้เรียนได้ สั่งปิดเครื่องทุกเครื่องได้ หรือ สั่งเปิดเครื่องได้หาก BIOS พร้อมใช้งาน

    ดาวน์โหลดโปรแกรมได้ที่ http://italc.sourceforge.net/
    italc-installation-1-file

    ติดตั้งเสร็จจะได้ไอคอนที่หน้า Desktop ดังรูป
    italc-installed-desktop-window
    และไอคอนที่หน้า Apps ดังรูป
    italc-installed-apps-window
    โปรแกรม iTALC Management Console
    italc-management-4-export-key-1-window
    เครื่องผู้สอน จะเรียกว่า master computer ในขั้นตอนการติดตั้งโปรแกรมที่เครื่องผู้สอน ให้เลือก component iTALC service และ iTALC master และให้เลือก Create new access keys
    italc-installation-3-choose-window
    เครื่องผู้เรียน จะเรียกว่า client computer ในขั้นตอนการติดตั้งโปรแกรมที่เครื่องผู้เรียน ให้เลือก component iTALC service แต่ไม่เลือก iTALC master และให้เลือก Import public key
    italc-management-4-export-key-2-window

    วิธีที่จะทำให้เครื่องผู้สอนควบคุมเครื่องผู้เรียนได้ก็คือการ export public key ซึ่งจะได้ไฟล์ชื่อ italc_public_key.key.txt ด้วยโปรแกรม iTALC Management Console นั้นเช่นกัน
    italc-management-4-export-key-4-window
    แล้วนำไปใส่เข้าในเครื่องผู้เรียนด้วยโปรแกรมเดียวกัน
    italc-management-import-key-3-window
    เมื่อทำขั้นตอนติดตั้งเสร็จแล้ว ก็เป็นการตั้ง classroom ว่าชื่ออะไร และมีคอมพิวเตอร์ใดบ้าง (IP) อยู่ใน classroom นี้ แล้วก็ใช้งานซึ่งการใช้งานง่ายมากเลย
    italc-setting-classroom-finished

    ผมเขียนวิธีการสำหรับ Windows 8.1 ที่นี่ครับ
    http://opensource.cc.psu.ac.th/โปรแกรมควบคุมคอมพิวเตอร์ในห้องเรียน

    และวิธีการสำหรับ Linux Mint 17.1 ที่นี่ครับ
    http://opensource.cc.psu.ac.th/ติดตั้ง_iTALC_บน_Linux_Mint

    คำถามยอดฮิตคือ แล้วมันใช้ควบคุมได้กี่เครื่อง อันนี้ผมยังไม่ได้ทดสอบครับ ฮ่า ฮ่า รอท่านทดสอบแล้วบอกผมด้วยนะครับ

    หวังว่าคงจะมีประโยชน์ อย่างน้อยที่สุดเอามาใช้ควบคุมเครื่องที่อยู่ในความดูแลไม่กี่เครื่องก็ใช้ได้นะ

  • Dialog cannot open tty-output

    dialog บน Oracle Enterprise Linux และ Ubuntu ไม่เหมือนกัน (ทำไมล่ะ…ไม่ทราบครับ)

    สร้างสคริปต์ชื่อ file.sh มีข้อความว่า

    #!/bin/bash
    FILE=$(dialog --ascii-lines --title "Delete a file" --stdout \
    --title "Please choose a file to delete" --fselect /tmp/ 14 48)
    echo $FILE

    บน Ubuntu รันได้ผลลัพธ์
    Ubuntu's Dialogแต่บน Oracle Enterprise Linux
    Oracle Enterprise LInux' Dialog-_-

    ต้องเปลี่ยนสคริปต์มีสองแบบ
    แบบแรก
    #!/bin/sh
    dialog --ascii-lines --title "Delete a file" --stdout \
    --title "Please choose a file to delete" --fselect /tmp/ 14 48 2>/tmp/file.tmp
    echo $(cat /tmp/file.tmp)

    แบบที่สอง
    #!/bin/bash
    FILE=$(dialog --ascii-lines --title "Delete a file" --stdout \
    --title "Please choose a file to delete" --fselect /tmp/ 14 48 2>&1>/dev/tty)
    echo $FILE

    ผลลัพธ์ของทั้งสองแบบให้ผลเหมือนกันคือ
    Oracle Enterprise Linux's Dialog2จบ..วันนี้ห้วนไปหน่อย ขอให้สนุกครับ

  • Shell Script : Grouping and Summation

    มี Log ขนาดใหญ่ แล้ว ต้องการจะวิเคราะห์ข้อมูลของนาทีที่ผ่านมา เลือกเฉพาะรูปแบบที่ต้องการด้วยคำสั่ง

    grep 'Apr 28 10:59' /var/log/mail.log | grep 'postfix/qmgr' |grep 'nrcpt=' |grep -v 'from=<>'

    ได้ผลมาประมาณนี้

    01

    ต้องการเอาข้อมูล X และ Y จากรูปแบบนี้ from=<X> และ nrcpt=Y ใช้ความรู้จาก Shell Script: Extract exact pattern from string ใช้คำสั่งต่อไปนี้

    grep 'Apr 28 10:59' /var/log/mail.log | grep 'postfix/qmgr' |grep 'nrcpt=' |grep -v 'from=<>'|sed -n 's/.*\sfrom=<\(.*\)>.*\snrcpt=\(.*\)\s(.*/\1:\2/p'

    ได้ผลมาประมาณนี้

    02

    ต้องการจับกลุ่มตาม คอลัมน์ที่ 1 แล้วหาผลรวมของคอลัมน์ที่ 2 ในแต่ละกลุ่ม ใช้คำสั่ง

    grep 'Apr 28 10:59' /var/log/mail.log | grep 'postfix/qmgr' |grep 'nrcpt=' |grep -v 'from=<>'|sed -n 's/.*\sfrom=<\(.*\)>.*\snrcpt=\(.*\)\s(.*/\1:\2/p' | awk 'BEGIN{FS=OFS=":"}{a[$1]+=$2}END{ for (i in a) print i,a[i]}'

    ได้ผลดังนี้

    03

    Reference:

    http://unix.stackexchange.com/questions/169215/group-by-and-sum-in-shell-script-without-awk

  • Shell Script : Extract exact pattern from string

    มี string ดังนี้ ในตัวแปร line

    line=’Apr 18 06:04:57 webmail squirrelmail: Message sent via webmail: by username.s (psu.ac.th) at 41.203.69.5 on 04/17/2015 23:04:57: Message-ID: 98f9739438686e127bcb8547fea7ed82.squirrel@webmail.psu.ac.th Total 9 recipients Message-ID: 98f9739438686e127bcb8547fea7ed82.squirrel@webmail.psu.ac.th’

    ต้องการค่าที่อยู่ระหว่าง Total … recipients

    ใช้คำสั่งนี้

    total=$(echo $line | sed -n ‘s/.*Total \([[:digit:]]*\) recipients.*/\1/p’)

    ตัวแปร $total จะมีค่า 9 ตามที่ต้องการ

    อธิบาย
    คำสั่ง
    sed -n ‘s/PATTERN/&/p’
    จะแสดงข้อความที่ตรงกับ Pattern เท่านั้น ไม่แสดงข้อความอย่างอื่่น

    Reference:
    http://www.grymoire.com/Unix/Sed.html#uh-15