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

ยูทิลิตี้ที่ใช้สำหรับกำหนดเวลาเหตุการณ์ที่จะเกิดขึ้นครั้งเดียวในอนาคต

6
ทำไมเราต้องใช้คำสั่ง“ at” ใน Linux?
ฉันกำลังศึกษาโค้ดที่ใช้atคำสั่ง ฉันมองไปรอบ ๆ และพบว่ามันถูกใช้เพื่อเรียกใช้งานแบ็ตช์ มันถูกใช้เพื่อกำหนดเวลางาน มันถูกกำหนดให้เป็นอินพุตคำสั่งและเวลาสัมพันธ์หรือสัมบูรณ์ ดังนั้นคำถามแรกของฉันคือ: ทำไมatคำสั่งใช้? ภายใต้สถานการณ์ใดที่เราต้องใช้at? ฉันพบมันเมื่อมีรหัสสคริปต์ทุบตีพยายามถอนการติดตั้งซอฟต์แวร์และเมื่อมีการเริ่มบริการพื้นหลังบางอย่าง คำถามที่สองของฉัน: อะไรคือความแตกต่างระหว่างการมีคำสั่งที่ดำเนินการเป็นงานแบทช์และมีคำสั่งดำเนินการในการเรียกคำสั่งโดยตรง (หรือใน subshell)?
38 bash  at 

6
ลบงาน `at` ทั้งหมด
ฉันรู้ว่าการลบatงานที่กำหนดเวลาที่ฉันต้องใช้atrm "numjob1 numjob2"แต่มีวิธีที่ง่ายในการทำเช่นนั้นสำหรับงานทั้งหมดหรือไม่
32 command-line  at 


1
`at` รันคำสั่งในภายหลังหรือไม่หากคอมพิวเตอร์ปิดในเวลาที่กำหนด
ฉันต้องการกำหนดเวลางานด้วยatแต่ฉันไม่แน่ใจว่าจะเกิดอะไรขึ้นหากคอมพิวเตอร์ถูกระงับในเวลาที่กำหนด: คำสั่งจะถูกดำเนินการทันทีที่คอมพิวเตอร์ตื่นขึ้นมาอีกครั้ง (เช่นเดียวกับanacron) หรือจะไม่ถูกดำเนินการเลย (เช่นเดียวกับcron) หากคุณระบุงานที่จะเรียกใช้ในเวลาและวันที่ที่ระบุอย่างแน่นอนในอดีตงานจะทำงานโดยเร็วที่สุด นั่นคือสิ่งที่ manpage พูดเกี่ยวกับเรื่องนี้ แต่มันไม่ตรงกับกรณีของฉัน: ฉันไม่ต้องการระบุงานที่จะทำงานในอดีตฉันต้องการเรียกใช้งานในอนาคตและถามว่าatจะจัดการอย่างไรถ้าคอมพิวเตอร์ กำลังนอนหลับอยู่ นี่ไม่ใช่คำสั่ง Run at ที่ซ้ำกันเมื่อคอมพิวเตอร์หลับเพราะคำถามนี้ถามว่าatจะปลุกคอมพิวเตอร์ให้เรียกใช้งานคำสั่งหรือไม่และเป็นวิธีการป้องกัน atd ไม่ให้ทำงานในอดีตหรือไม่ เพราะนี่เป็นเรื่องเกี่ยวกับวิธีการป้องกันไม่ให้เรียกatใช้งาน "เก่า" เหล่านั้น (โดยมีคำตอบที่ดีมาก!)
20 scheduling  at 

4
เหตุใดคำสั่ง 'at' นี้จึงไม่พิมพ์ไปยังเอาต์พุตมาตรฐาน
ฉันเป็นสามเณร Linux ญาติ ฉันพยายามที่จะเรียนรู้วิธีการใช้เพื่อที่ฉันสามารถกำหนดการงานที่จะเริ่มต้นในเวลาต่อมาโดยไม่ต้องใช้at sleepฉันได้ดูคำถามก่อนหน้านี้เพื่อขอความช่วยเหลือ คำถามของฉันคือในสคริปต์ทุบตีตัวอย่างต่อไปนี้ที่ฉันสร้างขึ้นทำไม"กำลังรัน"ไม่เคย - เท่าที่ฉันสามารถบอกได้ - พิมพ์ไปยังเอาต์พุตมาตรฐาน (เช่นคอนโซลทุบตีของฉัน) #!/bin/bash echo "Started" at now + 1 minutes <<EOF echo "Running" EOF echo "Finished" ผลลัพธ์ที่ฉันเห็นคือตัวอย่างเช่น: Started warning: commands will be executed using /bin/sh job 3 at Fri Jul 12 17:31:00 2013 Finished พบคำตอบสำหรับคำถามของฉันในคำเตือนหรือไม่ ถ้าเป็นเช่นนั้น/bin/shแตกต่างจากเอาต์พุตมาตรฐานอย่างไร
15 output  at 

