Добавить строки в cron из сценария

Есть ли способ добавить строки в cron с помощью скрипта?

Я обычно делаю это с помощью crontab -e, но я хотел бы автоматизировать эту задачу с помощью сценария оболочки.

1
задан 4 April 2014 в 08:47

1 ответ

Если вы хотите отредактировать значение в своем crontab, вы можете сделать что-то в соответствии с:

$ crontab -l | sed -e 's/foo/bar/' | crontab -

Очевидно, что вам нужно быть осторожным с вашей подстановкой, чтобы убедиться, что она соответствует строке (ы), которые вы хотите изменить; в противном случае все foos будут изменены на bars (в этом примере).

Преимущество этого метода заключается в том, что вы не заменяете весь crontab. (Метафорический пинцет, а не кувалда).

Вы можете использовать любую команду редактирования вместо sed. Например, если вы хотите использовать ed для создания строки, которая начинается следующим образом:

2 * * * * /sbin/flitch --days 3,4 > /var/log/flitch.out 2>&1

Скажите, что эта строка относится к числу строк или у вас есть много разных crontab для обновления на разных системах и вы знаете, что ваша линия будет единственной строкой с термином flitch в ней.

Это может выглядеть так:

$ cat /tmp/edscript
/flitch
s/3/9/
w
q
$ crontab -l > /tmp/out && ed /tmp/out < /tmp/edscript && crontab - < /tmp/out
$ crontab -l
...
2 * * 1 * /sbin/flitch --days 9,4 > /var/log/flitch.out 2>&1
...

Теперь я должен признать, что почти 100 % времени sed будет делать то, что будет делать, но всегда полезно иметь дополнительный инструмент для швейцарского армейского ножа. ^. ^

3
ответ дан 25 May 2018 в 19:10

Другие вопросы по тегам:

Похожие вопросы: