opisy i man opisami ale jak przyjdzie co do czego szczegóły zabijają
Po pierwsze nie zadziała ci nic co wypisuje swoje wyniki do terminala gdyż... uruchamia się to bez terminala więc nic nie zobaczysz.
Więc albo to ma uruchomić jakiś program który sobie działa w tle i nie musisz go widzieć albo uruchamiasz to w screen i wtedy możesz się połączyć z sesją screen później i zobaczyć jak twój program/skrypt działa (ale musi ciągle działać) albo przekierowujesz wyniki do pliku i później oglądasz plik albo wyświetlasz powiadomienia w XWindows.
Uf, ale długie zdanie.
Drugi największy problem to ścieżki do plików wykonywalnych.
O ile w CRONTAB można to sobie dopisać do pliku konfiguracji i to zostaje to w AT musisz to dopisywać albo do każdego zadania albo podawać ścieżki pełne do komend.
Podobno AT przejmuje zmienną PATH ze środowiska w którym się go uruchamia ale mi to sprawiało problemy.
Kolejny drobny problem, tym razem z CRONTAB jest taki, że plik konfiguracyjny musi mieć pustą linię na końcu gdyż inaczej nie wykona się nic.
Problem z AT jest taki, że gdy nie podajesz skryptu do wykonania tylko komendy to musisz otworzyć edytor a potem aby z niego wyjść i zapisać zadanie trzeba wcisnąć <CTRL>D - też trochę się tego naszukałem.
Kolejny problem, z CRONTAB jest taki, że jak coś chcesz zrobić co np. miesiąc to musisz ustawić również wszystkie inne zmienne bo inaczej będzie się to robiło tego dnia co 1 minutę przez cały dzień - można się nieźle wkąpać.
Kolejny problem z AT jest taki, że nie przejmuje zmiennej DISPLAY od systemu więc trzeba mu ją podać aby wyświetlić cokolwiek w XWindows (np. zenity)
A teraz przykłady.
AT (robi zadania jednorazowe) - za 2 minuty
otworzy to edytor zadania gdzie wpisujesz
Kod: Zaznacz cały
env DISPLAY=":0.0" /usr/bin/zenity --info --text="$(/bin/date)"
i naciskasz <CTRL>D
Jeśli masz skrypt shell który chcesz uruchomić to
Kod: Zaznacz cały
at now + 2 minute -f /pełna/ścieżka/nazwa-skryptu.sh
za 3 dni o godzinie 12:00
Kod: Zaznacz cały
at 12:00 + 3 day -f /pełna/ścieżka/nazwa-skryptu.sh
CRONTAB (robi zadania w określonym czasie do ich wykasowania)
zadania dla twojego użytkownika - nie zrobisz nic co potrzebuje uprawnień administratora
pokaże się edytor z plikiem konfiguracji - dopisujesz na końcu
Kod: Zaznacz cały
*/2 * * * * /usr/bin/zenity --info --text="$(/bin/date)" #co dwie minuty
0 12 * * * /pełna/ścieżka/nazwa-skryptu.sh #codziennie w południe
0 12 */3 1 * /pełna/ścieżka/nazwa-skryptu.sh #w styczniu, co 3 dni w południe
@monthly /pełna/ścieżka/nazwa-skryptu.sh #raz w miesiącu
0 */1 * * 7 /pełna/ścieżka/nazwa-skryptu.sh #w każdą niedzielę o pełnej godzinie
Jak chcesz zadania z uprawnieniami ROOT to uruchamiasz edycję z SUDO