1
ทำไมคำสั่ง echo ไม่ทำงานกับคำสั่ง at?
เมื่อฉันพิมพ์: at now + 1 min at>play /usr/share/sounds/startrek.wav at>ctrl+d มันใช้งานได้ดังนั้นหลังจากผ่านไปหนึ่งนาทีเสียงก็จะดังขึ้น แต่เมื่อฉันพิมพ์: at now + 1 min at>echo "Teresa the green vegetable lover" at>ctrl+d ฉันไม่ได้รับการตอบกลับจากเชลล์ แต่หลังจากผ่านไป 1 นาทีจะไม่มีข้อความปรากฏขึ้น
14 command-line  at 

6
ในบางเวลาจากนี้ทำบางสิ่งบางอย่าง (และอาจแสดงผลลัพธ์ในคอนโซล)
ฉันใช้เซิร์ฟเวอร์ Ubuntu 16.04 และฉันต้องการที่จะใช้ยูทิลิตี้atในเซสชันปัจจุบันของฉันเพื่อทำบางสิ่งบางอย่าง 1 นาทีนับจากนี้ (พูด, echo) โดยไม่ต้องระบุวันที่และเวลา - เพียง 1 นาทีล่วงหน้าจากเวลาปัจจุบัน สิ่งนี้ล้มเหลว: echo 'hi' | at 1m เหตุผลที่ฉันเลือกatมากกว่าsleepเพราะช่วงพักการนอนหลับเป็นช่วงปัจจุบันและเหมาะสำหรับการชะลอคำสั่งในเซสชันอื่นมากกว่าที่เราทำงานด้วยเวลาส่วนใหญ่ AFAIR atไม่ทำงานในลักษณะนี้และจะไม่ทำให้เสียเวลาของฉัน Update_1 โดยคำตอบของ Pied Piper ฉันได้ลอง: (sleep 1m; echo 'hi') & ฉันมีปัญหากับวิธีนี้: กระแสข้อมูล "สวัสดี" ถูกพิมพ์ภายในพรอมต์หลักของฉันและเพิ่มพรอมต์รองว่างเปล่า ( _) ทันทีภายใต้พรอมต์หลักที่มีให้ดู: USER@:~# (sleep 1m; echo 'hi') & [1] 22731 USER@:~# hi ^C …
12 console  stdout  at  sleep  delay 

2
ทำไม `at 'เตือนฉันว่าคำสั่งจะถูกดำเนินการโดยใช้ / bin / sh? ถ้าฉันต้องการเปลือกที่แตกต่างกัน
ฉันพยายามที่จะใช้atจากภายในสคริปต์ของฉันและมันพิมพ์: คำเตือน: คำสั่งจะถูกดำเนินการโดยใช้ / bin / sh ฉันจะใช้เปลือกที่แตกต่างกันได้อย่างไรถ้าฉันต้องการ?
12 shell  at 

3
เรียงลำดับที่งานตามลำดับเวลา
อาจเป็นทางออกที่ง่ายฉันหายไป ฉันจะได้รับผลลัพธ์ของการatqเรียงลำดับตามลำดับเวลาได้อย่างไรเพื่อให้ฉันสามารถดูได้ง่ายว่าใครจะทำงานต่อไป manหน้าsortไม่ได้มีอะไรในตัวที่จะรับรู้การประทับเวลาเช่นต่อไปนี้: atq 1264 Sat Mar 24 15:03:00 2012 a master 1445 Sat Mar 24 20:28:00 2012 a master 1548 Sun Mar 25 15:09:00 2012 a master 1193 Sat Mar 24 11:03:00 2012 a master 1359 Sat Mar 24 17:13:00 2012 a master 1726 Mon Mar 26 21:24:00 2012 …
11 date  sort  at 

4
วิธีป้องกัน atd ไม่ให้ทำงานในอดีต?
At daemon เป็นเครื่องมือที่ยอดเยี่ยม! อย่างไรก็ตามหากมีการกำหนดเวลางานไว้เป็นเวลา 8:00 น. และเครื่องจะปิดในเวลานั้นเวลาที่จะทำงานนั้นเมื่อใดก็ตามที่เครื่องถูกบู๊ต สิ่งที่ฉันต้องการจะทำคือหยุดทำงานไม่ได้หากเวลาผ่านไป ฉันค้นหาหน้าคนและออนไลน์ แต่อาจไม่มีคำตอบหรือไม่พบหน้าใดหน้าหนึ่ง ฉันใช้ Arch แต่เท่าที่ฉันรู้นั้นคล้ายกันมากกับการแจกแจง ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!
9 time  scheduling  daemon  at 

2
ผลลัพธ์ของงาน 'at' และ 'cron`' ไปที่ใด?
เอาต์พุตมาตรฐานจากatและcronภารกิจไปที่ใดเนื่องจากไม่มีหน้าจอที่จะแสดง ไม่ปรากฏในไดเรกทอรีที่งานเริ่มจากหรือในโฮมไดเร็กตอรี่ของฉัน ฉันจะคิดออกได้อย่างไรว่าฉันไม่รู้วิธีแก้จุดบกพร่องหรือติดตามงานพื้นหลัง?
9 cron  output  at 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.