���� ���ö����ͧ

Unix Crontab Commands for Ubuntu

Unix Crontab Commands for Ubuntu

ช่วงนี้โดนก่อกวนจากผู้หวังดี hacker มันแวะมาหาผมบ่อยเหลือเกินครับ ก็เลยมานั่งเขียน Crontab ทำการ backup ไว้ก่อนดีกว่าครับปกติก็ backup ไว้อยู่ครับแต่ว่า backup ทั้ง /var/www มันจะมีปัญหาตอนแตกไฟล์ที่มานั่งรอนานคราวนี้ก็เลย backup เว็บเดียวดีกว่าเพราะว่าเว็บอื่นๆมันไม่สนใจมันสนใจแต่เว็บ gootum.com ไม่รู้ชาติที่แล้วไปทำอะไรมันชาตินี้มันทำไมมายุ่งกับผมก็ไม่รู้

Crontab คือการสั่งให้มันทำงานอัตโนมัติในพื้นหลังที่ช่วงเวลาสม่ำเสมอโดย cron daemon งานเหล่านี้ที่ถูกสร้างเนื่องจากว่ามีการทำงาน cron ในยูนิกซ์บ่อยๆ Crontab (Cron เนื้อหา) คือแฟ้มสิ่งที่บรรจุตารางเวลาที่เราสร้างขึ้นของรายการที่จดไว้ cron จะทำงานที่เวลาที่เจาะจงที่เราตั้งไว้ ถ้างงก็จำสั้นๆว่า Crontab คือการสั่งให้มันทำให้อัตโนมัติโดยที่เราเขียนคำสั่งให้มันรันสคริปเองตามช่วงเวลาที่เรากำหนดให้มัน เช่น ตั้ง Crontab ให้ทำการ backup File, DB เป็นต้น
Crontab Commands

crontab -e แก้ไขแฟ้ม crontab ของคุณ หรือสร้างสิ่งถ้ามันไม่มีอยู่แล้ว
crontab -l แสดงแฟ้ม crontab ของคุณ
crontab -r ย้ายแฟ้ม crontab ของคุณ 

Crontab syntax
crontab จะมี 5 ส่วนพื้นที่จะเป็นเวลาวันที่เจาะจงและวันที่และเวลาที่ปฏิบัติตามโดยคำสั่งวิ่งที่ช่วงเวลานั้นเราสามารถตั้งได้เอง

* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)

มาเริ่มเขียนกันเลยดีกว่าครับ
1.ให้ทำการเขียน shell สร้างไฟล์ขึ้นมาเพื่อกำหนดให้ crontab ทำงานในตัวอย่างจะใช้ชื่อว่า 0.backup_web_gootum ให้เก็บไฟล์ไวภายใต้ /usr/ ตัวอย่างที่ผมใช้งานผมจะเก็บไว้ที่ /usr/local/admtools/
2.เขียนคำสั่งในไฟล์ 0.backup_web_gootum ดังนี้

#!/bin/sh    

echo "Backup Web"
/bin/tar cfz /var/www/backup/web_gootum_`date "+%Y%m%d"`.tar.gz /var/www/
virtual/gootum.com/

คำอธิบายคือ ให้ทำการ copy ไฟล์ทั้งหมดที่อยู่ในภายใต้ /var/www/virtual/gootum.com/ มาไว้ที่โฟลเดอร์ /var/www/backup/

3.หลังจากได้ไฟล์แล้วให้ทำการเขียน crontab โดยเราจะสั่งให้มันทำงานให้อัตโนมัติทุกวันๆตามเวลาที่กำหนดให้พิมพ์ว่า #crontab -e
แล้วเพิ่มคำสั่งนี้เข้าไปครับ

# backup Host gootum.com
0 1 * * * /usr/local/admtools/0.backup_web_gootum 2>/dev/null

ตัวเลข 0 1 * * * ถ้างงให้กลับไปดู Crontab syntax ข้างบนนะครับถ้าจากตัวอย่างจะบอกว่า ให้ทำการ backup ตอนเวลาตี 1 ของทุกวันครับ (ต้องคอยหมั่นดูไฟล์ในเครื่องด้วยนะครับเดี๋ยวมันเต็มเพราะว่าไม่ได้เขียนให้ลบไฟล์เองครับ) หลังจากนั้นก็ทำการ save แล้วก็เป็นอันเสร็จการทำ crontab แล้วครับ อยากรู้ว่าสั่งให้ทำงานยังพิมพ์ crontab -l ดูนะครับ

ใครมี idea เจ๋งๆแนะนำด้วยนะครับอย่าเก็บไว้คนเดียว ไว้คราวหน้ามาเขียนเมื่อ backup เสร็จแล้วให้ทำการ ftp ไปฝาก host อื่นแบบอัตโนมัติให้อ่านครับ โชคดีครับพี่น้อง

Bookmark and Share

Related Posts

You can leave a response, or trackback from your own site.

2 Responses to “Unix Crontab Commands for Ubuntu”

  1. [...] « Unix Crontab Commands for Ubuntu 03 12 2007 [...]

  2. [...] Crontab #nano backup_web_gootum.sh copy [...]

Leave a Reply