2

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

Мне нужно инициализировать crontab и запланировать задачу на слишком большом количестве серверов, чтобы войти на каждый из них по отдельности. Есть ли способ избежать интерактивной части или написать сценарий?

Серверы и мой клиент работают под управлением Ubuntu 13.04.

4 ответа4

3

Из StackOverflow: Linux - Как создать crontab через скрипт

Задания Cron обычно хранятся в пользовательском файле в /var /spool /cron

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

1

Я довольно новичок в написании сценариев оболочки Linux, и я нашел ответы в посте SO, которые Брайан назвал неполными. Они были очень полезны и имели большую часть необходимой мне информации, но я столкнулся с парой проблем с разрешениями и выполнением команд через ssh. Мое окончательное решение:

cd ~/
echo "" > x
sudo cp ~/x /var/spool/cron/crontabs/myuser
sudo chown myuser:crontab /var/spool/cron/crontabs/myuser
echo "*/20 * * * * /path/to/myscript" > c
cat ~/c | crontab -

Сначала я создаю пустой файл crontab, затем исправляю права доступа к тому, что нужно crontab, затем помещаю команду cron в файл и, наконец, сообщаю crontab о планировании сценария.

Добавление команды cron в файл вместо использования echo было необходимо, потому что у меня были проблемы с цитированием по ssh.

0

Вы можете редактировать записи в crontab, не используя опцию -e как указано ниже.

#write out current crontab
crontab -l > mycron
#echo new cron into cron file
echo "<new crontab entry>" >> mycron
#install new cron file
crontab mycron
rm mycron

Это очень хорошо работает для создания / редактирования (использования sed) записей crontab через скрипты.

Источник: StackOverflow

-1

При сложном или крупномасштабном планировании работы cron начинает становиться трудным в управлении. На работе я использую корпоративный (и дорогой) планировщик, который делает управление нашими 300+ заданиями быстрым, но есть и очень приличные свободно доступные решения.

Я предлагаю отойти от cron , особенно если у вас слишком много серверов для входа в систему по отдельности. Управление ими может быть настоящей болью. Попробуйте поискать "бесплатный планировщик заданий в Linux" или посетите http://juiceboxjobs.com, который я использую дома на своей ферме 3D-рендеринга (работает под управлением Ubuntu 12.04).

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