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

318
user2066480

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

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

1 ответ на вопрос

0
tripleee

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

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

VISUAL=touch crontab -e crontab -l >saved 

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

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

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