วันจันทร์ที่ 7 มีนาคม พ.ศ. 2554

How to install NFS Server การติดตั้ง NFS Server ครับ

หัวข้อนี้ นำเสนอการติดตั้ง NFS Server ซึ่งเป็นการอนุญาตให้ใช้งาน DISK ของ Server ผ่านการ Mount มีใจความสำคัญดังนี้



1. ssh 10.100.55.200
2. sudo apt-get install nfs-kernel-server nfs-common portmap
3. ps ax|grep nfs
4. sudo mkdir /data1
5. sudo chown nobody:nogroup /data1
6. chmod 777 /data1
7. sudo nano /etc/exports
เพิ่ม
/data1 10.100.55.201/255.255.255.0(rw,sync,no_subtree_check)
คำว่า /255.255.255.0 มีค่าเท่ากับ เลข 24 เขียนแบบนี้ได้ 10.100.55.201/24

8. exportfs -a
9. /etc/init.d/nfs-kernel-server restart
rpcinfo -p localhost แสดง RPC Programs

การเชื่อมต่อเ้ข้ามายังแม่ข่าย
sudo mount 10.100.55.200:/data1 /mnt

วันอาทิตย์ที่ 6 มีนาคม พ.ศ. 2554

การลดความซ้ำซ้อนข้อมูลขนาดใหญ่ 6.7 ล้านข้อมูล ความเร็วสูงสุด 1 วินาที ด้วยภาษาไพธอน

วันนี้แนะนำเทคนิค การลดความซ้ำซ้อนข้อมูลขนาดใหญ่ ในตัวอย่างนี้ทดสอบ 6.7 ล้านแถวข้อมูล ด้วยภาษาไพธอน
ใช้เวลาประมวลผลเร็วที่สุด ประมาณ 1 วินาที



ผมไม่แปลกใจที่ทำไม Google ถูกสร้างขึ้นจากไพธอน เพราะผมทดสอบด้วยภาษา PHP ยังไ่ม่สามารถทำได้ เนื่องจากการแยก array สามารถทำได้จำกัดใน php แต่ในภาษาไพธอนไม่จำกัด ผนวกกับสุดยอด functional programming ด้วยการใช้ map ซึ่งเป็นส่วนหนึ่งของ mapreduce ทำให้มันเร็วแบบสุด ๆ ครับ

นี่คือโค๊ดไพธอน ซึ่งเป็นพระเอกของเราในวันนี้ครับ !!
def list_unique(data):
set = {}
map(set.__setitem__,data,[])
return set.keys()

คำเกี่ยวข้อง : การลดความซ้ำซ้อนข้อมูลขนาดใหญ่ , python list unique, fastest list unique using python

วันศุกร์ที่ 4 มีนาคม พ.ศ. 2554

การสร้างระบบปฏิบัติการลินุกซ์ของตนเอง ด้วย remastersys

ในหัวข้อนี้ นำท่านสร้างระบบปฏิบัติการลินุกซ์ของท่านขึ้นมาใหม่ หรือจะทำเป็นแผ่น Live CD ของท่านเองได้ มีสาระสำคัญดังนี้



การทำดีสโทร
1. สร้างระบบขึ้นมาใหม่
2. พัฒนาจากระบบเดิม
3. ปรับแต่งจากดีสโทรหลัก
3.1 สร้างมาจากพื้นฐาน NimbleX2, Linux Mint, Chrunchbang Linux, X-Edition, PB
3.2 ปรับจาก Image File (ISO)
3.3 สร้าง Image ISO จากระบบที่ใช้งานอยู่ ใช้ Remastersys แต่ขนาดไฟล์ไม่เกิน 4GB ตามมาตรฐาน ISO9660

1. ติดตั้ง แก้ไฟล์ /etc/apt/source.list เพิ่ม
deb http://.geekconnection.org/remastersys/repository remastersys/

กรณีเวอร์ชั่น Ubuntu 8.04 ที่ใช้ grub boot loader หรือใหม่กว่าให้เขียน
deb http://www.geekconnection.org/remastersys/repository ubuntu/

กรณีเวอร์ชั่น 9.10 ที่ใช้ grub2 boot loader ให้เขียน
deb http://www.geekconnection.org/remastersys/repository karmic/

2.sudo apt-get update
# sudo apt-get install remastersys

3. เข้าโปรแกรม System -> Administration -> Remastersys Backup
ประกอบด้วย backup, dist, distcdfs, distiso, modify, clean, info, quit

ปล. cdfs (CD Filesystem) ไฟล์ทั้งระบบ

BACKUP คือสำรองระบบทั้งระบบ
DIST สำรองทั้งระบบแต่ไม่รวมโฟลเดอร์ ของ USER
DISTCDFS กรณีปต้องการเพิ่มโปรแกรมเข้าไปในระบบ
Modify ทำต่อจาก DISTCDFS เมื่อต้องการสร้าง .ISO จาก CDFS

ข้อเสนอก่อนเริ่มทำงาน
- sudo apt-get clean
- ปิด network share และ unmount ให้หมด

การแสดงรายละเอียดไฟล์รูปแบบฐาน 16 ด้วย hexdump

สำหรับวันนี้นำเสนอการแสดงรายละเอียดไฟล์รูปแบบฐาน 16 ด้วยคำสั่ง hexdump มีรายละเอียดดังนี้



การ dump hex ไฟล์ออกมาดู
#hexdump -C -n 16 filename

คำเกี่ยวข้อง : hexdump, hexfile , dump file , linux

การสร้าง ISO ด้วยคำสั่ง genisoimage บนระบบปฏิบัติการลินุกซ์

ในหัวข้อนี้นำเสนอ การสร้าง ISO ด้วยคำสั่ง genisoimage บนระบบปฏิบัติการลินุกซ์ มีใจความสำคัญดังนี้



คำเกี่ยวข้อง : genisoimage, iso image , linux command line

การ mount ไฟล์ ISO ในลินุกซ์

หัวข้อนี้นำเสนอ การ mount ไฟล์ ISO ในระบบปฏิบัติการลินุกซ์ มีใจความสำคัญดังนี้



1. สร้างไดเร็คทอรี่สำหรับ mount กับ ISO ได้แก่ #mkdir /mnt/myiso
2. คำสั่ง mount ด้วย #mount -o loop -r myiso.iso /mnt/myiso
ปล. ไฟล์ต่าง ๆ ที่ถูก mount จะเก็บไว้ในไดเร็คทอรี่ /mnt/myiso และอ่านได้อย่างเดียว ไม่สามารถเขียนได้

คำเกี่ยวข้อง : ISO Mount , LINUX CLI, MOUNT ISO FILE, MOUNT IMAGE FILE

การเล่นเพลง mp3 ผ่าน command line ในลินุกซ์ ด้วยคำสั่ง mpg123

ในหัวข้อนี้ แนะนำการเล่นเพลง mp3 ผ่าน command line ในลินุกซ์ ด้วยคำสั่ง mpg123 รวมถึงวิธีการสั่งทำงานแบบ background process และการ kill โปรแกรม หรือหยุดการเล่นเพลง มีใจความสำคัญดังนี้



คำเกี่ยวข้อง : mpg123, linux cli, ubuntu, multimedia command line

วันพฤหัสบดีที่ 24 กุมภาพันธ์ พ.ศ. 2554

การใช้งานโปรแกรมวินโดวส์ในระบบปฏิบัติการ ubuntu กรณีศึกษา mathcad และ visual basic ด้วย wine

การใช้งานโปรแกรมวินโดวส์ในระบบปฏิบัติการ ubuntu สามารถทำได้ด้วยการใช้งานโปรแกรม wine



ขั้นตอนการทำงาน
1. ติดตั้ง wine
2. ตั้งค่าโปรแกรมให้กับโปรแกรมที่จะทำงาน
3. เรียกใช้งานโปรแกรมผ่าน wine

การดำเนินการภาคปฏิบัติ
#sudo su
#apt-get update
#apt-get install wine
#winecfg
#apt-get install msttcorefonts cabextract
#wine "/directory/program.exe"
#wine control
#winfile

ในตัวอย่างนี้ได้ทดสอบการทำงานกับโปรแกรม MathCAD5 ขนาดไฟล์ 5MB แต่ครบเครื่องเรื่องคณิตศาสตร์ ตั้งแต่พื้นฐาน ไปจนถึงคณิตศาสตร์ชั้นสูง เช่น แคลคูลัส, อินทริเกรต, เมตริกซ์, โพลีโนเมียล, ฟูเรียทรานสฟอร์ม ฯลฯ

นอกจากนั้นได้นำท่านเขียนโปรแกรมด้วย Visual Basic 6.0 แล้วนำโปรแกรมไปทำงานในระบบปฏิับัติการ Ubuntu ครับ วิดีโอเรื่องนี้เนื้อหาเข้มข้นกว่าเรื่องอื่น ๆ ที่ผ่านมาครับ

วันพุธที่ 23 กุมภาพันธ์ พ.ศ. 2554

การติดตั้ง Linux ด้วย USB Flash Drive โดยไม่ต้องใช้แผ่น CD-ROM

การติดตั้ง Linux ด้วย USB Flash Drive โดยไม่ต้องใช้แผ่น CD-ROM อธิบายขั้นตอนเอาไว้แล้วในวิดีโอนี้ครับ

หลักการคือ
1. ใช้โปรแกรม syslinux ทำการสร้าง Boot Record เพื่อบูตผ่าน USB
2. คัดลอกไฟล์ที่อยู่ใน CD-ROM หรือแผ่นติดตั้ง ลงใน Flash Drive วางใน Root Directory
3. ตั้ง BIOS ให้บูตจาก USB



คำเกี่ยวข้อง : USB FLASH DRIVE BOOT , Linux , UNIX BOOT USB FLASH

วันพุธที่ 16 กุมภาพันธ์ พ.ศ. 2554

การใช้งาน mapreduce ด้วยภาษาไพธอน รวมถึง lambda และ filter

การใช้งานฟังก์ชั่น map และ reduce เป็นหัวใจสำคัญของระบบการประมวลผลแบบกระจาย รวมถึงการทำงานของ google file system (GFS) ฟังก์ชั่นเหล่านั้นเป็น build-in ของภาษาไพธอน ท่านสามารถใช้งานได้อย่างสะดวก และมีประสิทธิภาพ วิดีโอต่อไปนี้ ช่วยทำให้ท่านเข้าใจการทำงานของ mapreduce ครับ




คำทีเกี่ยวข้อง : การเขียนภาษาไพธอน, mapreduce, map , reduce, lambda, filter

วันพุธที่ 9 กุมภาพันธ์ พ.ศ. 2554

การค้นหาไฟล์และลบทิ้งไป ด้วยคำสั่ง find -name และคำสั่ง xargs

ในการค้นหาไฟล์ที่ต้องการ บางครั้งต้องการค้นหาเพื่อลบทิ้งไป ในตัวอย่างต่อไปนี้เป็นการค้นหาไฟล์ *.bak และลบทิ้งไป



