Long LiveThe King
ข้าพเจ้าไม่ได้มีพรสวรรค์พิเศษอะไร ข้าพเจ้าเพียงแต่มีความกระหายใคร่รู้อยู่เสมอ ทุ่มเทให้กับสิ่งที่อยากรู้ พากเพียรอย่างทรหด และสำรวจวิจารณ์ความรู้ของตัวเองเป็นประจำ ปัจจัยเหล่านี้คือที่มาของแนวคิดต่างๆ ของข้าพเจ้า .... อัลเบิร์ต ไอน์สไตน์

วันพุธที่ 27 พฤศจิกายน พ.ศ. 2556

การ ตั้งเวลา reboot ด้วย crontab บน CentOS + Ubuntu

รูปแบบสั้นๆสำหรับ Centos

วิธีที่ 1 วิธีที่ 2
nano /etc/crontab
crontab -e

พิมพ์ 0 3 * * * /sbin/reboot

/etc/rc.d/init.d/crond restart
/sbin/chkconfig crond on
nano /etc/crontab
crontab -e
พิมพ์ 0 3 * * * /sbin/shutdown -r now

/etc/rc.d/init.d/crond restart
/sbin/chkconfig crond on


รูปแบบสั้นๆสำหรับ Ubuntu

วิธีที่ 1 วิธีที่ 2
crontab -e
กด เลือก 2 ถ้าใช้ nano
พิมพ์ 0 3 * * * /sbin/reboot.sh
crontab -e
กด เลือก 2 ถ้าใช้ nano
พิมพ์ 0 3 * * * /sbin/reboot


หมายเหตุ :  0 3 * * * /sbin/reboot  (เราจะให้ Server Reboot ทุกวันตอนตี 3)

ที่มา http://bunyiam.com/?name=knowledge&file=readknowledge&id=2526


รายละเอียดเพื่อทำความเข้าใจ

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

ซึ่งอำนวยความสะดวกได้มากเลยที่เดียว งานบางอย่างที่จำเป็นต้องทำซ้ำๆในเวลาเดียวกัน ไม่ว่าจะทุกวัน ทุกสัปดาห์ หรือ ทุกเดือน
การใช้งาน crontab
------------------------
คำสั่งและ option ของ crontab มีดังนี้
Code:
crontab filename การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น
crontab -e แก้ไข crontab ปัจจุบัน
crontab -l ดูคำสั่ง crontab ทั้งหมดที่มีอยู่
crontab -r ลบคำสั่ง crontab ที่มีทั้งหมด
crontab -u user เป็นคำสั่งของผู้ดูแลระบบเท่านั้น(administrators) เพื่อใช้ดู แก้ไข ลบ crontab ของ user แต่ล่ะคน
เมื่อเรียกคำสั่งตามข้างบนแล้ว crontab จะเข้าสู่ระบบการ กำหนด หรือ แก้ไข ซึ่งการ กำหนด หรือแก้ไขนี้ จะเหมือนกับการใช้งาน vi ครับ
การกำหนดให้ crontab ทำงาน
-------------------------------------
format ของคำสั่ง crontab มีทั้งหมด 6 fields เป็นดังบรรทัดข้างล่าง
Code:
minute(s) hour(s) day(s) month(s) weekday(s) command(s)
fields 1-5 เป็นการกำหนดเวลา และ field ที่ 6 เป็นการกำหนดคำสั่ง ดังความหมายของแต่ละ fields ดังต่อไปนี้
Code:
........................................................................................................................................
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!
Code:
0 12 * * * /etc/python.py
จากคำสั่งด้านบนจะเป็นการสั่งให้รัน script python.py ตอน 12:00 น. ของทุกๆวัน
Code:
0 12 * * 1 /root/wifilogs.py
จากคำสั่งด้านบน จะทำการ Run script getlogs.pl ที่ path /home/tuxzilla ทุกวันจันทร์ ทุกๆเดือน ตอนเที่ยง
Code:
0 0 * * 1,2 / root/wifilogs.py
คำ สั่งนี้เหมือนคำสั่งด้านบนครับ แต่จะเพิ่มการทำงานในวันอังคารด้วย ซึ่งเราสามารถใช้ "," คั่นไปเรื่อยๆได้ เพื่อที่จะกำหนดเพิ่มให้แต่ล่ะ fields หรือใช้ "*"
เพื่อการกำหนดเป็นทั้งหมด(หมายความว่า หากที่ field ชั่วโมง เป็น * ก็หมายความว่าต้องทำงานทุกชั่วโมง)
ถึง จะมีหลาย user ในเครื่องเดียวกันแต่ยังไง crontab ก้ยังเป็นของใครของมันไม่กวนกันครับ และไม่สามารถดูของกันและกันได้ นอกจากเป็น ผู้ดูแลระบบครับ ถึงตรงนี้แล้วก็คงไม่มีอะไรยากเกินกว่าแล้ว หากแต่ความสะดวกเท่านั้นที่จะมาแทนที หรือใครจะเอามาเป็นนาฬิกา อย่างผมก็ไม่ว่าครับ

ที่มา http://sabaylinux.blogspot.com/2009/07/crontab.html

3 ความคิดเห็น:

  1. ของผมใช้ Ubuntu มัน Restart แค่วันเดียวครับ
    หลังจากนั้นมันไม่ Restart อีกเลยครับ
    รบกวนช่วยแนะนำหน่อยครับผม

    crontab -e
    0 3 * * * /sbin/reboot

    ตอบลบ
  2. ถ้าต้องการสั่งให้ปิดเครื่องตอน 03.00-03.30 น. แล้วสั่งเปิดเครื่องอีกตอน 03.31 น. ของทุกๆ วัน เราจะใช้คำสั่งไหนครับ

    ตอบลบ
  3. # Reboot Server on Saturday
    0 4 * * 6 /sbin/shutdown -r now

    คือรีบูตโปรแกรม CCcam ทุกวันเวลา 3.59 - 4.00 น. ยกเว้นวันเสาร์
    ส่วนวันเสาร์ให้รีบูตเครื่องเวลา 04.00 น. เพื่อล้างข้อมูล Temp ทั้งหมดจริง ๆ

    หมายเหตุ ท่านใดต้องการรู้รูปแบบคำสั่งทั้งหมดก็ดูได้จากด้านล่างนี้ครับ
    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 1-7 รายละเอียดอธิบายแล้วด้านบน
    command คำสั่ง เราสามารถกำหนดคำสั่งได้มากมาย รวมทั้ง script ต่างๆ ตามที่เราต้องการ

    ตอบลบ



:) :( ;) :D :-/ :x :P :-* =(( :-O X( :7 B-) #:-S :(( :)) =)) :-B :-c :)] ~X( :-h I-) =D7 @-) :-w 7:P 2):) :!! m/ :-q :-bd ^#(^

© Ubuntu, AllRightsReserved.

ขับเคลื่อนโดย Blogger Designed by Nikhorn Thongchuay