crontab -e изначально выбирает текстовый шаблон, очевидно, из этого файла https://anonscm.debian.org/cgit/pkg-cron/pkg-cron.git/tree/crontab.c. Я хотел бы программно извлечь этот блок текста, чтобы затем я мог добавить строки с заданиями cron в конце шаблона, чтобы он выглядел как отредактированный вручную файл cron.

crontab -e > somefile не работает, потому что он застревает в интерактивной оболочке.

crontab -l > somefile также не работает, потому что при создании учетной записи пользователя нет файла crontab.

Я мог бы попробовать текстовый шаблон sed , но где бы он находился в работающей системе? А также, будет ли он присутствовать, скажем, в образе (Ubuntu), развернутом хостинг-провайдером, или мне сначала нужно будет добавить репозиторий источников в список apt?

Может быть, проще было бы export VISUAL=nano; crontab -e а затем отправьте Ctrl+o, Enter, Ctrl+X, чтобы создать новый файл crontab без вмешательства пользователя? Но как мне отправить нажатия клавиш в интерактивную оболочку внутри bash-скрипта?

1 ответ1

0

Поскольку шаблон встроен в саму программу crontab , нет необходимости его существования в каком-либо другом файле.

Чтобы извлечь его в системе, где у вас нет crontab, попробуйте временно настроить ваш редактор на touch .

VISUAL=touch crontab -e
crontab -l >saved

Вы также можете извлечь его с помощью strings или просто встроить его в документ здесь в своем собственном сценарии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .