เรามาดูรายละเอียดต่างๆกันดีกว่า
การใช้งาน crontab
คำสั่งและ option ต่างๆ ของ contrab
$crontab filename เป็นการนำคำสั่งของ crontab เข้ามาจาก filename
$crontab -e การแก้ไข crontab ปัจจุบันของ user ที่ login ปัจจุบัน
$crontab -l ดูคำสั่ง crontab ทั้งหมดที่มีอยู่ ของ User
$crontab -r ลบคำสั่ง crontab ของ User
$crontab -u user เป็นคำสั่งของผู้ดูแลระบบ(root) เท่านั้น ใช้ ดู แก้ไข ลบ crontab ของ user แต่ล่ะคน
การใช้คำสั่ง $crontab -e เพื่อการแก้ไข crontab
หลังจากรันคำสั่ง $crontab -e แล้วจะปรากฏหน้า editor ขึ้นมาเพื่อแก้ไข crontab การแก้ไข crontab จะมีลักษณะการใช้งานคล้ายกับโปรแกรม vi โดยมีโหมดและคำสั่งต่างๆดังนี้
โหมดการทำงาน และคำสั่งในการแก้ไข crontab
Esc เพื่อออกมาสู่โหมดปกติ
i โหมดการแก้ไขข้อความ เพื่อการเพิ่ม ลบ เปลี่ยนแปล คำสั่ง ข้อความ ต่างๆ
คำสั่งดังกล่าวข้างต้นเป็นเพียงตัวอย่างคำสั่ง สามารถดูรายละเอียดเพิ่มเติม การใช้งาน vi หรือดู manual ได้จากคำสั่ง $man vix ลบตัวอักษรที่ cursor วางอยู่ ทีละอักษร ในโหมดปกติ
dd ลบบรรทัด ทั้งบรรทัด ที่ cursor วางอยู่ทีละแถว ในโหมดปกติ
:q! ออกโดยไม่ต้องบันทึกการเปลี่ยนแปลงต่างๆใน crontab
:wq! บันทึกการแก้ไขข้อความที่ถูกแก้ไขใน crontab แล้วออกจากโปรแกรม
format ของ crontab
minute(s) hour(s) day(s) month(s) weekday(s) command(s)format ของ crontab จะประกอบด้วยสองส่วนหลักๆ คือ การกำหนดวันเวลาในการรันโปรแกรม หรือscript
Field มีค่า รายละเอียด################################################################
minute 0-59 เวลาเป็นนาที จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง (*) จะรันคำสั่งทุกๆนาที(*) จะรันคำสั่งทุกๆ ชั่วโมง
hour 0-23 เวลาเป็นชั่วโมง จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
(*) จะรันคำสั่งทุกๆ วัน
day 1-31 เวลาเป็นวัน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
(*) จะรันคำสั่งทุกๆ เดือน
month 1-12 เวลาเป็นเดือน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
(*) จะรันคำสั่งทุกๆ วันในสัปดาห์
weekday 0-6 วันของแต่ละสัปดาห์ มีค่าดังนี้ (อาทิตย์ = 0, จันทร์ = 1, อังคาร = 2, พุธ = 3, พฤหัส = 4, ศุกร์ = 5 และ เสาร์ = 6)
command คำสั่ง สามารถกำหนดได้ว่าจะเป็นการรันคำสั่งโดยตรงหรือ ให้เรียก shell script ต่างๆ
ตัวอย่าง crontab###############################################################
เพิ่ม crontab โดยการใช้คำสั่ง crontab -e เมื่อเข้าสู่หน้าจอ editor จากนั้น กด i เพื่อแก้ไขข้อความ หลังจากแก้ไขข้อความเรียบร้อยแล้ว บันทึกการแก้ไขและออกจากการแก้ไข crontab
0 8 * * * ls -l / >/list.txtอธิบาย จากคำสังข้างบนเป็นการสั่งให้รัน commant ls -l / >/list.txt ในเวลา 8.00 ของทุกๆวัน
0 8 * * 1 ls -l / >/list.txtอธิบาย จากคำสังข้างบนเป็นการสั่งให้รัน commant ls -l / >/list.txt ในทุกวันจันทร์ เวลา 8.00 ของทุกเดือน
0 8 * * 1,3,5 ls -l / >/list.txt
อธิบาย จากคำสังข้างบนเป็นการสั่งให้รัน commant ls -l / >/list.txt ในทุกวันจันทร์ พุธ และศุกร์ เวลา 8.00 ของทุกเดือน
วิธีการดู manual ของคำสั่งต่างๆ
man crontabอันนี้เป็นตัวอย่างที่ผมได้นำมาใช้งานจริง
man cron
เป็น backup MySQL Database Server
โดยคำสั่งในการ Backup ฐานข้อมูลคือ
$mysqldump -h HOST -u USER -pPASSWORD DATABASE TABLEคำสั่งข้างบนเป็นรูปแบบที่ผมใช้ จะขออธิบายค่าต่างๆที่ต้องระบุ เพื่อใช้ในการ backup
| gzip > /tmp/table.`date +"\%Y-\%m-\%d"`.gz
HOST คือ Database Server อาจจะระบุเป็น IP หรือ Domain Name Sever
USER คือ ชื่อผู้ใช้ในการเข้าใช้งานฐานข้อมูล SQL Server
PASSWORD คือ รหัสผ่านสำหรับ User
DATABASE คือ ชื่อฐานข้อมูล
TABLE คือ ชื่อตาราง
/tmp/table.`date +"\%Y-\%m-\%d"`.gz คือการกำหนดชื่อไฟล์เช่น table2011-01-03.gz โดยเก็บไว้ที่ path /tmp
ตัวอย่างการแก้ไข crontab หลังจากใช้คำสั่ง crontab -e แล้วกด i
0 0 * * * /usr/bin/mysqldump -h localhost -u root -pp@ssword --all-database | gzip > /var/backup/database_`date +\%Y-\%m-\%d`.sql.gz
จากนั้นกด :wq เพื่อบันทึกและออกจากโปรแกรม
อธิบาย จากตัวอย่างเป็นการ backup ทุกฐานข้อมูลใน Database Server ในเวลา 24.00 ของทุกวันโดยตั้งชื่อไฟล์ต่างๆตามวันที่รันคำสั่ง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น