Score:0

crontab ส่งคืนข้อผิดพลาดการใช้งาน: อนุญาตการดำเนินการเดียวเท่านั้น

ธง ru

ฉันมีพีซีสองเครื่องที่ใช้ Ubuntu 18.04 LTS พวกมันถูกสร้างขึ้นจากอิมเมจพื้นฐาน linux เดียวกัน เมื่อเร็ว ๆ นี้ฉันค้นพบว่าหนึ่งในสองกล่อง ฉันไม่สามารถใช้ crontab เพื่อดูหรือแก้ไขตาราง cron ของผู้ใช้แต่ละคนได้

ServerB ให้ข้อผิดพลาดนี้กับผู้ใช้รวมถึงรูท:

$ crontab -l
crontab: ข้อผิดพลาดในการใช้งาน: อนุญาตการดำเนินการเดียวเท่านั้น
การใช้งาน: ไฟล์ crontab [-u user]
        crontab [ -u ผู้ใช้ ] [ -i ] { -e | -l | -r }
                (การดำเนินการเริ่มต้นคือแทนที่ ต่อ 1,003.2)
        -e (แก้ไข crontab ของผู้ใช้)
        -l (รายการ crontab ของผู้ใช้)
        -r (ลบ crontab ของผู้ใช้)
        -i (แจ้งก่อนที่จะลบ crontab ของผู้ใช้)

ตอนแรกฉันคิดว่ากระบวนการทำงานอาจล็อก cron แต่ปัญหายังคงอยู่หลังจากรีบูตเซิร์ฟเวอร์ทั้งหมด

การหาข้อมูลออนไลน์นี้บ่งชี้ว่าผู้ดูแลระบบบางคนเลือกที่จะคอมไพล์ crontab ใหม่เพื่อกำจัดการตั้งค่าสถานะ "ลบ" นั่นไม่ใช่กรณีที่นี่คำสั่ง crontab นี้มาพร้อมกับ O/S และเหมือนกับคำสั่งบนเซิร์ฟเวอร์ที่ใช้งานได้

นอกจากนี้ยังไม่มีข้อความใน /var/log/syslog หรือใน /var/log/cron.log เพื่อแสดงว่าทำไมมันถึงล้มเหลว crontab -e หรือ crontab -l ทั้งสองส่งคืนข้อผิดพลาดด้านบน

นี่คือ /usr/bin/crontab จากทั้งเซิร์ฟเวอร์ที่ใช้งานได้และที่มีปัญหา วันที่และขนาดเหมือนกัน

-rwxr-sr-x 1 root crontab 39352 16 พ.ย. 2560 /usr/bin/crontab
-rwxr-sr-x 1 root crontab 39352 16 พ.ย. 2560 /usr/bin/crontab

$ diff -s crontab.serverA crontab.serverB
ไฟล์ crontab.serverA และ crontab.serverB เหมือนกัน

สุดท้าย สิทธิ์และความเป็นเจ้าของจะเหมือนกันบนเซิร์ฟเวอร์ทั้งสองสำหรับ /var/spool/cron เส้นทางและไฟล์.

ฉันสามารถเพิ่มรายการใดๆ ไปยังไฟล์ /etc/crontab สำหรับผู้ใช้ที่เลือกได้ แต่แค่พยายามทำความเข้าใจว่าเหตุใดข้อผิดพลาดนี้จึงปรากฏขึ้นตั้งแต่แรก มีไฟล์ล็อคบางประเภททิ้งไว้ที่ไหนสักแห่งที่อาจทำให้เกิดสิ่งนี้หรือไม่?

hr flag
คุณมีชื่อแทน `crontab` หรือไม่ `type crontab` พูดว่าอะไร
S. Nixon avatar
ru flag
นั่นคือมัน ขอบคุณคนขับเหล็ก ฉันไม่เคยคิดที่จะมองหาสิ่งนั้นด้วยซ้ำ
Score:1
ธง ru

ขอบคุณ @steeldriver สำหรับความคิดเห็นเกี่ยวกับการดูการตั้งค่านามแฝง ฉันค้นพบว่ามีคนเพิ่มบรรทัดนี้ใน /etc/profile:

นามแฝง crontab='crontab -l'

โอเปอเรเตอร์บางรายของเราต้องการสร้างทางลัด (เช่น alias df='df -h') และนี่ถือเป็นอันใหม่สำหรับฉันอย่างแน่นอน เนื่องจากเราไม่เคยใช้นามแฝงนั้นมาก่อน แน่นอนว่าการลบนามแฝงช่วยแก้ปัญหาได้ ฉันขอยืนยันด้วยว่าหากคุณใช้แฟล็กเดียวกันซ้ำสองครั้ง นั่นคือสิ่งที่ทำให้เกิดข้อความแสดงข้อผิดพลาดและการแสดงการใช้งาน

$ crontab -l -l
crontab: ข้อผิดพลาดในการใช้งาน: อนุญาตการดำเนินการเดียวเท่านั้น
การใช้งาน: ไฟล์ crontab [-u user]
        crontab [ -u ผู้ใช้ ] [ -i ] { -e | -l | -r }
                (การดำเนินการเริ่มต้นคือแทนที่ ต่อ 1,003.2)
        -e (แก้ไข crontab ของผู้ใช้)
        -l (รายการ crontab ของผู้ใช้)
        -r (ลบ crontab ของผู้ใช้)
        -i (แจ้งก่อนที่จะลบ crontab ของผู้ใช้)

ขอบคุณสำหรับคำแนะนำเกี่ยวกับสถานที่ในการค้นหาพฤติกรรมแปลก ๆ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา