Linux na polecenie trwały podczas restartów?

10

Czy zadania zaplanowane z „at” są trwałe po ponownym uruchomieniu? Czy ktoś wie, w jaki sposób można wykonać kopię zapasową zadań bez dostępu do odpowiednich katalogów buforowania?

Chcę wysyłać wiadomości e-mail w określonych odstępach czasu od teraz do roku (tj. 1 tydzień, 1 miesiąc, 6 miesięcy), więc wydaje się, że to dobre narzędzie, może jest lepsze?

Kyle Brandt
źródło

Odpowiedzi:

10

Tak, są trwałe podczas ponownego uruchamiania (to tylko pliki w buforze).

Jeśli chodzi o dostęp do nich, jako zwykły użytkownik nie będziesz mieć dostępu do plików, ale możesz zbudować system do tworzenia kopii zapasowych. Może coś takiego:

MYAT=~/atjobs

/bin/rm -rf $MYAT/*

at -l >$MYAT/JOBS
for j in `cat $MYAT/JOBS | cut -f1`
do
  at -c $j >$MYAT/$i
done

Jeśli musisz później ponownie załadować zadanie:

for j in `cat $MYAT/JOBS | cut -f1`
do
  # make sure the job isn't defined
  atrm $j
  # reload it from the file
  at -f $MYAT/$j `grep ^$j $MYAT/JOBS | awk '{ print $3, $2 }'`
done

(wszystko to jest w większości niesprawdzone. Podstawowe polecenie jest poprawne, ale gdzieś tam jest logika)

Powiedziawszy to wszystko, nie jestem pewien, czy użyłbym tego do opisanego zadania. Prawdopodobnie skorzystałbym z istniejącego systemu kalendarza. W przeciwnym razie użyłbym zadania cron, które działało codziennie i sprawdzało plik, aby sprawdzić, czy są jakieś wiadomości do wysłania. O wiele bardziej przenośny niż w pracy i o wiele bardziej prawdopodobne, że zostaniesz zapamiętany, jeśli zmienisz maszyny ...

jj33
źródło
Rozumiem, jak to tworzy kopie zapasowe, ale w jaki sposób w razie potrzeby przeładowałem te wszystkie zadania?
Kyle Brandt
3

Kiedy planujesz zadanie z at, nawet jeśli zrestartujesz się (są one przechowywane w / var / spool / cron / atjobs), zadanie jest nadal planowane.

Serdecznie

anapivirtua
źródło
0

Nie korzystałem często z polecenia at, ale użyłem crona do zaplanowania zadań do wykonania i jest on trwały podczas restartów. cron pracował dla mnie przez ostatnie piętnaście lat.

Jeśli potrzebujesz komendy, która ma być wykonywana raz dziennie, a następnie wykonywana raz, nawet jeśli system ulegnie awarii, możesz użyć anakronu .

shapr
źródło
Nie sądzę, że cron jest do tego naprawdę dobry, chyba że użyję go, jak stwierdził jj33, ponieważ nie chcę uruchamiać czegoś w regularnych odstępach czasu. Na przykład, kiedy planuję, nawet AI będzie chciała, aby wydarzenie A było uruchamiane za miesiąc, ale nie co miesiąc.
Kyle Brandt