Є два способи редагування одного crontab
:
інтерактивно, використовуючи crontab -e
, що відкриє crontab
в редакторі вказаний $VISUAL
або $EDITOR
, або
неінтерактивно, використовуючи crontab crontab.txt
, що просто імпортує crontab
записи з файлу crontab.txt
, замінюючи існуючі активні кронтибуди для поточного користувача.
Ваша проблема полягає в тому, що ви просто crontab
неправильно використовуєте команду.
Наступне стосується неінтерактивної маніпуляції з кронатом:
Отже, щоб видалити певні завдання програмно, ви могли б зробити щось на кшталт
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
де PATTERN
регулярний вираз, який відповідатиме завданням, які ви хочете видалити. Ось, crontab -l
дамо вам свій струм crontab
.
Або якщо у вас є записи у файлі під назвою, crontab-fragment.txt
який ви хочете видалити з активного кронтабуля,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Це зчитує поточний crontab і фільтрує (видаляє) будь-який рядок, який також зустрічається у файлі crontab-fragment.txt
у поточному каталозі (використовуючи порівняння рядків у повному рядку). Результат зберігається crontab.txt
і завантажується звідти для заміни поточного кронта.
Щоб додати одне чи кілька завдань , зробіть щось на кшталт
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Це передбачається, що файл crontab-fragment.txt
містить записи, які ви хочете додати. Він читає поточний crontab, додає записи crontab-fragment.txt
до цього і створює crontab.txt
. Потім crontab.txt
файл замінює поточний crontab.