Archive for the ‘Linux’ Category

การใช้ crontab ตั้งเวลาให้ Server(Linux/Unix) ทำงาน

Thursday, July 22nd, 2010 |

คำสั่ง crontab
คำสั่ง crontab เป็นคำสั่งในการทำ schedule ในการสั่งโปรแกรม หรือ script ต่างๆ ทำงานตามเวลาที่กำหนด บนระบบ UNIX/LINUX
ซึ่งอำนวยความสะดวกได้มากเลยที่เดียว งานบางอย่างที่จำเป็นต้องทำซ้ำๆในเวลาเดียวกัน ไม่ว่าจะทุกวัน ทุกสัปดาห์ หรือ ทุกเดือน

การใช้งาน crontab
คำสั่งและ option ของ crontab มีดังนี้

crontab filename          การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น
crontab -e                  แก้ไข crontab ปัจจุบัน
crontab -l                   ดูคำสั่ง crontab ทั้งหมดที่มีอยู่
crontab -r                  ลบคำสั่ง crontab ที่มีทั้งหมด
crontab -u user           เป็นคำสั่งของผู้ดูแลระบบเท่านั้น(administrators) เพื่อใช้ดู  แก้ไข ลบ crontab ของ user แต่ล่ะคน

เมื่อเรียกคำสั่งตามข้างบนแล้ว crontab จะเข้าสู่ระบบการ กำหนด หรือ แก้ไข ซึ่งการ กำหนด หรือแก้ไขนี้ จะเหมือนกับการใช้งาน vi ครับ
ถ้าใครเคยใช้งาน vi แล้วก็จะไม่มีปัญหาอะไร ถ้าไม่เคยใช้ ก็ดูคำสั่งพื้นฐานของ vi ด้านล่างนะครับ
เมื่อเรียกโปรแกรม crontab ให้ทำงานและขณะอยู่ในโปรแกรม เราสามารถกดคีย์ ดังต่อไปนี้เพื่อ

Esc       เพื่อออกมาสู่โหมดปกติ
i           เพื่อการเพิ่ม คำสั่ง ข้อความ เข้าไปใหม่
x          ลบ ตัวอักษรที่ cursor  วางอยู่ ทีละอักษร ในโหมดปกติ
dd        ลบบรรทัด ทั้งบรรทัด ที่ cursor วางอยู่ทีละแถว ในโหมดปกติ
:q!        ออกโดยไม่ต้องแก้ไขอะไร
:wq!      เก็บบันทึกข้อความที่แก้ไขแล้วออกจากโปรแกรม
คำสั่งเหล่านี้เป็นแค่บางส่วนเท่านั้น แต่ก็พอใช้งานคำสั่ง crontab แล้วล่ะครับ ถ้าใครอยากได้มากกว่านี้ต้องศึกษาเพิ่มเอาอีกที

การกำหนดให้ crontab ทำงาน

format ของคำสั่ง crontab มีทั้งหมด 6 fields เป็นดังบรรทัดข้างล่าง

minute(s) hour(s) day(s) month(s) weekday(s) command(s)

fields 1-5 เป็นการกำหนดเวลา และ field ที่ 6 เป็นการกำหนดคำสั่ง ดังความหมายของแต่ละ fields ดังต่อไปนี้

Field มีค่า รายละเอียด
minute                 0-59         เวลาเป็นนาที จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
hour                    0-23         เวลาเป็นชั่วโมง จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
day                     1-31         เวลาเป็นวัน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
month                 1-12         เวลาเป็นเดือน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
weekday              0-6          วันของแต่ละสัปดาห์ มีค่าดังนี้ (อาทิตย์ = 0, จันทร์ = 1, อังคาร = 2, พุธ = 3, พฤหัส = 4, ศุกร์ = 5 และ เสาร์ = 6)
command             คำสั่ง         เราสามารถกำหนดคำสั่งได้มากมาย รวมทั้ง script ต่างๆ ตามที่เราต้องการ

ตัวอย่างการกำหนด crontab
การ เพิ่ม crontab โดยเรียกใช้คำสั่ง crontab -e เมื่อเข้าสู่โปรแกรมแล้ว กด i เพื่อเพิ่ม คำสั่งดังตัวอย่างด้านล่างนี้เข้าไป แล้วทำการบันทึก
แล้วออกมาโดยกด Esc แล้วกด :wq!

0 8 * * * /usr/bin/mplayer /home/me/music/thai.mp3

จากคำสั่งด้านบนจะเป็นการสั่งให้โปรแกรม mplayer เล่นเพลง thai.mp3 ตอน 08:00 น. ของทุกๆวัน

0 0 * * 1 /home/me/getlogs.pl

