คำสั่งที่มีสัญลักษณ์เปอร์เซ็นต์ไม่ทำงานใน crontab


11

crontab ต่อไปนี้ใช้ไม่ได้:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test '`/bin/date +%Y-%m-%d` >> /tmp/test

ฉันพยายามเริ่มด้วย:

SHELL=/bin/bash

อัปเดต:ฉันคิดว่าตัวละครแบ็คทิค `เป็นตัวร้าย แต่เนื่องจากคำตอบด้านล่างชี้แจงว่าเปอร์เซ็นต์% เป็นตัวการ!


บรรทัดทดสอบของคุณจะทำงานเพียงหนึ่งครั้งต่อชั่วโมง นั่นอาจไม่ใช่สิ่งที่คุณตั้งใจจะทำการทดสอบ
user535733

ไม่ใช่นาทีแรกใช่หรือไม่ # mh dom mon dow คำสั่ง
lpanebr

คุณถูกต้อง .. ฉันเปลี่ยนเป็น * / 1 เพื่อให้ทำงานทุกนาที cron ทำงานได้ดี มีบางอย่างที่มีคำสั่ง ดูเหมือนว่าจะเป็น/bin/date +%Y-%m-%d
lpanebr

คำตอบ:


13

ใน/bin/date +%Y-%m-%dคุณจะต้องหลบหนี%ด้วย\ตามหน้าคนนี้ :

ฟิลด์ "six" (ส่วนที่เหลือของบรรทัด) ระบุคำสั่งที่จะรัน ส่วนคำสั่งทั้งหมดของบรรทัดจนถึงบรรทัดใหม่หรืออักขระ% จะถูกดำเนินการโดย / bin / sh หรือโดยเชลล์ที่ระบุในตัวแปร SHELL ของ cronfile Percent-signs (%) ในคำสั่งยกเว้นยกเว้น Escape ด้วย backslash () จะถูกเปลี่ยนเป็นอักขระบรรทัดใหม่และข้อมูลทั้งหมดหลังจาก% แรกจะถูกส่งไปยังคำสั่งเป็นอินพุตมาตรฐาน


2
ขอบคุณ! ฉันจะแก้ไขคำถามเพื่อให้เหมาะกับปัญหาจริง
lpanebr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.