ตัวอย่างการใช้งาน
#find -name *.bak | xargs rm

เมื่อเครื่องหมาย | คือการนำผลลัพธ์ส่งเข้าไปให้กับคำสั่ง xargs ซึ่งคำสั่ง xargs ตั้งอยู่ที่ /usr/bin/xargs
คำสั่ง rm ด้านหลัง คือพารามิเตอร์ซึ่งส่งให้คำสั่ง xargs เพื่อนำไป execute

ผลคือ ไฟล์ นามสกุล *.bak ทั้งหมดถูกลบทิ้งไปจากระบบปฏิบัติการ นับตั้งแต่ไดเร็คทอรี่ที่ท่านเรียกใช้คำสั่ง

วันจันทร์ที่ 7 กุมภาพันธ์ พ.ศ. 2554

การสร้าง RAMDISK บนระบบปฏิบัติการ Ubuntu

RAM คือหน่วยความจำหลัก ทำงานได้เร็วกว่า Harddisk เพราะไม่มีการเคลื่อนที่ทางกายภาพ ในตอนนี้นำท่านสร้าง RAMDISK มาใช้งานเพื่อเพิ่มความเร็วในการอ่านเขียนไฟล์ครับ



คำเกี่ยวข้อง : ramdisk, ramdrive

การเล่นเพลง mp3 และปรับระดับเสียง ด้วยคำสั่ง mpg123 และ aumix ในระบบลินุกซ์

ท่านสามารถเล่นเพลง mp3 และปรับระดับเสียง ด้วยคำสั่ง mpg123 และ aumix ในระบบลินุกซ์ ศึกษาจากวิดีโอชุดนี้ครับ



คำสั่ง #aumix -v +10 หมายถึงเพิ่มเสียง 10% หากต้องการลดเสียง ให้ใช้เครื่องหมาย - แทน ศึกษารายละเอียดเพิ่มเติมด้วยคำสั่ง man aumix ครับ

คำเกี่ยวข้อง : ระบบปฏิบัติการลินุกซ์, command line interface (CLI), aumix, mpg123

การเปิดใช้งาน FTP Server ในระบบปฏิบัติการ ubuntu ด้วย vsftpd

ท่านสามารถเปิดใช้งาน FTP Server เพื่ออนุญาติให้แม่ข่ายของท่านสามารถให้บริการถ่ายโอนข้อมูลจากลูกข่ายไปยังเครื่องแม่ข่ายได้ ด้วยโพรโตคอล FTP (File Transfer Protocol) ท่านสามารถศึกษารายละเอียดเพิ่มเติมได้จากวิดีโอนี้ครับ



คำเกี่ยวข้อง การถ่ายโอนข้อมูล , FTP, File Transfer Protocol

การตรวจสอบโครงสร้างไดเร็คทอรี่และไฟล์แบบต้นไม้ ด้วยคำสั่ง tree ในระบบลินุกซ์

ท่านสามารถตรวจสอบโครงสร้างไดเร็คทอรี่และไฟล์ในรูปแบบของต้นไม้ได้ด้วยคำสั่ง tree ขอให้ศึกษารายละเอียดเพิ่มเติมจากวิดีโอชุดนี้ครับ



คำเกี่ยวข้อง : linux, ubuntu, unix, tree

การตรวจสอบประสิทธิภาพและข้อมูลเกี่ยวกับเครื่องแม่ข่าย ด้วยคำสั่ง htop

คำสั่ง htop ช่วยให้ผู้ดูแลระบบสามารถตรวจสอบรายละเอียดเกี่ยวกับเครื่องแม่ข่าย และประสิทธิภาพของระบบ รวมถึงสถานะของโพรเซสที่กำลังทำงาน เป็นคำสั่งที่มีประโยชน์มาก ท่านศึกษารายละเอียดเพิ่มเติมจากวิดีโอชุดนี้ครับ



คำที่เกี่ยวข้อง : ลินุกซ์, ยูนิกส์, การตรวจสอบประสิทธิภาพแม่ข่าย, การตรวจสอบสถานะการทำงานแม่ข่าย

การติดตั้ง Google Chrome ลงบนระบบปฏิบัติการ Ubuntu

การติดตั้ง Google Chrome ลงบนระบบปฏิบัติการ Ubuntu

ท่านสามารถติดตั้ง Google Chrome ลงบนระบบปฏิบัติการ Ubuntu ได้ และใช้งานได้โดยไม่เสียค่าลิขสิทธิ์ โดยใช้บราวเซอร์ ที่ติดมากับ ubuntu เพื่อดาวน์โหลด google chrome จากนั้น เลือกติดตั้งตามขั้นตอนปกติ แสดงรายละเอียดได้ดังนี้



คำที่เกี่ยวข้อง : บราวเซอร์ , google chrome , ubuntu , linux , linux

การติดตั้ง apache , mysql , php, phpmyadmin บนระบบปฏิบัติการ ubuntu ด้วย LAMP

โดยปกติการติดตั้ง apache , mysql , php, phpmyadmin สามารถติดตั้งโปรแกรมทีละตัวได้



แต่ในวันนี้แนะนำท่านถึงการติดตั้งโปรแกรม ทั้งหมดที่กล่าวมาด้วย LAMP ท่านสามารถติดตั้งได้อย่างสะดวก ด้วยคำสั่ง

#apt-get update
#sudo tasksel install lamp-server

ระบบจะทำการติดตั้งและให้ท่านยืนยันรหัสผ่าน mysql ท่านสามารถศึกษาวิธีการติดตั้งได้จากวิดีโอนี้ครับ

