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

Cron เป็นตัวกำหนดเวลางานที่อนุญาตให้ผู้ใช้เรียกใช้คำสั่งเป็นระยะ

1
ความหมายของเครื่องหมายทับใน crontab คืออะไร?
ฉันได้เห็นบันทึก crontab ในระบบ 0-55/5 * * * * root <command> ฉันอ่านcrontab -eไฟล์ตัวอย่างและฉันรู้ว่าตำแหน่งแรกย่อมาจากนาที แต่ฉันไม่สามารถหาความหมายของ/(สแลช) ที่นั่นได้ มีใครอธิบายความหมายให้ฉันได้บ้าง
31 cron 

10
วิธีการเริ่มต้นสคริปต์ Python ใหม่โดยอัตโนมัติหากมีการฆ่าหรือตาย
ฉันกำลังเรียกใช้สคริปต์ Python ของฉันในพื้นหลังในเครื่อง Ubuntu ของฉัน (12.04) เช่นนี้ - nohup python testing.py > test.out & ตอนนี้อาจเป็นไปได้ว่าในบางช่วงของฉันข้างต้นPython scriptสามารถตายด้วยเหตุผลใดก็ตาม ดังนั้นฉันคิดว่าจะมีcron agentสคริปต์เชลล์ bash ซึ่งสามารถรีสตาร์ทสคริปต์ Python ด้านบนของฉันโดยอัตโนมัติหากมันถูกฆ่าด้วยเหตุผลใดก็ตาม เป็นไปได้ที่จะทำ? ถ้าใช่แล้ววิธีที่ดีที่สุดในการแก้ไขปัญหาเหล่านี้คืออะไร UPDATE: หลังจากสร้างtesting.confไฟล์แบบนี้ - chdir /tekooz exec python testing.py respawn ฉันรันคำสั่ง sudo ด้านล่างเพื่อเริ่มต้น แต่ฉันไม่เห็นว่ากระบวนการทำงานโดยใช้ ps ax หรือไม่ root@bx13:/bezook# sudo start testing testing start/running, process 27794 root@bx13:/bezook# ps …
31 bash  shell  cron  python 

1
ทำไม cron จึงไม่สามารถเรียกใช้เนื้อหา sudo ในสคริปต์ของฉันได้อย่างเงียบ ๆ
ฉันมีเรียกใช้สคริปต์จาก crontab sudoผู้ใช้ที่ไม่ได้รับสิทธิพิเศษที่จะเรียกใช้คำสั่งบางอย่าง ยกเว้นว่ามันจะไม่ สคริปต์ทำงานได้ดี แต่คำสั่ง sudo'ed ล้มเหลวอย่างเงียบ ๆ สคริปต์ทำงานอย่างสมบูรณ์แบบจากเชลล์ในฐานะผู้ใช้ที่เป็นปัญหา Sudo ไม่ต้องการรหัสผ่าน ผู้ใช้ในคำถามได้เข้าถึงที่ได้รับใน(root) NOPASSWD: ALL/etc/sudoers Cron กำลังทำงานและเรียกใช้งานสคริปต์ การเพิ่มdate > /tmp/logผลผลิตอย่างง่ายในเวลาที่เหมาะสม ไม่ใช่ปัญหาสิทธิ์ สคริปต์จะถูกเรียกใช้งานอีกครั้งไม่ใช่คำสั่ง sudo'ed มันไม่ใช่ปัญหาของเส้นทาง การรันenvจากภายในสคริปต์ที่กำลังรันแสดง$PATHตัวแปรที่ถูกต้องซึ่งรวมถึงพา ธ ไปยัง sudo การเรียกใช้โดยใช้เส้นทางแบบเต็มไม่ได้ช่วยอะไร คำสั่งที่กำลังดำเนินการจะได้รับชื่อพา ธ เต็ม การพยายามดักจับเอาต์พุตของคำสั่ง sudo รวมถึง STDERR จะไม่แสดงสิ่งใดที่มีประโยชน์ การเพิ่มsudo echo test 2>&1 > /tmp/logสคริปต์สร้างบันทึกเปล่า sudo binary เองนั้นทำงานได้ดีและรับรู้ว่ามันมีสิทธิ์แม้เมื่อเรียกใช้จาก cron ภายในสคริปต์ การเพิ่มsudo -l …
29 sudo  cron 

8
ทำไม crontab ของฉันถึงไม่เรียก?
ฉันเคยcrontab -eเพิ่มบรรทัดต่อไปนี้ใน crontab ของฉัน: * * * * * echo hi >> /home/myusername/test แต่ฉันไม่เห็นว่าไฟล์ทดสอบถูกเขียนไป นี่เป็นปัญหาสิทธิ์หรือ crontab ทำงานไม่ถูกต้องหรือไม่ ฉันเห็นว่ากระบวนการ cron กำลังทำงานอยู่ ฉันจะแก้ไขข้อบกพร่องนี้ได้อย่างไร แก้ไข - ถาม Ubuntu มีคำถามที่ดีเกี่ยวกับ crontabแต่น่าเสียดายที่ยังไม่ช่วยฉัน แก้ไข 2 - อืมดูเหมือนว่าไฟล์ทดสอบของฉันมี 214 บรรทัดซึ่งหมายความว่าในช่วง 214 นาทีที่ผ่านมามันถูกเขียนไปทุกนาที ฉันไม่แน่ใจว่าปัญหาคืออะไร แต่มันหายไปอย่างชัดเจน
29 cron 

