Một cách đơn giản để lên lịch một sự kiện duy nhất sẽ xảy ra tại một thời điểm nào đó trong tương lai là gì?


15

Đôi khi tôi muốn máy tính của mình thực hiện một nhiệm vụ duy nhất, nhưng không phải bây giờ. Ví dụ, tôi có thể yêu cầu nó thông báo cho tôi sau 30 phút rằng đã đến lúc nghỉ việc. Hoặc có lẽ tôi muốn nó chạy thử nghiệm phức tạp trong 2 giờ kể từ bây giờ khi tôi chắc chắn rằng hầu hết những người khác sẽ rời khỏi văn phòng.

Tôi biết tôi có thể tạo một công việc định kỳ để chạy vào một thời điểm cụ thể trong ngày, nhưng dường như đó là rất nhiều công việc khi tất cả những gì tôi muốn là một cái gì đó đơn giản như "Chạy kịch bản này trong 10 phút", ngoài ra tôi phải tìm ra thời gian thực sự sẽ là X phút / giờ / ngày kể từ bây giờ, và sau đó xóa công việc định kỳ sau khi hoàn thành.

Tất nhiên tôi chỉ có thể viết kịch bản này và chạy nó trong nền:

sleep X
do_task

Nhưng điều đó có vẻ rất khó hiểu: Tôi cần một kịch bản mới cho mỗi nhiệm vụ hoặc tôi cần viết và duy trì một kịch bản đủ chung để làm những gì tôi muốn, chưa kể tôi phải tính xem có bao nhiêu giây trong vài phút, Giờ, hoặc ngày tôi muốn.

Không có một giải pháp đã được thiết lập cho vấn đề này?


7
Tôi đoán bạn đã không chạy ngang qua tại chưa?
tháng 3/2013

điều này có vẻ rất cơ bản ... nhưng không phải hệ thống của bạn có bất kỳ loại danh sách lịch / việc cần làm nào, với các cảnh báo?
JoséNunoFerreira

Câu trả lời:


27

Tôi sử dụng một tập lệnh đơn giản với 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

Bạn có thể dễ dàng $messagechuyển đến notify-sendhoặc dzennếu bạn muốn thông báo trên màn hình thay vì email.


9
Cũng có thể sử dụng thời gian tương đối ( + 2 days) và các định dạng khác nhau ( YYYY-MM-DD). Tham khảo trang hướng dẫn để biết thêm chi tiết.
Arcege

Có: chúng tôi antipodeans thích DD-MM-YY :)
jasonwryan

Tôi thường cho chúng tôi tại quickie một kịch bản. Cách lười biếng yêu thích của tôi để sắp xếp công việc là "bây giờ +5 phút" cũng có thể là giờ hoặc ngày.
George M

+1 cho tập lệnh và để đề cập đến dzen và thông báo-gửi mà tôi chưa nghe nói đến.
Joe

Chuyển hướng dzen không làm việc cho tôi. unix.stackexchange.com/q/38362/4143
Cory Klein

6

Cách sử dụng chung at

Viết một kịch bản làm những gì bạn muốn làm. Sử dụng đường dẫn đầy đủ cho tất cả các lệnh bên ngoài, đăng nhập đầu ra vào một tệp nhật ký thích hợp hoặc gửi nó.

Kiểm tra kịch bản.

Kích hoạt nó với at -f YOURSCRIPT -t MMDDhhmm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.