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

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

1
วิธีการเปิดใช้งาน Virtualenv เมื่อสคริปต์ Python เริ่มทำงาน?
ฉันต้องการที่จะกำหนดเวลาหลามสคริปต์เพื่อเรียกใช้ cron ในบางวันปัญหาคือว่าเพื่อให้example.pyการทำงานexample-envจะต้องมีการเปิดใช้งานจะมีวิธีที่จะทำให้การexample.pyเปิดใช้งาน virtualenv ของตัวเองเมื่อใดก็ตามที่ cron ดำเนินการได้หรือไม่ ถ้าไม่เช่นนั้นฉันต้องสร้างสคริปต์ทุบตีbash.shที่มี #!/usr/bin/env bash workon example-env python2 example.py แล้วกำหนดเวลาที่จะดำเนินการโดย cron ในบางวัน? หรือฉันต้องทำอย่างอื่น? ทั้งสองวิธีใช้ได้กับฉันฉันแค่อยากรู้วิธีที่ถูกต้องในการทำ บางทีฉันอาจชอบวิธีการทุบตีสคริปต์เนื่องจากฉันมีไฟล์ Python จำนวนมากที่จะทำงานดังนั้นถ้าฉันวางไว้ในสคริปต์ทุบตีและกำหนดเวลานั้นดูเหมือนว่าง่ายกว่าสำหรับฉัน แต่อีกครั้งฉันไม่รู้วิธีที่ถูกต้องที่จะทำ ดังนั้นฉันขอคำแนะนำ

