เว็บบล๊อกผลงาน (Web Blog) นักศึกษาระดับปริญญาโท คณะวิทยาศาสตร์และเทคโนโลยี สาขาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยธรรมศาสตร์

วันพฤหัสบดีที่ 18 มีนาคม พ.ศ. 2553

โครงสร้าง และตัวอย่างคำสั่งในการใช้งาน

โครงสร้าง


ถ้ามองแค่ Master กับ Slave ก็จะมีแค่นี้นะจ๊ะ



แต่สังเกตว่า IP ของ Master กับ Slave อยู่กันคนละวง จริง ๆ แล้วมันมี Gateway คอยเชื่อมอยู่



ตัวอย่างคำสั่งปกติทั่วไป
เผื่อเพื่อนๆ สนใจลองฝึกเล่นกันดูครับ สำหรับใครที่ใช้ Unix / Linx ไม่คล่อง ฏ็สามารถลองเล่นดูได้ ไม่ยากครับ
  • finger (ดูว่ามีใคร online อยู่บ้าง)
  • finger mongkon
  • finger mongkon chaturapat jutamas
  • w (ดูว่าใครทำอะไร)
  • w mongkon
  • w mongkon chaturapat jutamas
  • whoami (who am i ฉันคือใคร)
  • write mongkon (ส่งข้อความถึง user ชื่อ mongkon กด ctrl+d เมื่อพิมพ์ข้อความเสร็จ)
  • mesg n (ถ้าไม่ต้องการรับข้อความจากคนอื่น สังเกตเวลา finger จะมีดอกจัน อยู่ด้านหลังชื่อ)
  • mesg y (ถ้าต้องการรับข้อความจากคนอื่น)
  • ifconfig (ดูข้อมูลอุปกรณ์เครือข่าย)
  • ifconfig eth0 (ดูข้อมูลของการ์ดแลนใบที่ 0)
  • echo hahaha (แสดงข้อความ hahaha)
  • ps (ตรวจสอบ process)
  • ps x
  • ps aux
  • top (ตรวจสอบ process แบบ real-time กด q เพื่อออกจากโปรแกรม)
  • touch hello.txt (สร้างไฟล์เปล่า ๆ ชื่อ hello.txt)
  • hostname (ดูชื่อเครื่อง)
  • pwd (print working directory)
  • uname (print system information)
  • uname -a
  • uname -r
  • history (ดูคำสั่งที่เราพิมพ์ไปก่อนหน้านี้)
  • last (ดูว่ามีใครเคย login เข้ามาใช้งานบ้าง ตอนไหน)
  • cat /etc/hosts (แสดงข้อมูลในไฟล์ /etc/hosts ออกทางหน้าจอ)

- ไฟล์อื่น ๆ
- /proc/cpuinfo (ข้อมูล cpu)
- /proc/meminfo (ข้อมูล ram)
- /etc/sysconfig/network (ข้อมูล network)
- /etc/sysconfig/network-scripts/ifcfg-eth0 (ข้อมูลการ์แลนใบที่ 0)
- /etc/redhat-release (เวอร์ชั่นของ os)

  • wc /etc/hosts (นับตัวอักษร นับคำ นับบรรทัด ไฟล์ /etc/hosts)
  • date (แสดงวันเวลา)
  • cal (แสดงปฏิทินเดือนปัจจุบัน)
  • cal 1 2000 (เดือนมกราคม ปี ค.ศ. 2000)
  • cal 2009 (ทุกเดือน ในปี 2009)
  • grep slave02 /etc/hosts (แสดงข้อมูลในไฟล์ /etc/hosts เฉพาะบรรทัดที่มีคำว่า slave02)
ls, cd, mkdir, rmdir, rm (ทดลองเล่นกันดูครับ)
  • Pipe (เครื่องหมาย " ") เอา Output ของคำสั่งก่อนหน้า (ซ้าย) มาเป็น Input คำสั่งถัดไป (ขวา)
  • cat /etc/hosts
  • write mongkon (ส่งข้อความไปให้ mongkon โดยข้อความที่ส่งไปคือเนื้อหาของไฟล์ /etc/hosts)
  • cat /proc/meminfo
  • more (แสดงเนื้อหาในไฟล์ /proc/meminfo คราวละ 1 หน้า กด space ไปหน้าถัดไป กด q ออก)

  • ifconfig
  • wc (นับคำ <-- ที่เกิดจากคำสั่ง ifconfig)
  • cat /etc/hosts
  • grep master (แสดงข้อความเฉพาะบรรทัดที่มีคำว่า master จากไฟล์ /etc/hosts)

  • cat /etc/hosts
  • grep master
  • wc (นับคำ <-- เฉพาะบรรทัดที่มีคำว่า master <-- จากไฟล์ /etc/hosts)


Redirect สังเกตทิศทาง
  • < ขวาใส่ซ้าย
  • > ซ้ายใส่ขวา
  • >> ซ้ายต่อท้ายขวา

  • ls -alh (แสดงรายชื่อไฟล์ ปกติ ออกทางหน้าจอ)
  • ls -alh > list_output.txt (เอารายชื่อไฟล์ เก็บไฟล์ในไฟล์ชื่อ list_output.txt ถ้ามีไฟล์นี้อยู่แล้ว จะเท่ากับลบของเก่าแล้วสร้างใหม่)
  • ls -alh >> list_output.txt (เอาไปต่อท้ายไฟล์ list_output.txt ถ้าไม่มีไฟล์นี้อยู่ จะสร้างใหม่ เทคนิคนี้ไว้สำหรับสร้าง log ไฟล์)
  • write mongkon < /etc/hosts (ส่งข้อความให้ mongkon โดยข้อความที่ส่งไปคือเนื้อหาของไฟล์ /etc/hosts)


Remote Login & File Transfer
ระหว่าง Master & Slave สำหรับ Server ของเรา
  • ssh slave01 (ปกติคือคำสั่ง login ไปทำงานบนเครื่อง slave01)
  • ssh slave01 ls -alh (ส่งคำส่ง ls -alh ไปทำงานบน ls -alh ผ่านโปรโตคอล SSH ผลลัพธ์แสดง ณ เครื่องที่เรากำลังใช้งานอยู่)

  • ssh slave01 hostname
  • ssh slave02 hostname
  • ssh slave03 hostname
  • ssh slave04 hostname

  • scp [ต้นทาง] [ปลายทาง] (คำสั่ง copy ไฟล์จากต้นทางไปปลายทาง)
  • scp hello.c slave03: (copy ไฟล์ hello.c ไปยังเครื่อง slave03 เก็บไว้ที่ home dir)
  • scp -r work slave03: (copy dir ชื่อ work และทุกอย่างข้างใน ไปยังเครื่อง slave03 เก็บไว้ที่ home)
  • scp slave02:twophase.c . (copy ไฟล์ชื่อ twophase.c ที่อยู่บนเครื่อง slave02 มายัง dir ปัจจุบัน บนเครื่องที่กำลังใช้งานอยู่)
  • scp -r slave02:mywork . (ทำนองเดียวกัน copy dir ชื่อ mywork จากเครื่อง slave02 มายังเครื่องที่กำลังใช้งานอยู่)
Backtick

  • เครื่องหมาย ` ` ใช้คร่อมคำสั่ง
  • ผลลัพธ์ที่ได้คือ string ของผลลัพธ์ที่ได้จากคำสั่งนั้น
  • `hostname` (ผลลัพธ์คือ string ชื่อเครื่อง)
  • `whoami` (string username)

ตัวอย่างคำสั่ง

  • echo hostname value = `hostname`
  • ทำงานหลายคำสั่งต่อเนื่องกันใช้เครื่องหมาย ; (semi colon) คั่นระหว่างคำสั่ง เช่น ls; w; finger; hostname (ผลลัพธ์ก็ตามลำดับ)

ssh slave01 hostname; ssh slave02 hostname; ssh slave03 hostname; ssh slave04 hostname
(สังเกตผลลัพธ์)


ทดลองส่งอย่างอื่นไปแทนคำสั่ง hostname ดูบ้าง เช่น
  • w
  • uptime
  • echo hello, this is message from \`hostname\`

Shell Script
เพื่อความสะดวก ได้เตรียมคำสั่ง สำหรับ
  • ส่งคำสั่งจาก Master ไปทำงานทุก ๆ Slave
  • ส่งไฟล์/ไดเร็กทอรีจาก Master ไปยังทุก ๆ Slave
คำสั่งที่เตรียมไว้ให้ คือ

  • cloud-fork [คำสั่ง]
  • cloud-copy [ไฟล์หรือไดเร็กทอรี]

ผิดพลาดประการใด แจ้งให้ทราบด้วยนะครับ หวังเป็นอย่างยืฃิ่งว่าน่าจะเป็นประโยชน์กับเพื่อนๆ พี่ๆ น้องๆอยู่บ้าง มีความสุขและสนุกกับการใช้งาน Unix / Linux นะครับ ^^

credit cs.bong.nine

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

คลังบทความของบล็อก

favourites