ภูตใน 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 -e ไฟล์ที่เปิดขึ้นมีข้อมูลเป็นจำนวนมาก แต่ส่วนสำคัญคือตัวอย่างก่อนจบส่วนความคิดเห็น (ความคิดเห็นจะแสดงด้วยเส้นที่ขึ้นต้นด้วย #) # m คำสั่ง h dom mon dow 0 5 * * 1 tar -zcf /var/backups/home.tgz / home / มีข้อมูลทั้งหมด 6 ชิ้นให้พอดีกับแต่ละบรรทัดของไฟล์ crontab: สำหรับแต่ละรายการ (ยกเว้นคำสั่ง) คุณสามารถระบุอักขระตัวแทน ดูตัวอย่าง 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: เกือบตลอดเวลาที่คุณไม่ต้องการลบไฟล์ crontab แต่คุณอาจต้องการลบแถวบางส่วนออกจากไฟล์ crontab อย่างไรก็ตามหากคุณต้องการนำไฟล์ crontab ของผู้ใช้ออกใช้คำสั่งต่อไปนี้: crontab -r วิธีที่ปลอดภัยกว่าในการทำเช่นนี้คือเรียกใช้คำสั่งต่อไปนี้: crontab -i ระบบปฏิบัติการขอให้ตรวจสอบก่อนที่จะลบไฟล์ crontab
วิธีการลบแฟ้ม Crontab