มีวิธีแก้ไขสองวิธีcrontab
:
แบบโต้ตอบโดยใช้crontab -e
ซึ่งจะเปิดcrontab
ในตัวแก้ไขที่ระบุโดย$VISUAL
หรือ$EDITOR
หรือ
ไม่ใช่การโต้ตอบโดยใช้crontab crontab.txt
ซึ่งก็จะนำเข้าcrontab
รายการจากไฟล์crontab.txt
, เปลี่ยน crontab ใช้งานที่มีอยู่สำหรับผู้ใช้ปัจจุบัน
ปัญหาที่คุณมีคือคุณเพียงแค่ใช้crontab
คำสั่งผิด
ข้อกังวลต่อไปนี้เกี่ยวกับการจัดการ crontab แบบไม่โต้ตอบ:
ดังนั้นในการลบงานบางอย่างโดยทางโปรแกรมคุณสามารถทำอะไรได้บ้าง
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
โดยที่PATTERN
เป็นนิพจน์ทั่วไปที่จะตรงกับงานที่คุณต้องการลบ ที่นี่จะทำให้คุณปัจจุบันของคุณcrontab -l
crontab
หรือถ้าคุณมีรายการในไฟล์ชื่อcrontab-fragment.txt
ที่คุณต้องการลบออกจาก crontab ที่ใช้งานอยู่
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
สิ่งนี้จะอ่าน crontab ปัจจุบันและตัวกรอง (ลบ) บรรทัดใด ๆ ที่เกิดขึ้นในไฟล์crontab-fragment.txt
ในไดเรกทอรีปัจจุบัน (ใช้การเปรียบเทียบสตริงของบรรทัดทั้งหมด) ผลลัพธ์จะถูกบันทึกcrontab.txt
และโหลดจากที่นั่นเพื่อแทนที่ crontab ปัจจุบัน
หากต้องการเพิ่มหนึ่งหรือหลายภารกิจให้ทำดังนี้
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
นี่คือการสมมติว่าไฟล์crontab-fragment.txt
มีรายการที่คุณต้องการเพิ่ม มันอ่าน crontab ปัจจุบันผนวกรายการจากนี้และสร้างcrontab-fragment.txt
ไฟล์แล้วแทนที่ crontab ปัจจุบันcrontab.txt
crontab.txt