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
Поскольку шаблон встроен в crontab
саму программу, нет необходимости в его существовании в каком-либо другом файле.
Чтобы извлечь его в системе, где у вас нет crontab, попробуйте временно установить в редакторе touch
.
VISUAL=touch crontab -e
crontab -l >saved
Вы также можете извлечь его с помощью strings
или просто встроить его как документ в свой собственный скрипт.