คำถามติดแท็ก cron

Cron เป็นตัวจัดตารางงานตามเวลาในระบบปฏิบัติการคอมพิวเตอร์ Unix Cron ช่วยให้ผู้ใช้สามารถกำหนดเวลางาน (คำสั่งหรือเชลล์สคริปต์) ให้ทำงานเป็นระยะในบางช่วงเวลาหรือวันที่

2
ความยาวสูงสุดของคำสั่ง Crontab
มีข้อ จำกัด ของอักขระที่คำสั่งใน crontab หรือไม่? ฉันมี crontab ที่มีคำสั่ง 178 ตัวอักษรและดูเหมือนว่าจะถูกตัดทอนที่ 164 เมื่อดำเนินการ ฉันสามารถบอกหมายเลขนี้ได้จากอีเมลที่ฉันได้รับและจากสี vi ที่เปลี่ยนไปจากจุดนั้น ดังนั้นมันเป็นข้อ จำกัด "ทางการ" หรือไม่? ฉันหาเอกสารเกี่ยวกับเรื่องนี้ไม่พบ
20 linux  cron 

2
การเพิ่มไฟล์ลงใน /etc/cron.d ไม่ทำให้มันทำงาน (ubuntu 10.04)
หากฉันสแกนไฟล์ cron ลงใน /etc/cron.d มันจะไม่ทำงานจนกว่าฉันจะแก้ไขไฟล์และเปลี่ยนคำสั่ง ดูเหมือนว่า crond จะหยิบไฟล์ cron ขึ้นมา ฉันจะทำให้ cron โหลดไฟล์ cron ใหม่ใน ubuntu 10.04 ได้อย่างไร 'touch'ing ไฟล์ไม่ทำงานหรือ' รีสตาร์ท cron 'หรือ' reload cron ' ไฟล์ cron ของฉันถูกตั้งค่าให้ทำงานทุกนาทีและบันทึกลงในไฟล์ ไม่มีอะไรสิ้นสุดในล็อกไฟล์จนกว่าฉันจะแก้ไขคำสั่งและไม่มีรายการสำหรับไฟล์นั้นใน / var / log / syslog ฉันนิ่งงัน นี่คือไฟล์ cron ของฉันบันทึกไว้ใน /etc/cron.d/runscript (โปรดสังเกตว่าลงท้ายด้วยบรรทัดใหม่) # Runs the script every minute. This is …
20 ubuntu  cron 

4
การเรียกใช้ crontab ไม่มีตัวแปรสภาพแวดล้อมเช่นเดียวกับการเรียกใช้งานผู้ใช้
ฉันรันงาน crontab ของฉัน0 2 */1 * * /aScript >aLog.log 2>&1ในฐานะผู้ใช้ 'รูท' และอย่างไรก็ตามฉันพบว่า env นั้นแตกต่างจาก env ของผู้ใช้ 'รูท' และดังนั้นจึงพบพฤติกรรมการใช้งานที่แตกต่างกันของสคริปต์ของฉัน ความพยายามแก้ไขคือการวางคำสั่งส่งออกในไฟล์ rc.d แต่ก็ยังไม่ปรากฏขึ้น! ฉันจะวางคำสั่งส่งออกในaScriptด้วยตัวเอง คำถามของฉันคือมีวิธีที่ดีกว่าในการแก้ไขปัญหานี้หรือไม่ และทำไม env ถึงหายไปแม้ว่าจะมาจาก 'รูต' ของผู้ใช้คนเดียวกัน? (ฉันแก้ไข crontab โดยใช้ 'crontab -e' จากรูท)

3
crontab ทำงานเป็นผู้ใช้เฉพาะ
ฉันต้องเรียกใช้สคริปต์ทุกวัน ควรเรียกใช้สคริปต์ในฐานะผู้ใช้ที่ระบุ (เช่น user1) ที่ไม่เป็นรูท ดังนั้นฉันจึงใส่ไฟล์ cron ที่ / etc / cron.d และใส่ชื่อผู้ใช้ในบรรทัด (คอลัมน์ที่ 2) แต่มันมีข้อผิดพลาดที่บอกว่าไม่พบคำสั่ง ฉันสงสัยว่าสคริปต์ไม่ได้ทำงานเป็นสภาพแวดล้อมของ user1 ฉันพลาดอะไรไปหรือเปล่า?
20 cron 

2
มียูทิลิตี้เช่น cron ที่จัดตารางเวลาการทำงานในภายหลัง (แต่เพียงครั้งเดียว)?
ฉันกำลังพยายามออกแบบโปรแกรมที่ส่งข้อความเมื่อมีเหตุการณ์บางอย่าง (ไม่ใช่ระยะ) เกิดขึ้น ตอนนี้ฉันต้องการสคริปต์ที่พบเมื่อเหตุการณ์นี้เกิดขึ้นจากนั้นกำหนดเวลางาน (cron-like) ที่จะส่งข้อความก่อนที่จะเกิดขึ้น ตัวอย่างที่เป็นรูปธรรมมากขึ้นจะมีลักษณะเช่นนี้: สคริปต์ A ทำงานและตรวจจับในครั้งต่อไปของเหตุการณ์ สคริปต์ A ใช้ ??? เพื่อกำหนดตารางเวลาสคริปต์ B ให้ทำงานที่เวลา $ เวลา $ ??? เรียกสคริปต์ B ซึ่งส่งข้อความ ปัญหาคือเหตุการณ์อาจเกิดขึ้นแบบสุ่มภายใน 11 วันและจะเกิดขึ้นเพียงครั้งเดียว Cron ดูเหมือนจะไม่เหมาะสมสำหรับเรื่องนี้ - ฉันไม่ต้องการให้งานนี้ทำงานมากกว่าหนึ่งครั้ง ดังนั้นฉันเดา (สั้น ๆ ) มียูทิลิตี้ที่ให้การเรียกใช้สคริปต์ที่ล่าช้าเป็นระยะหรือไม่?
19 linux  bash  cron 

4
อะไรอาจทำให้“ การอนุญาตถูกปฏิเสธ” สำหรับคำสั่ง 'crontab -e`?
นี่คือผลลัพธ์ที่ฉันหวังว่าจะเป็นประโยชน์: nick@home-sv-1:~$ crontab -e /var/spool/cron/crontabs/nick: Permission denied nick@home-sv-1:~$ echo $EDITOR emacs nick@home-sv-1:~$ ls /var/spool/cron/crontabs ls: cannot open directory /var/spool/cron/crontabs: Permission denied nick@home-sv-1:~$ sudo ls -al /var/spool/cron/crontabs total 12 drwx-wx--T 2 root crontab 4096 2009-10-25 20:45 . drwxr-xr-x 3 root root 4096 2009-05-18 01:19 .. -rw------- 1 root root 612 2009-10-25 …
19 cron 

5
เรียกใช้งานคำสั่ง rsync ผ่าน ssh ด้วยเอเจนต์ ssh ผ่าน crontab
ฉันมี cronjob: 0 9 * * * rsync -a mydir remote_machine: ฉันติดตั้งสิ่งนี้ด้วย 'crontab -e' ฉันมี ssh-agent กำลังทำงานอยู่และเมื่อฉันรันคำสั่ง rsync มันทำงานโดยไม่มีการโต้ตอบกับผู้ใช้หรือการป้อนรหัสผ่านใด ๆ แต่ cronjob ล้มเหลวด้วยข้อความต่อไปนี้: Date: Wed, 9 Dec 2009 11:11:00 -0600 (CST) From: Cron Daemon <me@my_machine.my_domain> To: me@my_machine.my_domain Subject: Cron <me@my_machine> rsync -a /home/me/mydir remote_machine: Permission denied, please try again. Permission …
18 rsync  cron 


9
สคริปต์เพื่อทดสอบโดยอัตโนมัติหากมีเว็บไซต์
ฉันเป็นผู้พัฒนาเว็บไซต์โดดเดี่ยวที่มี Centos VPS ของตัวเองที่โฮสต์เว็บไซต์เล็ก ๆ น้อย ๆ สำหรับลูกค้าของฉัน วันนี้ฉันค้นพบบริการ httpd ของฉันหยุดทำงาน (โดยไม่มีเหตุผลที่ชัดเจน - แต่นั่นเป็นอีกเธรดหนึ่ง) ฉันรีสตาร์ท แต่ตอนนี้ฉันต้องหาวิธีที่ฉันจะได้รับแจ้งทางอีเมลและ / หรือ SMS หากมันเกิดขึ้นอีกครั้ง - ฉันไม่ชอบเมื่อลูกค้าของฉันโทรหาฉันเพื่อบอกเว็บไซต์ของพวกเขาไม่ทำงาน! ฉันรู้ว่าอาจมีความเป็นไปได้ที่แตกต่างกันมากมายรวมถึงซอฟต์แวร์ตรวจสอบสถานะเซิร์ฟเวอร์ ฉันคิดว่าสิ่งที่ฉันต้องการจริงๆคือสคริปต์ที่ฉันสามารถเรียกใช้เป็นงาน cron จากโฮสต์ dev ของฉัน (ซึ่งทำงานในสำนักงานของฉันอย่างถาวร) ที่พยายามโหลดหน้าจากเซิร์ฟเวอร์ที่ใช้งานจริงของฉันและถ้ามันไม่โหลดภายใน 30 วัน วินาทีจากนั้นจะส่งอีเมลหรือ SMS ฉันค่อนข้างขยะที่เชลล์สคริปต์ดังนั้นคำถามนี้ ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมอย่างสุดซึ้ง


