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

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

3
กำหนดวันสุดท้ายของทุกเดือน
ฉันอ่านจากคำแนะนำในการกำหนดตารางสคริปต์ในวันสุดท้ายของเดือน: หมายเหตุ: ผู้อ่านที่ฉลาดอาจสงสัยว่าคุณจะสามารถตั้งคำสั่งให้ดำเนินการในวันสุดท้ายของทุกเดือนได้อย่างไรเพราะคุณไม่สามารถกำหนดค่าวันที่ให้ครอบคลุมทุกเดือนได้ ปัญหานี้ทำให้เกิดโปรแกรมเมอร์ Linux และ Unix และวางไข่โซลูชั่นที่แตกต่างกันไม่กี่ วิธีการทั่วไปคือการเพิ่มคำสั่ง if-then ที่ใช้คำสั่ง date เพื่อตรวจสอบว่าวันในวันพรุ่งนี้คือ 01: 00 12 * * * if [`date +%d -d tomorrow` = 01 ] ; then ; command1 สิ่งนี้จะตรวจสอบทุกวันเวลา 12.00 น. เพื่อดูว่าเป็นวันสุดท้ายของเดือนหรือไม่และหากเป็นเช่นนั้น cron จะรันคำสั่ง วิธีการ[`date +%d -d tomorrow` = 01 ]ทำงานหรือไม่ แก้ไขให้ถูกต้องthen; command1หรือไม่?
10 shell-script  cron  date  test 

