เพิ่มไปตารางงาน(หากไม่มีอยู่แล้ว)โดยใช้ตบสคริปต์

0

คำถาม

มันคืออะไรที่ถูกต้องเดินทางตบสคริปต์เพิ่มเป็นงานที่ต้องตารางงาน,เรื่องนั้น

  • จะไม่มีงานที่ซ้ำกัน
  • คตารางงานแฟ้มจะไม่ถูก resorted
  • (เป็นตัวเลือกเสริม)ใกล้จะเป็นหนึ่ง liner

เดินข้ามมาทางนี้ทางด้านล่างนี้แต่มันไม่ส่งผลกระทบต่อผลลัพธ์ของวิ่งหนี crontab -l.

grep 'some_user python /mount/share/script.py' /etc/crontab || echo '*/1 *  *  *  * some_user python /mount/share/script.py' >> /etc/crontab

พยายามการเปลี่ยนแปลงมันจะมีผลต่อ crontab -l,

(crontab -l | grep '/mount/share/script.py') || { crontab -l; '*/1 * * * * some_user python /mount/share/script.py >> /root/foo/logs/foo.cron.log 2>&1'; } | crontab -

แต่กำลังคำสั่งนี้จะทำให้ข้อผิดพลาด:

-bash: */1 * * * * some_user python /mount/share/script.py >> /root/foo/logs/foo.cron.log 2>&1: No such file or directory
bash cron linux ubuntu
2021-11-16 05:15:17
1

คำตอบที่ดีที่สุด

2

แต่กำลังคำสั่งนี้จะทำให้ข้อผิดพลาด:

-bash: */1 * * * * some_user python /mount/share/script.py >> /root/foo/logs/foo.cron.log 2>&1: No such file or directory

รหัส:

(crontab -l | grep '/mount/share/script.py') || { crontab -l; '*/1 * * * * some_user python /mount/share/script.py >> /root/foo/logs/foo.cron.log 2>&1'; } | crontab -

จะพยายามที่จะประมวลผล/หนีไปที่:

'*/1 * * * * some_user python /mount/share/script.py >> /root/foo/logs/foo.cron.log 2>&1'

ถ้าและเมื่อไหร่ grep ล้มเหลว


เพิ่มเสียงดังก้องในด้านหน้าของมันหรือ printf ตั้งแต่ crontab กำลังนำเข้าข้อมูลจาก stdinเหมือนว่าคุณทำอะไรของคุณก่อนตัวอย่างเช่น/รหัสบางอย่างเหมือน:

(crontab -l | grep '/mount/share/script.py') || { crontab -l; echo '*/1 * * * * some_user python /mount/share/script.py >> /root/foo/logs/foo.cron.log 2>&1'; } | crontab -

นี่เป็นทางเลือกซึ่งนั่นเป็นทั้งระเบิดสคริปต์

#!/usr/bin/env bash

cron_entry=$(crontab -l 2>&1)
is_in_cron='/mount/share/script.py'
new_cron_entry='*/1 * * * * some_user python /mount/share/script.py >> /tmp/foo/logs/foo.cron.log 2>&1'

if [[ $cron_entry != *"$is_in_cron"* ]]; then
  printf '%s\n' "$cron_entry" "$new_cron_entry" | crontab -
fi
2021-11-16 06:16:56

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................