จากคำสั่งด้านบน จะทำการ Run script getlogs.pl ที่ path /home/me ทุกวันจันทร์ ทุกๆเดือน ตอนเที่ยงคืน

0 0 * * 1,5 /home/me/getlogs.pl
คำ สั่งนี้เหมือนคำสั่งด้านบนครับ แต่จะเพิ่มการทำงานในวันศุกร์ด้วย ซึ่งเราสามารถใช้ “,” คั่นไปเรื่อยๆได้ เพื่อที่จะกำหนดเพิ่มให้แต่ล่ะ fields หรือใช้ “*”
เพื่อการกำหนดเป็นทั้งหมด(หมายความว่า หากที่ field ชั่วโมง เป็น * ก็หมายความว่าต้องทำงานทุกชั่วโมง)

คำสั่งเพิ่มเติมที่ควรรู้
man crontab
man cron
man at
man batch

http://www.thaiasteriskclub.com/index.php?topic=117.0

เริ่มต้นการใช้งาน UNIX

Saturday, January 30th, 2010 |

ในที่นี้จะกำหนดให้เชลล์พร้อมเป็น $

NOTE : Unix จะถือว่าตัวเล็ก ตัวใหญ่ มีความหมายต่างกัน เช่น ls , LS

ระบบปฏิบัติการยูนิกช์ ประกอบ 3ส่วน

  1. เคอร์แนล,2. เชลล์,3. โปรแกรม
  • เคอร์แนล
    เป็นศูนย์กลางของระบบปฏิบัติการ unix มันมีหน้าที่จัดสรรทรัพยากรระบบ จัดเก็บข้อมูล บริหารหน่วยความจำ การติดต่อสื่อสาร และเนื่องมาจากเคอเนลล์กับเชลล์ ทำงานร่วมกัน
    เช่น
    $ rm myfile
    (เป็นคำสั่งลบไฟล์ที่ชื่อ myfile ออก)
    เชลล์จะไปค้นหาไฟล์ แล้วจึงส่งไปยังเคอร์แนลเพื่อระบบจะไป rm บนไฟล์นั้น เมิ่อจบกระบวนการแล้วมันยังคงทำงานอยู่ เชลล์จะกลับไปที่พร้อม $ เพื่อรอรับคำลั่งต่อไป
  • ชลล์
    เป็นเสมือนตัวกลางระหว่างผู้ใช้กับเคอร์แนล เมื่อผู้ใช้ login เข้ามาระบบจะต้องตรวจสอบ user และ password แล้วจะเรียกเชลล์เพื่อแปลเป็นภาษาเครื่อง หริอเรียกว่า command line interpreter (CGI)
    คุณสมบัติ
  • ผู้ใชัที่ชำนาญ สามารถสร้างเชลล์ส่วนตัวได้
  • ผู้ใช้สามารถใช้เชลล์ที่ต่างกันบนเคริ่องเดียวกันได้
  • FILES AND PROCESS

Files เป็นข้อมูลที่ถูกสร้างจากผู้ใช้ จาก text editor, running compilers เป็นต้น เช่น

  • เป็นเอกสารรายงาน
  • เป็นต้นฉบับของโปรแกรมที่ถูกเขียนจากภาษาระดับสูง
  • ไดเรกทอรี จะเก็บไฟล์ต่างๆไว้รวมกันได้ หรืออยู่ใน subdirectory และไฟล์ธรรมดาได้

ใช้งาน vi editor เบื้องต้น

Saturday, January 30th, 2010 |

ใช้งาน vi editor เบื้องต้น

สำหรับคนที่พัฒนาระบบงานบน Linux หรือ Unix และเป็นผู้ที่ไม่ชอบย้ายมือออกจากคีย์บอร์ดนั้น ขอแนะนำให้ใ้ช้ Vi Editor แล้วท่านจะไม่ผิดหวัง เนื่องจาก vi นั้นถูกออกแบบมาให้ใช้งาน โดยที่ไม่จำเป็นต้องเอามือออกจากคีย์บอร์ดเลย ไม่เพียงเท่านั้น 10 นิ้วของท่าน จะไม่หลุดออกแป้น a s d f space j k l : เลย แม้แต่ลูกศรขึ้นลง ก็ไม่ได้ใช้ ตัวเลข ก็ไม่ได้ใช้ อยากรู้แล้วใช้ไหมครับ ว่ามันทำงานอย่างไร