5
ข้อผิดพลาด nginx logrotate ในงาน cron
ฉันใช้ Ubuntu 14.04 LTS และ nginx ใน Digital Ocean VPS และได้รับอีเมลเหล่านี้เป็นครั้งคราวเกี่ยวกับงาน cron ที่ล้มเหลว: เรื่อง การทดสอบ Cron -x / usr / sbin / anacron || (cd / && run-parts --report /etc/cron.daily) เนื้อหาของอีเมลคือ: /etc/cron.daily/logrotate: ข้อผิดพลาด: ข้อผิดพลาดในการรันสคริปต์ postrotate ที่ใช้ร่วมกันสำหรับ '/var/log/nginx/*.log' run-parts: /etc/cron.daily/logrotate ออกมาพร้อมกับรหัสส่งคืน 1 มีความคิดเห็นเกี่ยวกับวิธีการแก้ไขปัญหานี้หรือไม่? ปรับปรุง: /var/log/nginx/*.log { weekly missingok rotate 52 compress …
10 ubuntu  cron  nginx  logrotate 

5
เปลี่ยนเขตเวลาของ cronjob
ฉันมี cronjob ซึ่งดำเนินการทุกวันเวลา 9:00 น. เวลา UTC ฉันอยู่ใน GMT + 1 ดังนั้นจึงดำเนินการเวลา 10:00 น. ตามเวลาท้องถิ่น เมื่อมีการเปลี่ยนแปลงเขตเวลา (เป็นปรับเวลาตามฤดูกาล DST) cronjob จะยังคงดำเนินการเวลา 9:00 น. เวลา UTC แต่เวลา 11:00 น. ตามเวลาท้องถิ่น แต่ฉันต้องการให้มันทำงานในเวลา 10:00 ไม่ว่าจะเป็นฤดูร้อนหรือไม่ก็ตาม ฉันจะทำอย่างไร
10 shell  cron  timezone 

2
ระบบ Crontab หรือ Root Crontab
ระบบ crontab: /etc/crontab ราก crontab: sudo crontab -u root -e วิธีไหนเป็นที่ต้องการ ตามที่พวกเขาทำงานทั้งหมดภายในสิทธิ์ของผู้ดูแลระบบ
10 sudo  cron  root 

2
เชลล์แบบโต้ตอบที่มีสภาพแวดล้อมเหมือนกับ cron
ฉันตระหนักถึงข้อผิดพลาดมากมายในโลกมหัศจรรย์ของ crontabs แต่บางครั้งมันจะช่วยแก้ไขปัญหาได้มากมายเมื่อคุณมีวิธีที่ชาญฉลาดในการป้อนเชลล์แบบโต้ตอบ (ทุบตี) ที่มีสภาพแวดล้อมที่เหมือนกันทุกประการเหมือนกับเมื่อเชลล์สคริปต์ทำงานจาก crontab ตอนนี้ฉันคิดว่าตัวเอง/bin/openvt -c8 -- /bin/bash --noprofile -lแต่ต้องใช้สิทธิ์รูทกำหนดตัวแปรมากเกินไปและsu myusernameตั้งค่าสภาพแวดล้อมพิเศษได้ง่าย มีใครรู้วิธีที่จะเริ่มเชลล์ bash แบบอินเตอร์แอคทีฟที่มีสภาพแวดล้อมเหมือนกันกับ cron และไม่ต้องการสิทธิ์รูทบน Kubuntu? โบนัสเมื่อใช้งานในเซสชัน ssh ใน GUI และในระบบปฏิบัติการต่อไปนี้อย่างน้อยหนึ่งอย่างเช่น HP-UX, Solaris และ AIX

1
เป็นไปได้หรือไม่ที่จะกำหนดเวลาพักเครื่องฮาร์ดไดรฟ์ (7 วัน)?
ฉันกำลังมองหาวิธีกำหนดเวลาเมื่อฮาร์ดไดรฟ์ภายนอกที่เชื่อมต่อกับกล่อง Linux (Debian 9) ของฉันเข้าสู่โหมดสลีป (หยุดหมุน) หากต้องการใส่สิ่งนี้ลงในเนื้อหา: ฉันมีกล่อง Linux ที่ทำงานเป็นเซิร์ฟเวอร์มัลติมีเดีย หากมีการโทรเพื่อดึงเนื้อหาที่อยู่ในฮาร์ดไดรฟ์ภายนอกมันมักจะใช้เวลา 15-30 วินาทีสำหรับฮาร์ดไดรฟ์ที่จะปลุกและเริ่มหมุนซึ่ง a) กำลังหงุดหงิดและ b) บางครั้งทำให้เกิดการหมดเวลากับเซิร์ฟเวอร์มัลติมีเดีย ฉันสามารถตั้งค่าฮาร์ดไดรฟ์ให้ตื่นและหมุนตลอด 24/7 แต่ดูเหมือนว่าจะเสียเวลาส่วนใหญ่ฉันจะใช้เซิร์ฟเวอร์มัลติมีเดียเมื่อฉันอยู่ที่บ้าน มีเครื่องมือหรือคำสั่งซอฟต์แวร์ใดบ้างที่ฉันสามารถใช้เพื่อกำหนดตารางรายสัปดาห์สำหรับเมื่อฮาร์ดไดรฟ์หมุน - เช่นวันจันทร์ถึงวันศุกร์: การหมุนระหว่าง 5 โมงถึง 23 โมงเช้าวันเสาร์ - อาทิตย์: การหมุนระหว่าง 3 โมง จับเวลาระบบ

6
ทำให้การเชื่อมต่อ SSH แบบย้อนกลับอัตโนมัติตอนบูต
ฉันมีพีซีที่อยู่เบื้องหลัง NAT ซึ่งทำให้การเชื่อมต่อ SSH แบบย้อนกลับกับ Digitalocean VPC ของฉัน ฉันใช้การเชื่อมต่อ SSH แบบย้อนกลับนี้จากที่บ้านเพื่อลงชื่อเข้าใช้พีซีในสำนักงานของฉัน (ฉันได้รับอนุญาตให้ทำ) และคัดลอกไฟล์และทำสิ่งสำคัญอื่น ๆ แม้ว่าจะไม่บ่อยนักฉันสังเกตว่า PC office ของฉันรีสตาร์ท (เนื่องจากไฟฟ้าขัดข้อง ฯลฯ ) และหยุดการเชื่อมต่อ SSH ที่กลับด้านที่ทำกับ VPC ของฉัน ในกรณีเหล่านี้ฉันไม่สามารถเชื่อมต่อจากพีซีที่บ้านของฉันกับพีซีในสำนักงานของฉันได้ ฉันเรียกใช้สคริปต์ต่อไปนี้เพื่อให้การเชื่อมต่อกลับ + พร็อกซีแบบไดนามิกกลับไปยังไม่ระบุชื่อการรับส่งข้อมูลของฉัน (เนื่องจากฉันไม่ต้องการแบ่งปันข้อมูลการท่องเว็บ) ที่สร้างขึ้นที่พีซีในสำนักงาน autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC ไม่มีทางที่ฉันจะสามารถเรียกใช้สคริปต์ thsi อีกครั้งบนพีซีของฉันเมื่อรีสตาร์ทเนื่องจากฉันไม่ได้อยู่ที่นั่น เพื่อที่จะแก้ปัญหานี้ฉันติดตั้ง crontab ต่อไปนี้ หมายเหตุ: rev.shไฟล์มีบรรทัดข้างต้น ใบรับรอง "DigitalOcean" …

1
งาน Cron ทำงาน 1 ชั่วโมงโดยไม่เห็นด้วยกับเวลาของระบบ
ตัวอย่างของปัญหา: * 9 * * * echo 9 * 10 * * * echo 10 ด้านบนจะส่งอีเมลถึงผู้ใช้ทุกนาที แต่คำตอบ "9" ทั้งหมดจะเกิดขึ้นเวลา 10:00 น. -> 10:59 น. ในขณะที่ข้อความ "10" จะเข้ามาในเวลา 11:00 น. -> 11:59 น. . ใช้งานของ * * * * * /bin/date ; /bin/date -u ส่งคืนวันที่และเวลาที่คาดหวัง (ถูกต้อง) สิ่งนี้เป็นจริงสำหรับทั้ง UTC และเวลาท้องถิ่น (อเมริกา / …
9 cron 

1
ผู้ใช้ x ไม่สามารถใช้โปรแกรมนี้ (crontab)
Ubuntu 14.04 ฉันไม่เข้าใจพฤติกรรมที่ฉันเห็นด้วยการตั้งค่าบัญชี crontab สำหรับบริการ (ไม่มีชื่อเข้าสู่ระบบ) (ชื่อcurator) เมื่อฉันเข้าสู่ระบบในฐานะ root นี่คือสิ่งที่ฉันได้รับ: # crontab -u curator -l The user curator cannot use this program (crontab) แต่เมื่อฉันเปลี่ยนไปใช้บัญชีผู้ใช้มันใช้งานได้ดี: # su -s /bin/bash curator curator@host$ crontab -l no crontab for curator มี/etc/cron.allowไฟล์ว่างเปล่าและไม่มี/etc/cron.denyไฟล์ในระบบ ตามman crontab: หากไฟล์ /etc/cron.allow มีอยู่คุณจะต้องแสดงรายการ (หนึ่งผู้ใช้ต่อบรรทัด) ในนั้นเพื่อให้สามารถใช้คำสั่งนี้ได้ หากไฟล์ /etc/cron.allow ไม่มีอยู่ แต่ไฟล์ /etc/cron.deny นั้นมีอยู่คุณต้องไม่แสดงรายการในไฟล์ …
9 ubuntu  cron 

1
การค้นหางาน cron ที่ถูกกำหนดเวลาให้ทำงานในวันที่ / เวลา X ในอนาคต
มีวิธี "คิวรี" crontab เพื่อค้นหางาน cron ที่ทำงานในบางวัน / เวลาโดยพลการหรือในช่วงเวลาที่กำหนดหรือไม่ ตัวอย่างเช่นกำหนดว่าจะให้ทำงานช่วงใดบ้างระหว่างเวลา 14:00 น. ถึง 16:00 น. ในวันนี้จะทำงานในวันเสาร์หน้าเวลา 10.00 น. หรือทำงานทุกวันอาทิตย์ มีการกำหนดเวลางานจำนวนมากดังนั้นการอ่าน crontabs ทั้งหมดด้วยมือจึงไม่ใช่ตัวเลือกจริงๆ
9 cron 

1
Cronjob เพื่อเรียกใช้แล้วยุติ
ฉันต้องการเพิ่มรายการ cron ที่ทำสิ่งที่ชอบ: 00 00 * * * * /tmp/script.sh มีบางอย่างที่ฉันสามารถเพิ่มในตอนท้ายของบรรทัดเพื่อที่ว่าเมื่อเสร็จแล้วมันจะลบบรรทัดออกจาก cron ของฉัน นอกจากนี้หากมีวิธีที่ดีกว่าในการทำเช่นนั้นฉันจะต้องการข้อมูลนั้นแทน

2
ผลลัพธ์ของงาน 'at' และ 'cron`' ไปที่ใด?
เอาต์พุตมาตรฐานจากatและcronภารกิจไปที่ใดเนื่องจากไม่มีหน้าจอที่จะแสดง ไม่ปรากฏในไดเรกทอรีที่งานเริ่มจากหรือในโฮมไดเร็กตอรี่ของฉัน ฉันจะคิดออกได้อย่างไรว่าฉันไม่รู้วิธีแก้จุดบกพร่องหรือติดตามงานพื้นหลัง?
9 cron  output  at 

2
เปิด emacs ในเทอร์มินัลเมื่อแก้ไข crontab
ฉันมีการติดตั้งเป็นบรรณาธิการเริ่มต้นของฉันในemacs /etc/profileเมื่อฉันต้องการที่จะใช้emacsในสถานี ฉันเปิดมันด้วย-nwตัวเลือก ฉันจะมีพฤติกรรมแบบเดียวกันได้อย่างไรเมื่อทำการcrontab -eป้องกันเพื่อเปิดในหน้าต่าง
9 bash  cron  emacs 

1
ฉันจะตั้งค่าขนาดหน้าต่างของ tmux ในเซสชันที่เริ่มต้นโดย cron ได้อย่างไร?
ใน crontab ของฉันฉันอ้างอิง shell script print-size, ที่มีบรรทัดต่อไปนี้ #!/bin/sh tmux new-session -t check-size -d tmux send-keys -t check-size 'echo $COLUMNS $LINES' C-m เมื่อสคริปต์นี้ทำงานเป็นงาน cron สคริปต์จะพิมพ์ออก80 23มาเพราะขนาดเทอร์มินัลเริ่มต้นคือ 80x24 ถ้าฉันเรียกใช้งานเชลล์สคริปต์นี้จากหน้าต่างเทอร์มินัลจะพิมพ์ขนาดของหน้าต่างเทอร์มินัลนั้น (ลบหนึ่งบรรทัดสำหรับบรรทัดสถานะของ tmux) มีวิธีที่จะมีอิทธิพลต่อขนาดของหน้าต่าง tmux ดังนั้นสคริปต์ข้างต้นจะพิมพ์สิ่งที่แตกต่างพูด132 42ในงาน cron หรือไม่ ถ้ามันสำคัญนี่ก็สำหรับ Ubuntu 14.04 แต่ฉันสงสัยว่ามันมีพฤติกรรมเหมือนกันใน * ระวัง
2 cron  tmux 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.