คำที่เกี่ยวข้อง : linux, ubuntu, unix, web server, web application, lamp, apache, mysql, php, phpmyadmin

การตรวจสอบหมายเลข IP บนระบบปฏิบัติการ ubuntu ด้วยคำสั่ง ifconfig

การตรวจสอบหมายเลข IP บนระบบปฏิบัติการ ubuntu ด้วยคำสั่ง ifconfig



ในระบบ ubuntu เมื่อท่านเข้ามายัง terminal พิมพ์คำสั่ง
#sudo ifconfig
[ ป้อนรหัสผ่านของท่าน ]

ระบบจะแสดงข้อมูลต่าง ๆ เกี่ยวกับ network setting ท่านสามารถตรวจสอบหมายเลข IP Address ของท่านได้ด้วยคำสั่งนี้ ครับ


คำที่เกี่ยวข้อง : ubuntu, linux, unix , operating system , ระบบปฏิบัติการ, ลินุกซ์, ยูนิกส์, ifconfig

การติดตั้งระบบปฏิบัติการ Ubuntu บน Windows 2003 ด้วย VMware

การติดตั้งระบบปฏิบัติการ Ubuntu บน Windows 2003 ด้วย VMware

การศึกษาขั้นตอนการติดตั้งระบบปฏิบัติการ Ubuntu บนระบบปฏิบัติการวินโดวส์ ด้วยโปรแกรม VMware



ขั้นตอนการดำเนินการ
1. ดาวน์โหลด ชุดติดตั้งที่ http://www.ubuntu.com
2. ติดตั้งตามขั้นตอนตามปกติ

ท่านสามารถศึกษารายละเอียดได้ภายในวิดีโอชุดนี้ครับ


คำที่เกี่ยวข้อง : ubuntu, linux, unix , operating system , ระบบปฏิบัติการ, ลินุกซ์, ยูนิกส์

วันอาทิตย์ที่ 6 กุมภาพันธ์ พ.ศ. 2554

การเขียนภาษาไพธอนพื้นฐาน ทดสอบคำสั่ง print และ len และ split

วันนีั้ขอแนะนำการเขียนภาษาไพธอนสำหรับผู้เริ่มต้น พอเป็นสังเขปครับ

เมื่อเราเข้า python shell จะพบเครื่องหมาย >>> ซึ่งหมายถึง shell ของ python สำหรับรับคำสั่งไปประมวลผล



ในวันนี้ท่านจะได้เรียนคำสั่ง print สำหรับแสดงข้อมูลออกมา ส่วนคำสั่ง len สำหรับแสดงความยาวของตัวอักษร(สตริง) และคำสั่ง split สำหรับแยกสตริงออกจากกัน หรือตัดสตริง

การยกเลิก ATIME และ DIRATIME ในระบบลินุกซ์

ในการเข้าถึงไฟล์ทุกครั้งในระบบยูนิกส์และลินุกซ์ จะมีการเขียนเวลาขณะที่กำลังอ่านไฟล์และเขียนไฟล์เหล่านั้นเสมอ แม้เพียงอ่านไฟล์เท่านั้น ระบบปฏิบัติการจะทำการเขียนเวลาการเข้าถึงด้วย การทำอย่างนี้ หากให้บริการด้วย web server หากมีคนอ่านไฟล์บ่อย ๆ จะมีการเขียน Access Time ลงในไฟล์เท่ากับจำนวนที่อ่าน ทุก ๆ ไฟล์ รวมถึงไฟล์รูปภาพครับ



คำสั่ง ls -lu เป็นการตรวจสอบ Access Time ของไฟล์ เช่น

#ls -lu
total
-rw-r--r-- 1 root root 6 Mar 18 16:01 t1

การตรวจ ATIME และ DIRATIME ด้วยคำสั่ง mount ดังนี้

#mount
/dev/simfs on / type reiserfs (rw,usrquota,grpquota)
/proc on /proc type proc (rw)
/none on /dev type tmpfs (rw)
none on /dev/pts type devpts (rw,noatime,nodiratime)
none on /proc/sys/fs/binfmt_misc type binfmt misc (rw)

ท่านสามารถแก้ไข noatime และ nodiratime ตามวิดีโอที่นำเสนอนี้
โปรดระวัง คำสั่งนี้อาจะเป็นอันตรายกับระบบของท่าน ควรมีความรู้พื้นฐานเพียงพอในการดำเนินการ

การติดตั้งคอมไพลเลอร์ภาษา C/C++ บน CentOS

การติดตั้งคอมไพลเลอร์ภาษา C/C++ บน CentOS



กระทำได้ 3 วิธี
1. GUI ออกคำสั่ง system-config-package &
2. Install rpm จาก CDROM/DVD ออกคำสั่ง rpm -ivh gcc*
3. Download และติดตั้งผ่านอินเตอร์เน็ต yum install gcc gcc-c++ autoconf automake

สร้าง c01.c
main(){
printf("Hello World");
}

คอมไพล์ใช้คำสั่ง cc c01.c
เอ็กซีคิวส์ ./a.out

การตั้งค่า ssh timeout บน CentOS

ปกติถ้าเชื่อมต่อกับแม่ข่ายด้วย SSH จะมีการปิด session ในเวลา 1 นาทีหากไม่มีการพิมพ์คำสั่งลงไปยัง Shell Prompt

สำหรับวันนี้แนะนำเทคนิคการเพิ่ม SSH Timeout โดยมีขั้นตอนดังนี้



1. แก้ไขไฟล์ /etc/ssh/sshd_config

#nano /etc/ssh/sshd_config
จากนั้นให้เอาคอมเมนต์อออกและเปลี่ยนเป็นค่าดังนี้ #ClientAliveInterval 0 ให้เป็น ClientAliveInterval 60
บันทึกไฟล์

2. แก้ไขไฟล์ /etc/ssh/ssh_config

#nano /etc/ssh/ssh_config
เพิ่มคำสั่ง ServerAliveInterval 60 ที่บรรทัดท้ายสุด จากนั้นบันทึกไฟล์

3. รีสตาร์ท ด้วย คำสั่ง
#service sshd restart

ปล. หากไม่มีคำสั่ง nano ซึ่งเป็นโปรแกรม Text Editor ให้ติดตั้งก่อนครับ

วันเสาร์ที่ 5 กุมภาพันธ์ พ.ศ. 2554

เทคนิคการแสดง ECHO ไม่ขึ้นบรรทัดใหม่ ในลินุกซ์

ปกติการแสดงผลผ่าน Shell ในระบบลินุกซ์ จะขึ้นบรรทัดใหม่ แต่มีบางกรณีที่ไม่ต้องการให้ขึ้นบรรทัดใหม่ เช่น เราต้องการรับค่าจากแป้นคีย์บอร์ดจากผู้ใช้ ดังนั้น ในการเขียน Shell Script เราจะใช้ -n เพื่อไม่แสดงการขึ้นบรรทัดใหม่ ดังนี้

# cd /bin
# echo -n “STRING ” && ls | wc -l
# echo “STRING ” && ls | wc -l

ตัวอย่าง


การทำงาน ครั้งแรก cd ไปยังไดเร็คทอรี่ /bin ท่านสามารถย้ายไดเร็คทอรี่ไปยังตำแหน่งที่ตนต้องการได้
จากนั้น echo โดยใช้ -n และ ไม่ใช้ -n จะเห็นว่าหากไม่ใช้ -n จะมีการขึ้นบรรทัดใหม่

ปล. เทคนิคเล็ก ๆ น้อย ๆ ครับ

เทคนิคการตรวจสอบว่าในระบบของเรามีผู้ใช้งานเป็นใครบ้าง ในลินุกซ์

ในการตรวจสอบว่ามี user อะไรบ้างในคอมพิวเตอร์ของเรานั้น ท่านสามารถตรวจสอบได้จากไฟล์ /etc/passwd

ด้วยคำสั่งต่อไปนี้
# cat /etc/passwd | cut -d: -f1

ตัวอย่างการใช้งาน

เทคนิคการตรวจสอบ Performance ของ HDD

การตรวจสอบ performance หรือประสิทธิภาพของฮาร์ดดีกส์ สามารถตรวจสอบได้ด้วยโปรแกรม hdparm

ท่านต้องติดตั้งในระบบของท่าน ก่อนใช้งาน

1. ติดตั้งโปรแกรม hdparm ใน Fedora และ CentOS ด้วยคำสั่ง
# yum install hdparm

2. เรียกคำสั่ง
# hdparm -tT /dev/shm หรือ /dev/sda หรือ /dev/hda
-t คือ device read timings
-T คือ cache read timings

เทคนิคการตรวจสอบ Good Last Login ที่เข้ามา

สำหรับวันนี้แนะนำเทคนิคการตรวจสอบว่า คนที่ล็อกเข้าสู่ระบบของเราสำเร็จแล้วมีใครบ้าง เพราะบางครั้ง อาจจะเป็น hacker ที่เข้าระบบเราโดยรู้รหัสผ่านของเราจากการใช้โปรแกรมสุ่มรหัสผ่าน และพยายามล็อกเ้้ข้าสู่ระบบของเราครับ

คำสั่งที่ใช้ตรวจสอบ Good Last Login ที่เข้ามา คือ

#last | more

ตัวอย่าง



ปล.
/var/log/wtmp เก็บคนที่ล็อกอินเข้ามาในระบบเราได้
/var/log/btmp เก็บล็อกที่เข้ามาไม่ได้

เทคนิคการตรวจสอบว่าใครพยายามบุกรุก โดยการล็อกอินเข้าระบบของเรา ในลินุกซ์

วันนี้มีเทคนิคเล็ก ๆ น้อย ๆ คือการตรวจสอบว่ามีใครพยามล็อกอินเข้ามาในเครื่องของเรา

คำสั่งตรวจสอบ bad last login ที่พยายามเข้าระบบคือ
#lastb | more
คำสั่งตรวจสอบ bad last login ที่พยายามเข้าระบบคือ #lastb | more
เมื่อ lastb หมายถึง คนที่พยายามเข้ามาแต่ล้มเหลวครับ

ตัวอย่าง



ปล.ท่านจะเห็นว่า ระบบ ของท่านมีรายละเอียดของ bad last login จำนวนมาก เพราะว่า มีคนจากทุกมุมโลกพยายามจะเจาะระบบเข้ามายังคอมพิวเตอร์ของท่านครับ

เทคนิคการเคลียส์ LAST LOGIN สำหรับลินุกซ์

การเคลียส์ ชื่อล็อกอินที่เข้ามาหลังสุด ปกติเห็นแต่ hacker ใช้กัน เพราะไม่ต้องการให้ทราบว่าใครเข้าใช้คนล่าสุด ซึ่งก็คือตัวเขาเอง สามารถทำได้ด้วยคำสั่งต่อไปนี้

การเคลียส์ LAST LOGIN สำหรับ UNIX

# cat /dev/null > /var/log/wtmp
# wtmp และ btmp คือ Last Logined User และ Bad Login Attemps Login
# cat /dev/null > /var/log/wtmpwtmp และ btmp คือ Last Logined User และ Bad Login Attemps Login

เทคนิคการตรวจสอบใครล็อกเข้าระบบของเราคนล่าสุด ในลินุกซ์

สำหรับวันนี้นำเทคนิคเล็ก ๆ ที่น่ารู้มาฝากครัับ
การตรวจสอบว่าใครล็อกเข้ามาในระบบลินุกซ์ของเราคนล่าสุด ด้วยคำสั่ง

#last

ตัวอย่างการใช้งาน



การแสดงรายชื่อการล็อกอินจะเพิ่มท้ายไฟล์ไปเรื่อย ๆ ในตัวอย่างนี้ คนที่ล็อกเข้ามาล่าสุดคือ

root pts/0 202.28.33.253 Sat Jan 8 04:19 – 05:22 (01:03)
root pts/0 202.28.33.253 Sat Jan 8 04:19 – 05:22 (01:03)

Root เข้ามาจากเครื่องหมายเลข 202.28.33.253 ในวันเสาร์ เวลา ตีสี่ถึงตีห้ากว่า ๆ ครับ !!

คำสั่งที่เกี่ยวข้อง : last

เทคนิคการเคลียส์ history ในลินุกซ์

ปกติการใช้งาน linux เมื่อ Login เ้ข้าสู่ระบบแล้วจะมีการเก็บคำสั่งที่ใช้งานในอดีตเอาไว้ในไฟล์ .bash_history
หากท่านไม่ต้องการให้ระบบทำการเก็บ History ก่อนออกจากระบบด้วยคำสั่ง Logout ท่านต้องเคลียส์ค่า history ด้วยคำสั่งต่อไปนี้

#history -c

เมื่อ history คือคำสั่งในการตรวจสอบคำสั่งที่เคยเรียกใช้ในอดีต
เมื่อ -c คือ พารามิเตอร์สำหรับการเคลียส์ข้อมูล

ตัวอย่างการใช้งาน


คำสั่งที่เกี่ยวข้อง : linux command, history , เคลียส์ประวัติคำสั่งลินุกซ์

เทคนิคการบีบอัดและขยายไฟล์ด้วย rar – unrar ในระบบลินุกซ์

เทคนิคนี้เป็นการบีบอัดและขยายไฟล์ด้วย rar และ unrar เนื่องจากสามารถจุจำนวนไฟล์ได้มากกว่า แบบ zip มีใจความสำคัญดังนี้

ก่อนอื่นท่านต้องติดตั้ง rar และ unrar ก่อนครับ

การติดตั้ง
# wget http://rarlab.com/rar/rarlinux-3.7.1.tar.gz
# tar xvzf rarlinux*
# cd rar
# make
# make install

หรือใน fedora และ centos ใช้คำสั่ง
# yum install unrar

ใน FreeBSD ใช้คำสั่ง
# pkg_add -v -r unrar

ใน Debian ใช้คำสั่ง
# apt-get install unrar

การติดตั้งโดยใช้ไบนารีไฟล์จาก rarlab
# cd /tmp
# wget http://www.rarlab.com/rar/rarlinux-3.6.0.tar.gz

จากนั้น
# tar -zxvf rarlinux-3.6.0.tar.gz
# cd rar
# ./unrar
# cp rar unrar /bin

การบีบอัด ใช้คำสั่งดังนี้
#rar -a backup *

ตัวอย่างการใช้งาน



ในการแตกไฟล์ในไดเร็คทอรี่ปัจจุบันใช้คำสั่ง
# unrar e filename.rar

การแสดงรายชื่อไฟล์ใน rar
# unrar l filename.rar

การแตกไฟล์โดยมีโครงสร้างไดเร็คทอรี่เหมือนกับที่ตอนบีบอัด
# unrar x filename.rar

คำสั่งที่เกี่ยวข้อง : linux unrar, rar, zip, unzip , file compression, การบีบอัดไฟล์ ,ลินุกซ์

เทคนิคการสร้าง Ramdisk ในลินุกซ์ (เอา RAM มาทำ DISK) Linux Ramdisk

เทคนิคนี้เป็นการเอา RAM ซึ่งเป็นหน่วยความจำหลักของระบบคอมพิวเตอร์มาทำเป็น DISK ส่งผลให้การเข้าถึงไฟล์ทำได้เร็วมาก เพราะ RAM ทำงานได้เร็วกว่า harddisk และอุปกรณ์เก็บข้อมูลอื่น ๆ ถ้าเรานำ RAM มาใช้เป็นพื้นที่ให้บริการเนื้อหาภายในเว็บที่เรียกบ่อย ๆ จะเพิ่มความเร็วให้กับเว็บได้มาก บริษัท Google เองเก็บ Index หลัก ๆ เอาไว้ใน RAM เพื่อเพิ่มความเร็วในการเข้าถึงข้อมูล

ขั้นตอนมีดังนี้

1. สร้าง Directory ที่ต้องการทำ Ramdisk
2. Mount ด้วยพารามิเตอร์ tmpfs

เช่น
#mkdir /ram
#mount -v -t tmpfs -o size=128M none /ram -o noatime,nodiratime

ตัวอย่างการใช้งาน


ไดเร็คทอรี่ /ram จะเป็นการใช้งานหน่วยความจำหลักของคอมพิวเตอร์มาทำเป็นไดเร็คทอรี่ ดังนั้น ไฟล์ต่าง ๆ ใน /ram จึงหายเมื่อ down ระบบ

ปล. noatime และ nodiratime เป็นการกำหนดให้การอ่านเขียนไฟล์ทุกครั้งไม่ต้องเขียนเวลาที่ใช้ในการเข้าถึง เพราะถ้าไม่กำหนดทุกไฟล์ที่ถูกเปิดอ่านจะมีการเขียนว่าไฟล์ดังกล่าวถูกเปิดอ่านเมื่อไรทุกครั้ง

หากท่านนำ Database เก็บไว้ใน RAM จะทำให้การทำงานเร็วมาก จะนำเสนอเทคนิคนี้ในโอกาสต่อไปครับ

คำสั่งเกี่ยวข้อง : linux ramdrive, linux ramdisk, mount ramdisk, mount ramdrive, tmpfs

เทคนิคการแตกไฟล์ zip ภายในลินุกซ์

ในหัวข้อที่ผ่านมาเป็นการบีบอัดไฟล์ zip ในหัวข้อนี้ทำการแตกไฟล์ zip ผ่านคำสั่ง linux

หากท่านยังไม่ติดตั้งคำสั่ง unzip ให้ติดตั้งก่อนใช้งานครับ

ในตัวอย่างนี้เราได้ไฟล์ bk.zip เราสามารถออกคำสั่งดังตัวอย่างต่อไปนี้

#unzip bk.zip

ผลลัพธ์


เพียงเท่านี้ไฟล์ต่าง ๆ จะถูกแตกออกมาจาก zip ท่านสามารถใช้เทคนิคนี้ในการ backup หรือถ่ายโอนข้อมูลขึ้น/ลงเซิร์ฟเวอร์ได้ ค่อนข้างสะดวกครับ

คำสั่งเกี่ยวข้อง : zip, unzip, linux , unix, linux shell, shell command , CLI, command line interface

เทคนิคการบีบอัด zip ไฟล์ในลินุกซ์

ท่านสามารถบับอัดไฟล์จำนวนมาก ไว้ในไฟล์เดียวได้หลายวิธี สำหรับวันนี้นำเสนอวิธีบีบอัดด้วยโปรแกรม zip

ในตัวอย่างนี้ แสดงรายชื่อไฟล์ด้วย ls จะพบว่ามีไดเร็คทอรี่ a,b และ c รวมถึงไฟล์ original_loadvariables.fla, loadVariables.swf และ original_loadvariables.swf

ท่านสามารถเรียกใช้คำสั่ง tree เพื่อดูโครงสร้างของไดเร็คทอรี่ได้ดังตัวอย่าง

สุดท้ายคือคำสั่ง zip ใช้สำหรับบีบอัดไฟล์ โดยใช้ -r สำหรับบีบอัดไดเร็คทอรี่ย่อยด้วย

แสดงรายละเอียดได้ดังนี้


คำสั่งเกี่ยวข้อง : zip, unzip, linux , unix, linux shell, shell command , CLI, command line interface

เทคนิคการเลือกรายการคำสั่งและทำงานผ่าน bashrc ในระบบลินุกซ์

เทคนิคนี้เป็นการเปลี่ยนไดเร็คทอรี่ไปยัง รายการที่แสดง

ตัวอย่างเช่น
สมมติว่าเรามี domain จำนวนมาก และเราต้องการเข้าถึงไดเร็คทอรี่ของแต่ละ โดเมน โดยไม่ต้องมาออกคำสั่ง cd /home/{domain}/public_html ให้เหนื่อย เราสามารถเขียนสคริปต์เก็บเอาไว้ในไฟล์ .bashrc ได้ ในตัวอย่างนี้เพียงเราพิมพ์คำสั่ง g (ได้รับการย่อให้สั้นที่สุด มาจากคำว่า go แปลว่า ให้ไปไดเร็คทอรี่ต่อไปนี้)
จากนั้นจะแสดงรายชื่อโดเมน และหมายเลขกำกับเอาไว้ เราเพียงพิมพ์หมายเลขด้านหน้าโดเมนเท่านั้น ระบบ Shell ของลินุกซ์จะนำเราไปยังไดเร็คทอรี่ของโดเมนให้อัตโนมัติ


โดยที่เขียนสคริปต์เพิ่มในไฟล์ .bashrc ดังนี้


หลังจากเีขียนไฟล์เสร็จเรียบร้อยแล้ว ให้ Logout ออกจากระบบก่อน แล้วจึง Login เข้าระบบอีกครั้ง หากสคริปต์ทำงานถูกต้อง ท่านสามารถพิมพ์ คำสั่ง g และระบุหมายเลขโดเมน จะเพียงเท่านี้ระบบปฏิบัติการจะย้ายท่านไปยังไดเร็คทอรี่ที่ท่านต้องการ โดยไม่ต้องพิมพ์คำสั่งให้เมื่อยมือครับ

ปล. เทคนิคนี้สำหรับคนไม่ชอบพิมพ์คำสั่งลินุกซ์ซ้ำ ๆ และยาว  ๆ ครับ

คำสั่งเกี่ยวข้อง : bashrc, bash, programming , linux , unix shell, shell script

เทคนิคการนับจำนวนคนที่กำลังออนไลน์ภายในเว็บไซต์ จากการนับ Session ด้วย php

เทคนิคนี้เป็นการตรวจสอบจำนวนคนที่กำลังออนไลน์อยู่ในเว็บของเรา เป็นวิธีที่ง่าย หลักการคือ นับจำนวน ไฟล์ที่อยู่ในโฟลเดอร์ /tmp ของระบบปฏิบัติการ (เฉพาะลินุกซ์เท่านั้น วินโดวส์ไม่เกี่ยว)

