Назад | Перейти на главную страницу

Как автоматизировать ввод для повторяющегося скрипта! Ожидаете в Баше?

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

Мой сценарий таков. Мне часто приходится запускать три сценария для развертывания приложения. Скрипты были созданы старшим системным администратором. В целом с ними все идет гладко и без ошибок. Но я должен присматривать за ними, чтобы получить информацию. :(

В части этих сценариев есть части, когда мне нужно ввести да или нет. Мои ответы никогда не меняются, если только предыдущая часть не дает сбой, тогда я выбираю «нет», и там написано «сбой сборки».

В основном я запускаю следующие части:

1 - SSH на сервер развертывания

2 - отредактируйте небольшую строку в файле (которая указывает информацию о сервере)

3 - запустите сценарий A, который в основном переносит все файлы из развертывания на целевой сервер. Единственное, что я могу здесь сказать, это конец. Он спрашивает, отображается ли правильная дата от цели, если я говорю да, сборка прошла успешно.

4 - запустите сценарий B также с сервера развертывания, которому требуется некоторая конкретная информация, например:

./scriptB X Y Z где X, Y, Z изменяются в зависимости от информации целевого сервера.

В сценарии B есть несколько вопросов вроде «вы хотите сделать это или отказаться от этого?», Ответы остаются прежними. Также иногда возникает ошибка ANT, поэтому он хочет, чтобы я нажимал «1», пока сценарий не продолжится.

5 - запустить сценарий C, который очень похож на сценарий B. Однако в какой-то момент он собирается выполнить определенный шаг, и я должен вручную нажать «control c», чтобы выйти.

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

Еще лучше, если бы я мог просто щелкнуть какой-нибудь EXE на моем ноутбуке с Windows, и он сделает все. Это вообще возможно?

Похоже, вам следует обратить внимание на две вещи:

  1. Редактирование старого сценария для автоматического выполнения некоторых проверок (например, с отметкой времени) или удаления запросов (ищите read команд) и ответьте по умолчанию.
  2. Используя инструмент, предназначенный именно для этой задачи, например Ansible.

Если вы хотите узнать что-то новое и улучшить свое резюме системного администратора, я бы посмотрел на второй вариант, хотя первый должен работать нормально в краткосрочной перспективе!

Если вы начнете с первого варианта, который я упомянул, попробуйте сделать так, чтобы сценарий A не требовал приглашения - используйте команду date функция, чтобы получить текущую дату, и выполнить проверку автоматически. Если вы сравниваете дату из только что скопированных файлов, у вас должна быть возможность использовать такие инструменты, как find или ls чтобы получить эту информацию.

Запустив скрипт C, должно быть тривиально вставить exit команда, где вы обычно нажимаете CtrlC.

Превыше всего, не забудьте проверить это на некритичных ящиках! Вы же не хотите блокировать производственную установку, пока взламываете старые скрипты ...