1
cron เที่ยงคืน 00 24 หรือ 00 00 [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา crontab ปัจจุบันของฉันดูเหมือนว่า: 00 00 * * 1-5 "/home/user/script.sh" แต่ดูเหมือนว่ามันไม่ได้ถูกกระตุ้น ส่วนคนอื่น ๆ ก็เริ่มทำงานได้ดียกเว้นคนที่ทำงานตอนเที่ยงคืน รูปแบบที่เหมาะสมสำหรับเที่ยงคืนคืออะไร 00 00หรือ00 24?
13 cron 

1
งาน Cron ไม่ทำงานหลังจากการเปลี่ยนเขตเวลา
ฉันพยายามกำจัดข้อผิดพลาดทั่วไปจำนวนมาก ตรวจสอบให้แน่ใจว่า PATH พร้อมใช้งานสำหรับ cron มี endline ที่ท้ายไฟล์ crontab เขตเวลาถูกตั้งค่าโดย: cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime ทำงานdateในทุบตีฉันได้รับ: Tue Sep 17 15:14:30 SGT 2013 เพื่อตรวจสอบว่า cron ใช้พร้อมกันหรือไม่ * * * * * date >> date.txt ให้ผลลัพธ์วันที่เดียวกันใน date.txt นี่คือสคริปต์ที่ฉันพยายามเรียกใช้: event.sh: #!/usr/bin/env bash echo data > /root/data.txt การใช้crontab -eบรรทัดด้านล่างใช้งานได้ * * * * * …
13 cron  timezone 

2
systemd - หน่วยจับเวลาที่เลียนแบบพฤติกรรมของ anacron
ฉันต้องเขียนหน่วยจับเวลาสำหรับเครื่องที่เปลี่ยนบ่อย (เช่นการตั้งค่าเดสก์ท็อปแบบดั้งเดิม) หน่วยตัวจับเวลานี้ต้องเปิดใช้งานเป็นประจำ แต่ไม่บ่อยนัก (เช่นรายสัปดาห์รายเดือน) ฉันหาวิธีบางอย่าง แต่พวกเขาทั้งหมดไม่พอดี: ตามหน้า man เท่านั้นOnBootSecและOnStartupSecสั่งจะเปิดใช้งานหากจุดเวลาที่กำหนดไว้ในอดีต ฉันพบตัวอย่างด้วยการใช้การรวมกันของเหล่านี้ด้วยOnActiveSecเพื่อกำหนดเหตุการณ์ปกติ ปัญหาคือ: ทุกครั้งที่มีการบูตเครื่องตัวจับเวลาจะเปิดใช้งานหน่วยที่กำหนดค่าไว้ หากคุณมีตัวจับเวลาซึ่งควรจะใช้ครั้งเดียวต่อสัปดาห์ / เดือนซึ่งบ่อยเกินไป ตัวอย่างเช่น: ฉันไม่ต้องการหมุนบันทึกของฉันสามครั้งต่อวัน ... การแก้ปัญหาด้วยOnCalendarคำสั่ง หากเครื่องปิดที่จุดเวลาที่กำหนด (ส่วนใหญ่เที่ยงคืนเพราะถ้าคุณข้ามชั่วโมงในการกำหนดเวลามันเริ่มต้นที่ 00:00:00) จับเวลาจะไม่เปิดใช้งานหลังจากการบูตครั้งต่อไป อย่างน้อยฉันก็เข้าใจ นั่นถูกต้องใช่ไหม ? ดังนั้นที่นี่มาคำถาม: มีการจับเวลากับกิจกรรมปฏิทินเปิดใช้งานหลังจากการเริ่มต้นต่อไปถ้าเวลาที่กำหนดไว้ในอดีต? ถ้าไม่: มีวิธีแก้ปัญหาเพื่อรับพฤติกรรมดังกล่าวหรือไม่?
13 cron  systemd 


6
CronJob ทุก ๆ 25 นาที
ฉันต้องการทราบว่ามีวิธีที่ง่ายกว่าในการทำงานทุก ๆ 25 นาทีหรือไม่ ใน cronjob ถ้าคุณระบุพารามิเตอร์นาทีเป็น * / 25 มันจะทำงานเฉพาะในนาทีที่ 25 และ 50 ของทุกชั่วโมง
13 linux  cron 

6
เพิ่มบางอย่างลงใน crontab โดยทางโปรแกรม (ผ่าน ssh)
ฉันมีสคริปต์การปรับใช้จะต้องเพิ่มบางสิ่งบางอย่างให้กับผู้ใช้crontab(ทริกเกอร์สคริปต์ที่ล้างบันทึกทุก ๆ XXX วัน) แต่สิ่งนี้จะต้องทำในระหว่างการปรับใช้ครั้งแรกหรือเมื่อจำเป็นต้องได้รับการอัปเดต (ฉันสามารถเรียกใช้xxx.py deploy envหรือxxx.py update env) ดังนั้นฉันต้องทำสิ่งนี้: Check if my cronJob already exist Put my cronJob if it does not already exist or update my cronjob if one of the parameter of the command is different ฉันไม่เห็นวิธีการเพิ่ม / ตรวจสอบ / ลบบางสิ่งออกไปcrontabโดยไม่ต้องใช้crontab -eหรือแก้ไขcrontabไฟล์ (ดาวน์โหลดเขียนใหม่อัปโหลดใหม่อีกครั้ง) PS: นี่คือ cronjob …
13 scripting  cron 

2
Bash Script เมื่อเริ่มต้น? (Linux)
มีวิธีใดบ้างในการสร้าง / เรียกใช้สคริปต์ทุบตีในการรีบูต (เช่นใน Debian / Ubuntu เป็นต้นเนื่องจากเป็นกล่อง 2 กล่องที่บ้านของฉัน) นอกจากนี้มีคำแนะนำที่แนะนำสำหรับการทำงาน cron หรือไม่ ฉันใหม่สมบูรณ์สำหรับพวกเขา (แต่พวกเขาจะใช้ประโยชน์ได้ดี)
12 linux  boot  cron  scheduling 

2
วิธีการป้องกันไม่ให้งาน cron ทำงานในบางช่วงเวลาใน Debian? (a 'gaming' / 'โหมดประสิทธิภาพ')
ดูเหมือนว่าฉันได้ตั้งค่า logcheck เป็นงาน cron และเมื่อใดก็ตามที่กระบวนการทำงานgrepโดยlogcheckใช้เวลาประมาณ CPU ของ CPU ของฉัน ตอนนี้ฉันมีบางช่วงเวลาที่ฉันต้องการ CPU เต็มความจุและให้ระบบของฉันใช้ทรัพยากรน้อยที่สุดเท่าที่จะทำได้ยกเว้นเฉพาะกระบวนการ / (ซึ่งฉันอาจระบุได้) เป็นไปได้ไหมที่จะตั้งค่า Debian 9.1 ด้วยเครื่อง KDE เป็นโหมดประสิทธิภาพบางอย่าง (หรือ 'โหมดการเล่นเกม') ที่ป้องกันกระบวนการที่ผู้ใช้ไม่ได้เริ่มต้นอย่างชัดเจนจากการใช้ทรัพยากรระบบจำนวนมากลดภาระของกระบวนการพื้นหลังและที่สำคัญที่สุด : ล่าช้างาน cron จนกว่าโหมดนั้นจะหยุดอีกครั้ง?

5
ปิดใช้งานอีเมล cron เว้นแต่มีข้อผิดพลาดหรือไม่
ฉันจะรับอีเมลจาก cron ได้ก็ต่อเมื่อมีข้อผิดพลาดเท่านั้น ในกรณีส่วนใหญ่ที่โด่งดังงานจะทำงานได้ดี - และฉันไม่สนใจเกี่ยวกับผลลัพธ์ เป็นเพียงในกรณีที่หายากของความล้มเหลวที่ฉันต้องการ / จำเป็นต้องรู้ ฉันมีprocmailพร้อมใช้งาน - แต่ฉันไม่แน่ใจว่าสิ่งที่ฉันกำลังอธิบายเป็นไปได้ที่จะจัดการ cron ภายนอก "ถูกต้อง"

3
วิธีการหยุดสคริปต์ในเวลาที่กำหนดจนกว่าจะเริ่ม cron อีกครั้ง?
ฉันมี Raspberry Pi ที่ใช้ OSMC อยู่ (Debian based) ฉันได้ตั้งค่างาน cron เพื่อเริ่มสคริปต์ sync.sh เมื่อเวลาเที่ยงคืน 0 0 * * * /usr/local/bin sync.sh ฉันต้องหยุดสคริปต์ตอนเจ็ดโมงเช้า ขณะนี้ฉันกำลังใช้: 0 7 * * * shutdown -r now มีวิธีที่ดีกว่า? ฉันรู้สึกว่าการรีบูตเครื่องเกินความจำเป็น ขอบคุณ
12 debian  cron  shutdown 

4
cronjob สำหรับการสำรองฐานข้อมูลอัตโนมัติไปยังไฟล์นำหน้าวันที่
ฉันใช้ Linux Mint ล่าสุด ฉันสงสัยว่ามันเป็นไปได้ที่จะสร้าง cronjob พิเศษสำหรับการสำรองฐานข้อมูล ใน/etc/cronjobไฟล์ของฉันฉันมีรหัสต่อไปนี้: # Minute Hour Day of Month Month Day of Week Command # (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat) 30 4 * * 1-6 /home/users/backup.sh ในฉัน/home/users/backup.shฉันมี: mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql แทนที่จะfull_myDB.sqlต้องการให้มีบางสิ่งบางอย่างเหมือน2014-04-04_full_myDB.sqlที่วันที่จะถูกเพิ่มแบบไดนามิกขึ้นอยู่กับวันที่เรามี หากไฟล์ SQL Backup เก่ากว่าหนึ่งสัปดาห์ฉันต้องการ cronjob ลบโดยอัตโนมัติ
12 cron  backup  mysql  database 

5
คำสั่งไม่ทำงานใน cron (systemctl suspend)
ฉันมีชุด cronjob นี้: * * * * * /usr/bin/systemctl suspend และมันไม่ทำงาน แต่ฉันสามารถเรียกใช้ในเชลล์และใช้งานได้ ฉันไม่เข้าใจสิ่งที่อาจไม่ทำงาน EDIT การ เปลี่ยนเส้นทางข้อผิดพลาดออกเพื่อ/tmp/errorให้สิ่งนี้: Failed to issue method call: Access denied Failed to issue method call: Access denied คำถามของฉันคือ: cronjobs ทำงานเป็นผู้ใช้พิเศษ ( cronตัวอย่าง) ซึ่งจะอธิบายว่าผู้ใช้ของฉันสามารถเรียกใช้คำสั่ง แต่ไม่ใช่cronตัวเองหรือไม่ คำอธิบายเพิ่มเติม: นี่เป็นตัวอย่างเล็กน้อยเพื่อแสดงปัญหาที่ฉันมีในสคริปต์ (ที่เหมาะสมกว่าคำสั่งเดียวที่ให้ไว้ที่นี่) systemctlsystemdเป็นส่วนหนึ่งของ ฉันคิดว่าการรีบูตการปิดการทำงานชั่วคราวกำลังทำงานกับผู้ใช้ที่ไม่ใช่รูsystemdท อย่างไรก็ตามมันทำงานบนระบบของฉัน สุดท้ายผมใช้ Arch Linux และ/bin, /usr/sbin, /sbinมี symlinks …
12 cron  systemd  suspend 

1
ข้อความเคอร์เนลต่อไปนี้หมายความว่าอย่างไร
ข้อความต่อไปนี้ปรากฏขึ้น / var / log / ข้อความหมายความว่าอะไร? Feb 19 22:51:20 kernel: [ 187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0) มันเกิดขึ้นเมื่องาน cron กำลังจะทำงาน
12 filesystems  cron 

3
การบันทึกเอาต์พุต stderr ทั้งหมดของ crontab ไปยังไฟล์
ตัวอย่างเช่นฉันสามารถบันทึกstderrหนึ่งสคริปต์ด้วยวิธีนี้: * * * * * run_script.sh > /var/log.txt 2>&1 แต่ฉันต้องการบันทึกstderrสคริปต์ทั้งหมดใน crontab ของฉัน ฉันสามารถผนวก> /var/log.txt 2>&1สคริปต์ทั้งหมด cronแต่มันไม่ดีถ้าผมมีหลายร้อยของสคริปต์ใน มีวิธีอื่นที่ง่ายกว่านี้หรือไม่?

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