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


15

บ่อยครั้งที่ฉันต้องการให้คอมพิวเตอร์ทำภารกิจเดียว แต่ไม่ใช่ตอนนี้ ตัวอย่างเช่นฉันสามารถแจ้งให้ฉันทราบภายใน 30 นาทีว่าถึงเวลาออกจากงานแล้ว หรือบางทีฉันต้องการให้ทำการทดสอบที่ซับซ้อน 2 ชั่วโมงต่อจากนี้เมื่อฉันแน่ใจว่าคนส่วนใหญ่จะหายไปจากสำนักงาน

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

แน่นอนฉันสามารถเขียนสคริปต์นี้และเรียกใช้ในพื้นหลัง:

sleep X
do_task

แต่นั่นก็ดูเหมือนว่าจะเป็นเรื่องไร้สาระ: ฉันต้องการสคริปต์ใหม่สำหรับแต่ละงานหรือฉันต้องเขียนและบำรุงรักษาสคริปต์ทั่วไปพอที่จะทำสิ่งที่ฉันต้องการไม่ต้องพูดถึงว่าฉันต้องคิดออกว่ากี่วินาทีในไม่กี่นาที ชั่วโมงหรือวันที่ฉันต้องการ

ไม่มีวิธีแก้ไขปัญหานี้ที่สร้างไว้แล้วหรือไม่?


7
ฉันคาดเดาคุณไม่ได้ทำงานในที่หรือยัง
jw013

นี่อาจดูธรรมดามาก ... แต่ระบบของคุณไม่มีรายการสิ่งที่ต้องทำในปฏิทิน / สิ่งที่ต้องทำพร้อมคำเตือน?
JoséNunoFerreira

คำตอบ:


27

ฉันใช้สคริปต์ง่ายๆด้วยat:

#!/bin/bash
# email reminder notes using at(1)...

read -p "Time of message? [HH:MM] " time
read -p "Date of message? [dd.mm.yy] " date
read -p "Message body? " message

at "$time" "$date" <<EOF
echo "$message" | mailx -s "REMINDER" me@gmail.com
EOF

คุณสามารถส่ง$messageไปยังnotify-sendหรือdzenถ้าคุณต้องการการแจ้งเตือนทางเดสก์ท็อปแทนอีเมลได้อย่างง่ายดาย


9
ยังสามารถใช้เวลาญาติ ( + 2 days) และรูปแบบที่แตกต่างกัน ( YYYY-MM-DD) ศึกษา manpage สำหรับรายละเอียดเพิ่มเติม
Arcege

ใช่: พวกเราชอบ antipodeans DD-MM-YY :)
jasonwryan

ฉันมักจะเราที่สคริปต์กุ๊กกิ๊กหนึ่ง วิธีขี้เกียจที่ฉันชอบที่สุดในการกำหนดตารางเวลางานคือ "ตอนนี้ +5 นาที" ซึ่งอาจเป็นชั่วโมงหรือวันก็ได้
George M

+1 สำหรับสคริปต์และการกล่าวถึง dzen และการแจ้งเตือน - ส่งซึ่งฉันไม่เคยได้ยิน
Joe

การเปลี่ยนเส้นทาง dzen ไม่ได้ผลสำหรับฉัน unix.stackexchange.com/q/38362/4143
Cory Klein

6

วิธีทั่วไปในการใช้atคือ

เขียนสคริปต์ที่ทำในสิ่งที่คุณต้องการจะทำ ใช้พา ธ แบบเต็มสำหรับคำสั่งภายนอกทั้งหมดบันทึกผลลัพธ์ไปยังไฟล์บันทึกที่เหมาะสมหรือส่งเมล

ทดสอบสคริปต์

เปิดใช้งานด้วย at -f YOURSCRIPT -t MMDDhhmm

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