2
จำเป็นต้องรีสตาร์ท cron หรือ crond หลังจากการเพิ่มหรือแก้ไขกำหนดการใหม่แต่ละครั้งหรือไม่
เมื่อฉันกำหนดเวลางานบางอย่างดูเหมือนจะถูกนำไปใช้ทันทีในขณะที่งานอื่นหลังจากรีบูต ดังนั้นแนะนำให้รีสตาร์ทcron( crond) หลังจากเพิ่มงาน cron ใหม่หรือไม่ วิธีการทำอย่างถูกต้อง (โดยเฉพาะในระบบเดเบียน) และควรทำอย่างไรกับsudo(เช่นsudo service cron restart) สำหรับผู้ใช้ปกติ? ฉันเหนื่อย: /etc/init.d/cron restart ซึ่งดูเหมือนจะใช้งานไม่ได้ ( /etc/init.d/cron stopหรือไม่service cron stop) และเสร็จสิ้นด้วยรหัสส่งคืน 1 นี่เป็นส่วนหนึ่งของการส่งข้อความ: เนื่องจากสคริปต์ที่คุณพยายามเรียกใช้ถูกแปลงเป็นงานพุ่งพรวดคุณอาจใช้ยูทิลิตี stop (8) เช่น stop cron stop: ส่งข้อความที่ถูกปฏิเสธ 1 กฎที่ถูกจับคู่ type = "method_call", sender = ": 1.91" (uid = 1000 pid = 3647 comm = …
29 cron 


8
ตรวจสอบว่าสคริปต์เริ่มโดย cron แทนที่จะเรียกใช้ด้วยตนเอง
มีตัวแปรใดที่ cron ตั้งไว้เมื่อรันโปรแกรมหรือไม่? หากสคริปต์ทำงานโดย cron ฉันต้องการข้ามบางส่วน มิฉะนั้นจะเรียกใช้ส่วนเหล่านั้น ฉันจะทราบได้อย่างไรว่าสคริปต์ Bash เริ่มต้นโดย cron
23 bash  shell  scripting  cron 

3
มีการประมวลผลรายการ @daily crontab หลายรายการตามลำดับหรือไม่
ฉันต้องการให้งานสองงานวิ่งเป็นบางครั้งทุกวันตามลำดับที่ฉันระบุ crontab นี้จะทำสิ่งที่ฉันต้องการได้อย่างน่าเชื่อถือหรือไม่ @daily job1 @daily job2 ฉันสมมติว่าพวกเขาทำงานอย่างใดอย่างหนึ่งหลังจากที่อื่น ๆ แต่ผมก็ไม่สามารถที่จะหาคำตอบด้วยการค้นหาเว็บหรือจากส่วนใดของ manpages เหล่านี้: cron(1), ,crontab(1)crontab(5) เห็นได้ชัดว่า crontab ด้านบนจะไม่ทำในสิ่งที่ฉันต้องการถ้า cron ทำงานตามที่กำหนดไว้@dailyในแบบคู่ขนานหรือในลำดับที่คาดเดาไม่ได้ ฉันรู้ว่าฉันสามารถสร้างเชลล์สคริปต์เพียงหนึ่งตัวเพื่อไล่พวกเขาออกไปตามลำดับฉันแค่อยากรู้ว่า cron ควรทำงานอย่างไร (และฉันขี้เกียจเกินไปที่จะรวบรวมข้อมูลทดสอบหรืออ่านซอร์สโค้ด) Cron ให้บริการโดยcronแพคเกจ ระบบปฏิบัติการคือ Ubuntu 10.04 LTS (เซิร์ฟเวอร์)
22 linux  ubuntu  cron 

5
ฉันจะสร้างบริการสำหรับเชลล์สคริปต์ได้อย่างไรเพื่อให้ฉันสามารถเริ่มต้นและหยุดเหมือน daemon ได้?
ฉันใช้ CentOS 7 เป้าหมายของฉันคือการสร้าง cron ทุก ๆ ห้าวินาที แต่ในขณะที่ฉันวิจัยเราสามารถใช้ cron เพียงหนึ่งนาทีดังนั้นสิ่งที่ฉันทำตอนนี้คือฉันได้สร้างเชลล์ไฟล์ hit.sh while sleep 5; do curl http://localhost/test.php; done แต่ฉันกดมันเองด้วยการคลิกขวา สิ่งที่ฉันต้องการคือการสร้างบริการสำหรับไฟล์นั้นเพื่อให้ฉันสามารถเริ่มและหยุดโดยอัตโนมัติ ฉันพบสคริปต์เพื่อสร้างบริการ #!/bin/bash # chkconfig: 2345 20 80 # description: Description comes here.... # Source function library. . /etc/init.d/functions start() { # code to start app comes here # example: …

2
สามารถ grep | crontab ทำลายงานทั้งหมดหรือไม่
grep | crontabวิ่งเพื่อนร่วมงานของฉัน หลังจากนั้นงานทั้งหมดก็หายไป crontab -lดูเหมือนว่าเขากำลังพยายามที่จะเรียกใช้ แล้วเกิดอะไรขึ้นหลังจากรันคำสั่งgrep | crontab? มีใครอธิบายได้บ้าง
21 cron 

2
Cron job ลบไฟล์ที่เก่ากว่า 3 วัน
ฉันต้องลบไฟล์ที่เก่ากว่า 3 วันด้วยงาน cron ใน 3 ไดเรกทอรีที่แตกต่างกัน (ทั้ง 3 ไดเรกทอรีนี้เป็นรายการย่อยของไดเรกทอรีหลัก/a/b/c/1& /a/b/c/2& /a/b/c/3) สามารถทำได้ด้วยหนึ่งบรรทัดใน crontab หรือไม่

4
เส้นทาง shebangs อิสระ
ฉันมีสคริปต์ที่ฉันต้องการให้สามารถทำงานในสองเครื่อง เครื่องทั้งสองนี้รับสำเนาของสคริปต์จากที่เก็บ git เดียวกัน สคริปต์ต้องทำงานด้วยล่ามที่ถูกต้อง (เช่นzsh) น่าเสียดายที่ทั้งคู่ envและzshอาศัยอยู่ในสถานที่ต่าง ๆ ในเครื่องท้องถิ่นและระยะไกล: เครื่องรีโมต $ which env /bin/env $ which zsh /some/long/path/to/the/right/zsh เครื่องท้องถิ่น $ which env /usr/bin/env $which zsh /usr/local/bin/zsh ฉันสามารถตั้งค่า shebang เพื่อให้การทำงานสคริปต์ที่เป็น/path/to/script.shมักจะใช้Zshในที่มีอยู่PATH?
20 shell  zsh  cron  path 

2
ต้นกำเนิดของคำว่า cron?
พยายามที่จะยุติข้อโต้แย้งที่เป็นมิตร "cron" เป็นคำย่อของบางสิ่งหรือไม่ นอกจากนี้ชื่อที่ยอมรับกันทั่วไปคือ "cron" นั้นมาจากสิ่งที่สั้นลงสำหรับบางอย่างเช่นโครโนสหรือตามลำดับเหตุการณ์หรือไม่? ค้นหา Google อย่างรวดเร็วไม่พบสิ่งที่ผมมองหา มันจบลงด้วยการเป็นกระทู้ในฟอรัมที่ไม่มั่นคง

3
RHEL / CentOS เรียกใช้ไฟล์ cronjob ทั้งหมดภายใต้ /etc/cron.d/* หรือแค่บางไฟล์?
นี่คือระบบ Red Hat Enterprise Linux 5 (RHEL) เราจัดการระบบนี้โดยใช้ CFengine เรามี cronjobs หลายตัวที่ทำงานสองครั้งบ่อยเท่าปกติ ฉันตรวจสอบ cronjobs ภายใต้/etc/cron.d/และไดเรกทอรีนี้มีสคริปต์จริงที่เรียกว่าhost-backupและยังมีไฟล์สำรอง cfengine เรียกว่าhost-backup.cfsavedเป็นดังนี้: /etc/cron.d/host-backup /etc/cron.d/host-backup.cfsaved ระบบปฏิบัติการนี้เรียกใช้ไฟล์ทั้งหมดที่ใช้/etc/cron.d/*หรือไม่ใช้เฉพาะไฟล์ที่ตรงกับรูปแบบที่กำหนด ฉันสามารถกำหนดค่าสิ่งนี้และสิ่งนี้กำหนดไว้ที่ไหน? ฉันไม่พบคำตอบนี้ในเอกสาร RHEL หรือ CentOS
19 rhel  cron 

2
ไม่แสดงเอาต์พุตยกเว้นโค้ดออกที่ไม่ใช่ศูนย์
อะไรคือวิธีที่ดีที่สุดในการระงับเอาต์พุต (stdout และ stderr) ยกเว้นว่าโปรแกรมออกด้วยรหัสที่ไม่ใช่ศูนย์ ฉันกำลังคิด: quiet_success() { file=$(mktemp) if ! "$@" > "$file" 2>&1; then cat "$file" fi rm -f "$file" } และวิ่งquiet_success my_long_noisy_script.shแต่ฉันไม่แน่ใจว่ามีวิธีที่ดีกว่า ฉันรู้สึกว่าสิ่งนี้จะต้องเป็นสิ่งที่คนอื่น ๆ ต้องทำ สำหรับบริบทฉันต้องการเพิ่มสคริปต์ cron ของฉันเพื่อที่ฉันจะได้รับอีเมลทุกอย่างหากพวกเขาล้มเหลว แต่ไม่ใช่ถ้าพวกเขาทำไม่ได้

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