vi ประกอบด้วย 2 Mode คือ

  1. Mode command ไว้สำหรับใช้คำสั่ง Mode นี้ เพียงกด Esc ก็จะเข้าสู่ Mode command อัตโนมัติ (คิดอะไรไม่ออก กด Esc ลูกเดียว)
  2. Mode การพิมพ์ ไว้สำหรับเพิ่มข้อมูล เลื่อน Cursor ต่าง ๆ แต่เราต้องใช้ Command ก่อน เช่น หากต้องการเพิ่มอักษร ต้องสั่ง I (Insert) เสียก่อน และเมื่อพิมพ์จะเป็นการแทรกข้อความอัตโนมัติ

ผมขอแนะนำเทคนิคที่ใช้กันบ่อย ๆ นะครับ

vi-editor

รูปแสดงแผนผังการใช้งาน VI Editor แบบไม่ยกนิ้วกันเลยครับผม

การเลื่อนทิศทาง (Motivation)
สังเกตุนะครับ มือจะไม่ขยับไปใช้ ลูกศร ขึ้นลง เลย ทำให้ทำงานได้เร็วขึ้น

  • h = เลื่อนไปทางซ้าย
  • l = เลื่อนไปทางขวา
  • j = เลื่อนลง
  • k = เลื่อนขึ้น
  • หาก พิมพ์ 8l = เลื่อนไปทางขวา 8 ตัวอักษร
  • w , W = เลื่อนไปทางขวา 1 คำ เช่น this is test เมื่อกด w จะเลื่อน Cursor ไป 1 word Cursor จะไปยืนอยู่ที่ this is test เป็นต้น
  • { = เลื่อนไปยังต้น Paragraph
  • } = เลื่อนไปยังท้าย Paragraph
  • :หมายเลขบรรทัด = เลื่อนไปยังบรรทัดที่ต้องการ เช่น :10 หมายถึงไปบรรทัดที่ 10 เป็นต้น
  • $ = ไปตัวอักษรท้ายสุดของบรรทัด
  • 0 = ไปตัวอักษรตัวแรกสุด ของบรรทัด

การกระทำการ (Operator)

  • i = เพิ่มตัวอักษร (insert) ใช้งาน โดยพิมพ์ i แล้วพิมพ์ต่อได้เลย
  • I = เพิ่มตัวอักษรต้นบรรทัด
  • x = ลบตัวษรทีละ 1 ตัว
  • 10x = ลบตัวอักษร 10 ตัว
  • dw = ลบทั้งคำ
  • dd = ลบทั้งบรรทัด
  • yy = yank หมายถึง Copy ทั้งบรรทัด
  • p = วาง (Paste) วางบรรทัดล่างจาก Cursor อยู่
  • P = วาง (Paste) วางแทรกบรรทัดปัจจุบัน

การจัดการเกี่ยวกับไฟล์

  • :w ชื่อไฟล์ = save ไฟล ์ด้วยชื่อที่กำหนด
  • :wq = save ไฟล์ และออกจาก vi (Quit)
  • :q! = ออกจาก vi โดยไม่ Save
  • :set
    • set nu = สั่งให้ vi แสดงหมายเลขบรรทัด
    • set ic = สั่งให้เวลา Search ไม่ดูการค้น ตัวเล็ก ตัวใหญ่ ใด ๆ (Ignore Case)
    • set nu ic สั่งให้ทำงานทั้ง 2 แบบ

ลอง Telnet แล้วไปของพิมพ์เล่น ๆ ดูนะครับ ทางด้านบนนั้น เป็นเพียงแค่ความสามารถเพียงนิดเดียวของ Vi ครับ หวังว่าหลายคนที่มองหา Editor ฟรี ๆ ความสามารถสูง ๆ ที่พร้อมใช้ังานอยู่ใน Server อยู่แล้วครับ

*** จำไม่ได้แล้วคับว่าเอามาจากเว็บไหน ยังไงก็ขอบคุณต้นฉบับนะคับ :)

Find entries :

About Me

สวัสดีครับ ยินดีต้อนรับทุกท่านที่แวะผ่านเข้ามาเยี่ยมชม บล็อก...เว็บ...หรือว่าเว็บบล็อกมั้ง ที่ที่นี้ทำไว้ทำไมก็ไม่รู้นะ แต่ที่แน่ๆก็น่าจะทำไว้เฉยๆ อ่าาา เอาเป็นว่าเว็บบล็อกนี้ทำไว้เก็บข้อมูลที่น่าสนใจ น่าอ่านทั้งที่เป็นประโยชน์ หรือไร้สาระบ้างผมก็จะเอามาโพสต์เก็บไว้อ่านเองบ้าง หรือใครจะมาอ่านด้วยก็ตามสบายเลยนะครับ เผื่อว่ามันจะมีประโยชน์บ้าง เชิญอ่านให้สนุกเลยละกันครับ..:). More

Want to subscribe?

 Subscribe in a reader Or, subscribe via email:

Enter your email address:
Delivered by FeedBurner