Qual è un modo semplice per pianificare un singolo evento che accadrà in futuro?


15

Ci sono volte in cui voglio che il mio computer svolga una singola attività, ma non ora. Ad esempio, potrei avermi avvisato in 30 minuti che è ora di lasciare il lavoro. O forse voglio che esegua un test complicato tra 2 ore quando sono sicuro che quasi tutti gli altri se ne andranno dall'ufficio.

So che potrei creare un cron job da eseguire a una determinata ora del giorno, ma sembra un sacco di lavoro quando tutto quello che voglio è qualcosa di semplice come "Esegui questo script in 10 minuti", inoltre dovrei capire a che ora saranno effettivamente X minuti / ore / giorni da ora, quindi eliminare il processo cron una volta terminato.

Naturalmente potrei semplicemente scrivere questo script ed eseguirlo in background:

sleep X
do_task

Ma sembra così goffo: o ho bisogno di un nuovo script per ogni attività, o ho bisogno di scrivere e mantenere uno script abbastanza generico per fare quello che voglio, per non parlare del fatto che devo capire quanti secondi sono nei minuti, ore o giorni che voglio.

Non esiste una soluzione già stabilita a questo problema?


7
Sto indovinando che non hai eseguito tutto a ancora?
jw013,

questo può sembrare molto semplice ... ma il tuo sistema non ha alcun tipo di calendario / elenco di cose da fare, con avvertenze?
JoséNunoFerreira,

Risposte:


27

Uso un semplice script con 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

Si potrebbe altrettanto facilmente il tubo del $messageper notify-sendo dzense si voleva un messaggio sul desktop, invece di una e-mail.


9
Può anche usare il tempo relativo ( + 2 days) e diversi formati ( YYYY-MM-DD). Consultare la manpage per maggiori dettagli.
Arcege,

Sì: noi antipodi preferiamo GG-MM-AA :)
jasonwryan,

Di solito ci occupiamo di script veloci. Il mio modo pigro preferito per programmare un lavoro è "ora +5 minuti", che potrebbe anche essere ore o giorni.
George M,

+1 per la sceneggiatura e per aver menzionato Dzen e notifica-invio di cui non avevo sentito parlare.
Joe,

Il reindirizzamento Dzen non funziona per me. unix.stackexchange.com/q/38362/4143
Cory Klein

6

Il modo generico di usare atè

Scrivi una sceneggiatura che fa quello che vuoi fare. Utilizzare il percorso completo per tutti i comandi esterni, registrare l'output in un file di registro appropriato o inviarlo via e-mail.

Prova lo script.

Attivalo con at -f YOURSCRIPT -t MMDDhhmm

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.