Skip to main content

วิธีการแก้ไขไฟล์ Linux Crontab เพื่อกำหนดตารางการทำงาน

แก้ไขเอกสาร PDF และพิมพ์เพิ่มด้วยโปรแกรม Foxit Reader (เมษายน 2025)

แก้ไขเอกสาร PDF และพิมพ์เพิ่มด้วยโปรแกรม Foxit Reader (เมษายน 2025)
Anonim

ภูตใน Linux ที่เรียกว่า cron ดำเนินการกระบวนการในช่วงเวลาปกติ จะตรวจสอบโฟลเดอร์บางโฟลเดอร์ในระบบของคุณเพื่อให้สคริปต์ทำงานในชุดของโฟลเดอร์รวมถึง /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly และ /etc/cron.thonthly นอกจากนี้ยังมีไฟล์ชื่อ / etc / crontab

การวางสคริปในโฟลเดอร์ cron

คุณสามารถวางสคริปต์ลงในโฟลเดอร์ที่เกี่ยวข้องเพื่อให้ทำงานได้เป็นระยะ ๆ

ตัวอย่างเช่นเปิดหน้าต่างเทอร์มินัลและเรียกใช้คำสั่ง ls ต่อไปนี้:

ls / etc / cron *

คุณจะเห็นรายการของโปรแกรมหรือสคริปต์ที่รันรายชั่วโมงรายวันรายสัปดาห์และรายเดือน

ปัญหาเกี่ยวกับโฟลเดอร์เหล่านี้คือมีความคลุมเครือเล็กน้อย ตัวอย่างเช่น, ประจำวัน หมายความว่าสคริปต์จะทำงานวันละครั้ง แต่คุณไม่สามารถควบคุมเวลาที่สคริปต์จะทำงานในระหว่างวันนั้น

นั่นคือที่มาของไฟล์ crontab

โดยการแก้ไขไฟล์ crontab คุณสามารถเรียกใช้สคริปต์หรือโปรแกรมเพื่อให้ทำงานได้ในวันและเวลาที่แน่นอนที่คุณต้องการให้ทำงาน

สิทธิ์

คำสั่ง crontab กำหนดให้ผู้ใช้มีสิทธิ์แก้ไขไฟล์ crontab โดยทั่วไปมีไฟล์สองไฟล์ที่ใช้จัดการสิทธิ์ crontab:

  • /etc/cron.allow
  • /etc/cron.deny

ถ้ามีไฟล์ /etc/cron.allow อยู่ผู้ใช้ที่ต้องการแก้ไขไฟล์ crontab ต้องอยู่ในไฟล์นั้น ถ้าไม่มีไฟล์ cron.allow แต่มีไฟล์ /etc/cron.deny ผู้ใช้ต้องไม่มีอยู่ในไฟล์นั้น ถ้าแฟ้มทั้งสองมีอยู่ /etc/cron.allow จะแทนที่ไฟล์ /etc/cron.deny หากไม่มีไฟล์อยู่ระบบจะขึ้นอยู่กับการกำหนดค่าระบบว่าผู้ใช้สามารถแก้ไข crontab ได้หรือไม่

ผู้ใช้ root สามารถแก้ไขไฟล์ crontab ได้ตลอดเวลา คุณสามารถใช้คำสั่ง su เพื่อสลับไปยังผู้ใช้ root หรือคำสั่ง sudo เพื่อรันคำสั่ง crontab

การแก้ไขไฟล์ Crontab

ผู้ใช้แต่ละรายที่มีสิทธิ์ที่เหมาะสมสามารถสร้างแฟ้ม crontab ของตนเองได้ คำสั่ง cron จะค้นหาไฟล์ crontab ทั้งหมดและทำงานผ่านแต่ละไฟล์

เมื่อต้องการตรวจสอบว่าคุณมีไฟล์ crontab หรือไม่ให้รันคำสั่งต่อไปนี้:

crontab -l

ถ้าคุณไม่มีแฟ้ม crontab ข้อความ "ไม่มี crontab สำหรับ "ไฟล์ crontab ของคุณจะแสดงขึ้นมา (ฟังก์ชันนี้แตกต่างจากระบบในระบบบางครั้งก็ไม่มีอะไรแสดงเลยและครั้งอื่น ๆ ที่แสดงไว้" อย่าแก้ไขไฟล์นี้ ")

เมื่อต้องการสร้างหรือแก้ไขไฟล์ crontab ให้รันคำสั่งต่อไปนี้:

crontab -e

ไฟล์ที่เปิดขึ้นมีข้อมูลเป็นจำนวนมาก แต่ส่วนสำคัญคือตัวอย่างก่อนจบส่วนความคิดเห็น (ความคิดเห็นจะแสดงด้วยเส้นที่ขึ้นต้นด้วย #)

# m คำสั่ง h dom mon dow

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

มีข้อมูลทั้งหมด 6 ชิ้นให้พอดีกับแต่ละบรรทัดของไฟล์ crontab:

  • นาทีของวันที่คำสั่งคือการเรียกใช้ (m)
  • ชั่วโมงของวันที่คำสั่งคือการวิ่ง (h)
  • วันที่ของเดือนคำสั่งคือการเรียกใช้ (dom)
  • เดือนคำสั่งคือการเรียกใช้ (mon)
  • วันของสัปดาห์คำสั่งคือการเรียกใช้ (dow)
  • คำสั่ง

สำหรับแต่ละรายการ (ยกเว้นคำสั่ง) คุณสามารถระบุอักขระตัวแทน ดูตัวอย่าง crontab บรรทัดต่อไปนี้:

30 18 * * * tar - zcf /var/backups/home.tgz / home /

ในเวลา 30 นาที 18 ชั่วโมงและทุกวันเดือนและวันในสัปดาห์รายการ crontab นี้จะซิงค์และ tar ไดเรกทอรีบ้านไปยังโฟลเดอร์ / var / backups

หากต้องการรับคำสั่งให้รันทุกๆ 30 นาทีที่ผ่านมาทุกๆชั่วโมงให้เรียกใช้คำสั่งต่อไปนี้:

คำสั่ง 30 * * * *

หากต้องการรับคำสั่งให้เรียกใช้ทุกๆนาทีที่ผ่านมา 6:00 น. ให้รันคำสั่งต่อไปนี้:

* 18 * * * คำสั่ง

คุณต้องระมัดระวังในการตั้งค่าคำสั่ง crontab ของคุณ

ตัวอย่างเช่น:

* * * คำสั่ง 1 *

คำสั่งนี้จะทำงานทุกนาทีทุกชั่วโมงในทุกๆวันของทุกสัปดาห์ในเดือนมกราคม

เมื่อต้องการเรียกใช้คำสั่งที่ 5 โมงเช้าวันที่ 1 มกราคมคุณจะได้รับคำสั่งต่อไปนี้ในไฟล์ crontab:

0 5 1 1 * command

วิธีการลบแฟ้ม Crontab

เกือบตลอดเวลาที่คุณไม่ต้องการลบไฟล์ crontab แต่คุณอาจต้องการลบแถวบางส่วนออกจากไฟล์ crontab

อย่างไรก็ตามหากคุณต้องการนำไฟล์ crontab ของผู้ใช้ออกใช้คำสั่งต่อไปนี้:

crontab -r

วิธีที่ปลอดภัยกว่าในการทำเช่นนี้คือเรียกใช้คำสั่งต่อไปนี้:

crontab -i

ระบบปฏิบัติการขอให้ตรวจสอบก่อนที่จะลบไฟล์ crontab