วันจันทร์ที่ 19 ธันวาคม พ.ศ. 2559

การแสดง ค่า mac address และ การตรวจสอบว่า ip + mac ใด active อยู่บ้าง

arp -n  และ ip neigh

arp -n  เป็นการแสดง  arp หรือ
Address Resolution Protocol 

คือการ ส่ง คำขอไปยัง เป้าหมายเพื่อให้ได้ข้อมูล กลับมา ซึ่งข้อมูลนั้น คือ macaddress  ของ ip address ตัวนั้นเอง


จากรูปด้านบนนี้ มี 2 ฝั่ง 
ฝั่ง ซ้าย จะใช้คำสั่ง arp -n เพื่อแสดง รายละเอียด ของ ip และ mac พร้อมทั้ง interface ที่เชื่อมอยู่บน ip + mac นั้นๆ  ซึ่ง เจ้าตัว arp -n (หมายถึง แสดงพร้อมกับไม่เอา ชื่อ เอาเพียงแค่ ip และ mac เท่านั้น  -n = -name )
จะเห็นว่า ฝั่ง ซ้าย จะแสดงออกมาเยอะ เลย  ลองมาดูฝั่ง ขวากันบ้าง

ฝั่ง ขวาจะใช้ คำสั่ง ว่า   ip neigh  คำว่า neigh ย่อมาจาก neighbor  ซึ่งก็คือ ip ที่อยู่ ใกล้เคียง ระแหวกเดียวกัน คำสั่งนี้ จะแสดง ออกมา ดังในรูป
ซึ่งจะมี การระบุ บอกด้วยว่าเป็น  STALE , REACHABLE , DELAY
แปลกันตรงๆ ดังนี้
STALE ก็คือ ไม่สด  หรือ  ไม่ได้ใช้งาน แล้ว
DELAY ก็คือ ล่าช้า
REACHABLE ก็คือ  ยังคงใช้งาน อยู่ … มีการเปิดใช้งานอยู่จริง
ทีนี้ เราก็ได้รู้ละว่า ip ใดในระบบ ยังคงเปิดใช้งานอยู่ จริงน่ะครับจะสังเกตุ ได้ว่า ตัว arp -n อาจจะยังไม่ค่อยอัพเดต หรือ อาจจะยังช้ากว่า การใช้คำสั่ง ip neigh ละนะ
มาทดลองงานกันนะครับ เราจะใช้ คำสั่ง นี้ กัน
เพื่อ ตรวจสอบดูว่า เครื่องใด สถานะหยุดนิ่ง กันบ้าง เพราะ อาศัยเจ้า arp -n รู้สึกจะ ไม่ได้เรื่องกันละ
คำสั่งคือ
ip neigh | grep -v “REACHABLE”  หรือ  ต้องการ แสดงรายละเอียด ของ ip ข้างเคียง และ ไม่เอา บรรทัดที่มีคำว่า REACHABLE นั่นเอง

ทำให้ เรารู้ได้ว่า ip ใดที่แสดงออกมานั้น มีสภาวะ หยุดนิ่งไม่เคลื่อนไหว

จากนั้น มาทดสอบ กันง่าย ๆ โดยการ ส่ง icmp ( ปิงไปยัง ip นั้นกัน )

เมื่อทำการปิง แล้ว ทดสอบ พิมพ์ ip neigh | grep -iw 192.168.103.13
คำสั่งนี้ เอาไว้ ตรวจสอบ บรรทัด ที่มี คำว่า 192.168.103.13  เท่านั้น
จะเห็นได้ว่า มัน เป็น REACHABLE แล้ว ( หรือ มีการรับส่งข้อมูลกันละ )
สรุป จะให้ เข้าใจความหมายถึง arp -n และ ใช้ ip neigh มา ช่วย ตรวจสอบอย่างง่ายๆๆ พร้อมทั้ง ยังได้ คำสั่ง นี้
grep  โดย option แบบง่าย ๆมีดังต่อไปนี้

1.  -v  หมายถึง  ไม่แสดง บรรทัดที่มี ” ข้อความนั้น ”
2.   -iw  หมายถึง  แสดง เฉพาะ  ” ข้อความนั้น ”
ในกรณีไม่ใส่ option มันจะ แสดงรายละเอียด  ภายในข้อความนั้นเหมือนกัน แต่มีความแตกต่างกันนิดนึงเช่น
ถ้า ใน list มีข้อความ ซ้ำซ้อนกันเช่น
10
103
104
เวลาทำใช้คำสั่ง
echo “10 103 104” | grep 10
และ
echo “10 103 104” | grep -iw 10


สังเกตุ ดู ดีดี ถ้า เราใส่ option -iw  มันจะ เอาเฉพาะ ที่ข้อมูลที่เราใส่เอาไว้ แค่นั้น  แต่ถ้าไม่ใส่ มันจะ เอา ข้างเคียงมาออกด้วยครับผม

วันอังคารที่ 13 ธันวาคม พ.ศ. 2559

ดู Public IP โดยใช้ command line ใน Linux

โดยปกติแล้ว เวลาเราจะตรวจสอบว่าเครื่องเราใช้ Public IP  เป็นอะไรในการเชื่อมต่อ internet เราต้องเข้าไปตรวจสอบในเว็บไซด์อย่าง whatismyip.com ทีนี้ถ้าเป็นการเช็คจาก server ล่ะเราต้องทำไง

- เปิด Terminal application ขึ้นมา
ใช้คำสั่ง dig command โดยกำหนด dig ไปที่ myip.opendns.com โดยกำหนด dns server เป็น resolver1.opendns.com(ก๊อปไปเลย)

dig +short myip.opendns.com @resolver1.opendns.com

                                           หรือ

dig txt +short o-o.myaddr.l.google.com @ns1.google.com


วันศุกร์ที่ 2 ธันวาคม พ.ศ. 2559

YAML หรือ YML คือ ?

ทำความรู้จัก YAML ไฟล์ นามสกุล .yml

YAML หรือ YML เป็น ภาษา Markup ชนิดหนึ่ง

Markup คืออะไร
Markup หรือ markup language คือ ภาษาคอมพิวเตอร์ ซึ่งเป็นภาษาที่แสดงข้อมูล โครงสร้าง รูปแบบ ตลอดจนข้อมูลอื่นๆ ที่เกี่ยวข้องไว้ด้วยกัน ซึ่งส่วนนี้เรียกว่า มาร์กอัป ส่วนมากจะพบในรูปของ tag  ตัวอย่างภาษามาร์กอัป เช่น GML, SGML, HTML, XML เป็นต้น


ประโยชน์ ของ YAML ไว้สำหรับแลกเปลี่ยนข้อมูลกัน ระหว่างโปรแกรมมิ่งภาษาต่างๆ คล้ายๆ JSON หรือ XML แต่ YAML เป็นภาษาที่สั้นและเข้าใจง่ายกว่า ภาษา Markup อื่นๆ โดยตัวภาษาเองไม่มี tag ที่เข้ามาเกี่ยวข้อง แต่จะใช้ การเว้นวรรคในการแยกข้อมูล

ตัวอย่างโค้ด .yml จาก phpBB3.1
services:
    notification.type_collection:
        class: phpbb\di\service_collection
        arguments:
            - @service_container
        tags:
            - { name: service_collection, tag: notification.type }

นอกจาก การเว้นวรรคแล้ว เรายังเห็น สัญลักษณ์ อื่นๆ เช่น -,{}, : 
โปรแกรมที่มีการนำ YAML ไปใช้เช่น phpBB เวอร์ชั่น 3.1 ใช้ในการตั้งค่า config ของระบบ

phpBB คืออะไร
พีเอชพีบีบี (phpBB ย่อจาก php Bulletin Board)
เป็นโปรแกรมระบบกระดานสนทนาบนอินเทอร์เน็ตแบบโอเพนซอร์ส ทำงานด้วยภาษาพีเอชพี ควบคู่กับระบบฐานข้อมูล โดยรับรองการทำงานของฐานข้อมูลหลากหลายชนิด ได้แก่ MySQL, SQL Server, PostgreSQL หรือ Access (ร่วมกับ ODBC) ด้วยความแพร่หลายของภาษาพีเอชพีและระบบฐานข้อมูล MySQL รวมถึงการติดตั้งที่ง่าย และไม่ต้องเสียค่าใช้จ่ายในการจัดหา ทำให้ phpBB ได้รับความนิยมแพร่หลายในอินเทอร์เน็ต

( ย่อจาก php Bulletin Board) เป็นโปรแกรมระบบบนแบบ ทำงานด้วย ควบคู่กับ โดยรับรองการทำงานของฐานข้อมูลหลากหลายชนิด ได้แก่ , , หรือ (ร่วมกับ ) ด้วยความแพร่หลายของภาษาพีเอชพีและระบบฐานข้อมูล MySQL รวมถึงการติดตั้งที่ง่าย และไม่ต้องเสียค่าใช้จ่ายในการจัดหา ทำให้ phpBB ได้รับความนิยมแพร่หลายในอินเทอร์เน็ต
ความสามารถเด่นของ phpBB ได้แก่ ระบบหมวดหมู่ กระดานส่วนตัว ระบบค้นหา การส่งข้อความด้วยรูปแบบพิเศษและอีโมติคอน การสร้างโพล ระบบสมาชิกและการกำหนดสิทธิ์ผู้ใช้ รวมถึงระบบจัดการสำหรับดูแลรักษากระดานสนทนา ผู้ดูแลระบบสามารถปรับแต่งหน้าตากระดานได้โดยง่าย โดยดัดแปลงโค้ดภาษาพีเอชพี หรือ Cascading Style Sheets (CSS) โดยโค้ดจากโปรแกรมเป็นไปตามมาตรฐาน XHTML 1.0 หรือ HTML 4.01 ของ W3C นอกจากนี้ยังมีโปรแกรมเสริมเพื่อเพิ่มความสามารถใหม่