เขียนสคริปต์ดังนี้ และเก็บไว้บนเซิรฟเวอร์ บันทึกไฟล์ชื่อ /{www_root}/temp/online.php

<?php
$filename = glob(“/tmp/sess*”);
echo “จำนวนคนออนไลน์ “, count($filename);
?>


อธิบายโค๊ด


<?php คำสั่งเปิดสคริปต์ php
$filename คือชื่อตัวแปรสำหรับเก็บรายชื่อไฟล์
glob() เป็นคำสั่งในการอ่านไฟล์ ตัวอย่างนี้อ่านไฟล์ /tmp/sess* ชื่อไฟล์ขึ้นต้นด้วย sess หมายถึงจำนวน session ที่กำลังเปิดขณะนั้น
echo คือ คำสั่งแสดงข้อความบนจอภาพ
?> คำสั่งปิดสคริปต์ php




ผลลัพธ์



คำสั่งเกี่ยวข้อง : glob , php , session , web programming

เทคนิคการใช้ netstat นับจำนวน connection ของแต่ละ IP ที่เชื่อมต่อกับเซิร์ฟเวอร์

เทคนิคการใช้ netstat นับจำนวน connection ของแต่ละ IP ที่เชื่อมต่อกับเซิร์ฟเวอร์

เทคนิคนี้เป็นการนับจำนวน connection ที่เกิดขึ้นของแต่ละ IP ที่กำลังเชื่อมต่อกับเครื่องเซิร์ฟเวอร์ โดยปกติไม่ควรเกิน 10-20 ครั้งต่อ 1 IP ถ้าเกินแสดงว่าเซิร์ฟเวอร์ของเราอาจกำลังถูกคนอื่นเขามาโจมตี หรืออาจมีการดูดหน้าเว็บของเราไปเป็นจำนวนมาก เราอาจจะบล็อก IP นั้นไปได้

#netstat -ntu | grep ESTABLISHED | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr

ผลลัพธ์

คำสั่งเกี่ยวข้อง : netstat -u,netstat -ban,netstat -tulpn,netstat -g,netstat -ao,netstat -k,netstat -d,netstat -f,netstat -m,netstat -vb,netstat -t,netstat -na,netstat -ano,netstat -s,netstat -i,netstat -b,netstat -r,netstat -in,netstat -a -o,netstat -a -b,netstat -a -n,netstat -n -a,netstat -a -n -o,netstat commands,netstat command,command netstat,netstat -a command,netstat linux,linux netstat,netstat in linux,netstat on linux,netstat for linux,linux netstat -a,window netstat,win netstat,netstat ports,netstat windows,windows netstat,netstat for windows,netstat in windows,netstat -a windows,x-netstat,netstat x,netstat port,port netstat,netstat connections,ip netstat,netstat ip,x-netstat professional

เทคนิคการนับจำนวนไฟล์ใน linux ด้วยคำสั่ง ls และ wc

เทคนิคการนับจำนวนไฟล์ใน linux ด้วยคำสั่ง ls และ wc

#ls -al | wc

ตัวอย่างผลลัพธ์

คำสั่ง ls เป็นการแสดงรายชื่อไฟล์
-al เป็นการแสดงทุกไฟล์
| เรียกว่า pipe เป็นการส่งผลลัพธ์ออกมา
wc เป็นคำสั่ง word count
-l คือ นับ line (บรรทัด)

คำสั่งเกี่ยวข้อง : linux ls -ld,linux ls -ltr,linux ls -a,linux ls commands,linux ls command,linux ls -l command,linux ls by date,linux ls date,linux ls directories,linux ls size,linux ls sort,linux ls colors,linux ls options,linux ls directory,linux ls color,linux ls man,linux ls sort by date,linux ls output,linux ls full path,linux ls hidden,linux ls path,linux ls directories only,linux ls only directories,linux ls recursive,linux ls file size,linux ls permissions,linux ls command options,linux ls page by page,linux ls page,linux ls sort by size,linux ls sort size,linux ls format,linux ls count,linux ls examples,linux ls source,linux ls tree,linux ls order by date,linux ls wildcard,linux ls files only,linux ls source code,linux ls more,linux ls count files,linux ls help,linux ls subdirectories,linux ls filter,linux ls pause,linux ls command output,linux ls number of files,linux ls command

เทคนิคการตรวจสอบจำนวนการเชื่อมต่อกับเซอร์เวอร์ของเราในขณะนั้น ๆ บน Linux

คำสั่ง netstat เป็นการตรวจสอบการเชื่อมต่อกับเซอร์เวอร์ของเราในขณะนั้น ๆ ว่ามีจำนวนเท่าไร มาจากไอพีอะไร

ตัวอย่างการใช้งาน
#netstat -ntu | grep SYN_RECV | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr

ผลลัพธ์
netstat

คำสำคัญ : netstat command,netstat windows,netstat linux,linux netstat,netstat port,netstat close_wait,man netstat,netstat live,windows netstat,netstat command in windows,netstat download,x-netstat,cmd netstat,netstat commands,netstat listening ports,netstat unix,netstat ip,netstat pid,unix netstat,analogx netstat live,netstat syn_sent,netstat agent,close_wait netstat,netstat udp,syn_sent netstat,netstat tutorial,netstat listening,ip netstat,netstat gui,netstat process,using netstat,netstat x,netstat ubuntu,netstat windows 7,dos netstat,netstat help,netstat ports,command netstat,netstat command in unix,aix netstat,download netstat,netstat port 80,x-netstat professional 5.5,netstat output,netstat man,netstat process id,netstat foreign address,netstat flags,netstat find