7
ฉันจะใช้นามแฝงใน crontab ได้อย่างไร
ฉันมีคำสั่งบางอย่างในของฉันที่ฉันต้องการจะเรียกจากฉัน.profilecrontab ตัวอย่างเช่นถ้าฉันมี alias notify-me="~/bin/notify.pl -u user1" alias notify-team="~/bin/notify.pl -u user1 user2 user3 user4 ...." ฉันต้องการเรียกนามแฝง 0 11 * * * notify-team ดังนั้นหากรายการในฉัน.profileได้รับการปรับปรุงฉันก็ไม่จำเป็นต้องอัปเดตcrontabด้วย อย่างไรก็ตามดูเหมือนว่าฉันจะไม่สามารถใช้ชื่อแทนcrontabได้ มีวิธีแก้ไขไหม? ฉันลองคำแนะนำที่นี่เพื่อตั้งค่าสภาพแวดล้อม (เช่น / bin / bash -lc และสคริปต์-wrapper script) ดูเหมือนว่าจะใช้งานได้กับสคริปต์ แต่ไม่ใช่นามแฝง ความคิดใด ๆ
16 shell  cron  alias 

1
cron.d จะแจ้งระบบอย่างไร
หากฉันใส่สคริปต์ใหม่เข้าไป/etc/cron.d/ในระบบจะทราบได้อย่างไรว่าจะแทรกสคริปต์นั้นลงใน crontab ทั่วโลก ฉันต้องรีสตาร์ทกระบวนการเพื่อรับมันหรือไม่? ไม่initเรียกใช้ crontab ทุกนาทีและมันจะได้รับอีกครั้งที่สแกนแล้ว? มันใช้ inotify และดู/etc/cron.d? ไม่พบสิ่งใดที่ชัดเจนมากนักและฉันก็สงสัยอยู่เสมอ
16 cron 

4
วิ่ง cron ทุก ๆ 10 นาที
ฉันมีสคริปต์หลามบนเดสก์ท็อปของฉัน: /home/ceasor/Desktop/script.py ใน/etc/crontabฉันเขียนว่า: 0 */2 * * * ceasor sudo python /home/ceasor/Desktop/script.py สคริปต์ python ไม่ได้รับการเรียกใช้ ฉันจะเรียกใช้ cron ทุก ๆ 10 นาทีได้อย่างไร
16 cron 

1
การรับบันทึก cron เพื่อเพิ่มลงในไฟล์ไม่ใช่ลบล้างมัน
ครั้งแรกฉันขอโทษถ้านี่คือการแลกเปลี่ยนที่ผิดสำหรับสิ่งนี้ แต่มันดูเหมือนว่าเป็นสิ่งที่ถูกต้อง นี่คือ crontab ของฉันตอนนี้: MAILTO=****@gmail.com 10,30,50 * * * * ~/webapps/****/apache2/bin/start */10 * * * * /usr/local/bin/python2.7 ~/webapps/****/WR/cron.py > ~/webapps/****/WR/cron.log 2>&1 แต่ทุกครั้งที่เอาต์พุตถูกวางลงในไฟล์ cron.log เนื้อหาเก่าทั้งหมดจะถูกเขียนทับ ฉันจะหยุดสิ่งนั้นได้อย่างไร หรือถ้ามันเป็นไปไม่ได้มีทางเลือกอะไร? หมายเหตุ: ****ใน URL และอีเมลจะมีการซ่อนข้อมูลส่วนบุคคล
15 linux  ssh  cron 

4
วิธีกำหนดเวลางานเซิร์ฟเวอร์อย่างชาญฉลาดกว่าด้วย cron
ฉันทำงานทุกนาทีเพื่อทำดัชนีเนื้อหาของเว็บไซต์อีกครั้ง วันนี้เสิร์ชเอ็นจิ้นเสียชีวิตและเมื่อฉันเข้าสู่ระบบมีกระบวนการกำพร้าหลายร้อยรายการที่เริ่มโดย cron มีวิธีการใช้ซอฟต์แวร์ที่มีอยู่บางประเภทที่จะให้ฉันทำงานทุกนาที แต่จะไม่เปิดตัวอินสแตนซ์อื่นหากงานนั้นไม่ส่งคืน (เช่นเนื่องจากกระบวนการของเครื่องมือค้นหาล้มเหลว)

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