Получение текстового шаблона crontab из скрипта bash

0

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-скрипта?

user2066480
источник
Пожалуйста, объясните больше о вашей проблеме. Неясно, что вы хотите делать, когда пользователь только что создан и не имеет рабочего файла cron. Вы можете найти некоторые шаблоны в / etc.
MTG
Я нашел это, вроде как вручную, в anonscm.debian.org/cgit/pkg-cron/pkg-cron.git/tree/crontab.c Так как я могу программно получить этот блок текста в Bash-скрипт? Это блок текста, начинающийся со строки 592.
user2066480
удалите \ n и ", и вы можете поместить его в скрипт bash
MTG
вам нужно добавить больше к вашей проблеме. вам нужно указать, какие параметры строки crontab вы хотите исправить и какие вы хотите настроить, например, даты, часы или программу для запуска
MTG
В случае Ubuntu исходные файлы обычно отсутствуют, если не выбран исходный репозиторий? Скажите в образе сервера от хостинг-провайдера.
user2066480

Ответы:

0

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

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

VISUAL=touch crontab -e
crontab -l >saved

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

tripleee
источник
user @ vps: ~ $ VISUAL = touch crontab -e нет crontab для пользователя - используется пустое изменение не производится
user2066480
Не могли бы вы рассказать о двух других предложениях?
user2066480
Скопируйте / вставьте его из исходного файла, который вы нашли в Интернете. Вы могли бы сделать что-то подобное, запустив stringsлокальный crontabдвоичный файл, но выходной поток обычно довольно шумный.
tripleee
... Или замените touchпростой sedскрипт, который добавляет комментарий. Синтаксис варьируется между диалектами, но попробуйтеVISUAL='sed -i \$a\\#' crontab -e
tripleee