Istnieją dwa sposoby edytowania własnych crontab
:
interaktywnie, używając crontab -e
, który otworzy crontab
edytor określony przez $VISUAL
lub $EDITOR
, lub
nieinteraktywnie, używając crontab crontab.txt
, który po prostu zaimportuje crontab
wpisy z pliku crontab.txt
, zastępując istniejącą aktywną tabelę crontab dla bieżącego użytkownika.
Problem polega na tym, że po prostu crontab
źle używasz polecenia.
Poniższe informacje dotyczą nieinteraktywnej manipulacji crontabem:
Aby programowo usunąć określone zadania , możesz zrobić coś takiego
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
gdzie PATTERN
jest wyrażenie regularne, które będzie pasować do zadań, które chcesz usunąć. Tutaj crontab -l
da ci swój obecny crontab
.
Lub, jeśli masz wpisy w pliku o nazwie crontab-fragment.txt
, który chcesz usunąć z aktywnego crontab,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Odczytuje bieżącą tabelę crontab i odfiltrowuje (usuwa) każdą linię, która również występuje w pliku crontab-fragment.txt
w bieżącym katalogu (przy użyciu pełnego porównania ciągów linii). Wynik jest zapisywany, crontab.txt
a następnie ładowany stamtąd, aby zastąpić bieżący plik crontab.
Aby dodać jedno lub kilka zadań , zrób coś takiego
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Zakłada się, że plik crontab-fragment.txt
zawiera wpisy, które chcesz dodać. Odczytuje bieżący plik crontab, dołącza do niego wpisy crontab-fragment.txt
i tworzy crontab.txt
. crontab.txt
Plik następnie zastępuje bieżącej tabeli.