OpenERP (หรือชื่อใหม่คือ ODoo) ใช้สำหรับทำข้อมูลทดสอบ และ test ข้อมูล และ ไว้ผังโค้ด Python ลงไปในไฟล์ .yml

นอกจากนั้นยังถูกใช้เป็นส่วนสำคัญ ของ php Framework ชื่อดังอย่าง Symfony อีกด้วย 
ทางฝั่ง Ruby on Rails ก็ได้นำ YAML มาใช้เหมือนกัน 
และ ภาษาต่างๆ ก็จะมี Library สำหรับ จัดการข้อมูลให้อยู่ในรูปแบบ YAML อยู่แล้ว
เช่น

วันอังคารที่ 29 พฤศจิกายน พ.ศ. 2559

ใช้คำสั่ง screen ใน linux อย่างไร?

ใช้คำสั่ง screen ใน linux อย่างไร?

screen คือคำสั่งในการรัน command linux ต่างๆ แบบเปิดทิ้งไว้ แม้เน็ตจะหลุด คอมจะพัง เราก็ยังสามารถ remote มาเปิด session เดิมได้โดยที่มันไม่หายไปดื้อๆ เหมาะอย่างยิ่งสำหรับคนเน็ตไม่เสถียร มีวิธีใช้งานดังนี้ เช่น
screen mysqldump -uroot -pxxx > backup.sql
วิธีการใช้การก็เพียงแค่พิมพ์คำว่า screen นำหน้าคำสั่งที่เราต้องการ เช่น mysqldump เรารู้ว่ามันนานมาก เลยสั่ง screen ไว้ หากกด CTRL+A คำสั่งเริ่มต้นก่อนจะป้อนคำสั่งอื่นๆ ของ screen ไม่อย่างนั้นจะยังเป็นการสั่งไปยัง process ที่ทำงานภายใน screen ไม่ใช่ตัว screen เช่นเดิม แล้วจะมีคำสั่งต่อดังนี้
d – ออกจากคำสั่ง screen โดยจะเข้าไปดูต่อวันหลังได้
[ - เข้าสู่ copy mode ตรงนี้เมื่อเข้าแล้วจะมีคำสั่งดังต่อไปนี้ (ส่วนใหญ่แทบจะลอกจาก vi มาทั้งดุ้น)
u - ออกจาก copy mode
h - ขยับ cursor ไปทางซ้าย
j - ขยับ cursor ลงข้างล่าง
k - ขยับ cursor ขึ้น
l - ขยับ cursor ลง
G - ขยับ cursor ไปที่ line ที่กำหนด
CTRL+u - เลื่อนขึ้นครึ่งหน้า
CTRL+d - เลื่อนลงครึ่งหน้า
CTRL+b - เลื่อนขึ้นหนึ่งหน้า
CTRL+f - เลื่อนลงหนึ่งหน้า
/ - search จาก cursor ลงไปข้างล่าง (กด n เพื่อ search next)
? - search จาก cursor ขึ้นข้างบน (กด n เพื่อ search next)
และหากกด d เพื่อออกจากคำสั่ง screen ไปแล้ว หรือเน็ตหลุดระหว่าง run screen เราสามารถพิมพ์ "screen -r" เพื่อกลับไปยัง session เดิมที่รันไว้ หรือหากมีหลาย session จะมีข้อความแสดงเช่นดังนี้


There are several suitable screens on:

24146.pts-5.node1       (04/30/13 23:48:40)     (Detached)

23909.pts-5.node1       (04/30/13 23:33:22)     (Detached)

23817.pts-5.node1       (04/30/13 23:27:58)     (Detached)

23647.pts-0.node1       (04/30/13 23:21:36)     (Attached)

Type "screen [-d] -r [pid.]tty.host” to resume one of them.

เราอยากเข้าอันไหนก็พิมพ์ตามที่เค้าบอก เช่น "screen -r 23817.pts-5.node1" ก็จะกลับ session ที่ต้องการได้