Jaki jest prosty sposób, aby zaplanować jedno wydarzenie w przyszłości?


15

Często zdarza się, że chcę, aby mój komputer wykonał jedno zadanie, ale nie teraz. Mogę na przykład powiadomić mnie za 30 minut, że nadszedł czas, aby wyjść z pracy. A może chcę, aby za 2 godziny przeprowadził skomplikowany test, kiedy jestem pewien, że większość innych zniknie z biura.

Wiem, że mógłbym stworzyć zadanie crona do uruchomienia o określonej porze dnia, ale wydaje mi się, że to dużo pracy, kiedy wszystko, czego chcę, to coś tak prostego jak „Uruchom ten skrypt za 10 minut”, poza tym musiałbym wymyślić o której faktycznie będzie X minut / godzin / dni od teraz, a następnie usuń zadanie crona po zakończeniu.

Oczywiście mogę po prostu napisać ten skrypt i uruchomić go w tle:

sleep X
do_task

Ale to wydaje się tak niezręczne: albo potrzebuję nowego skryptu dla każdego zadania, albo muszę napisać i utrzymywać skrypt wystarczająco ogólny, aby zrobić to, co chcę, nie wspominając już o tym, że muszę wymyślić, ile sekund zajmuje minut, godziny lub dni, których chcę.

Czy nie ma już ustalonego rozwiązania tego problemu?


7
Zgaduję, że nie byli natknąć się jeszcze?
jw013

to może wydawać się bardzo proste ... ale czy twój system nie ma żadnych funkcji kalendarza / listy rzeczy do zrobienia, z ostrzeżeniami?
José NunoFerreira

Odpowiedzi:


27

Używam prostego skryptu z 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

Równie łatwo możesz przesłać powiadomienie $messagedo notify-sendlub dzenna adres e-mail zamiast na pulpicie.


9
Może także używać czasu względnego ( + 2 days) i różnych formatów ( YYYY-MM-DD). Więcej informacji można znaleźć na stronie podręcznika.
Arcege

Tak: my, antypodani, wolimy DD-MM-RR :)
jasonwryan

Zwykle używamy szybkich, jednorazowych skryptów. Moim ulubionym leniwym sposobem na zaplanowanie pracy jest „teraz +5 minut”, co może również oznaczać godziny lub dni.
George M

+1 za skrypt i za wzmiankę o dzen i notify-send, o których nie słyszałem.
Joe

Przekierowanie dzen nie działa dla mnie. unix.stackexchange.com/q/38362/4143
Cory Klein

6

Ogólny sposób użycia atto

Napisz skrypt, który robi to, co chcesz zrobić. Użyj pełnej ścieżki dla wszystkich poleceń zewnętrznych, zaloguj dane wyjściowe do odpowiedniego pliku dziennika lub prześlij je pocztą.

Przetestuj skrypt.

Aktywuj za pomocą at -f YOURSCRIPT -t MMDDhhmm

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.