반복적인 스크립트 입력을 자동화하는 방법! Bash에서 기대하시나요?

반복적인 스크립트 입력을 자동화하는 방법! Bash에서 기대하시나요?

저는 주니어 시스템 관리자입니다. 제가 이 질문을 하는 이유는 여기에 스크립팅에 능숙한 수석 시스템 관리자가 없기 때문입니다. 선배님들은 본사에 계시는데 이런 일을 하기에는 너무 바빠요.

내 시나리오는 이렇습니다. 애플리케이션을 배포하려면 세 가지 스크립트를 자주 실행해야 합니다. 스크립트는 고위 시스템 관리자가 작성했습니다. 일반적으로 모든 일이 원활하게 진행되며 오류도 없습니다. 하지만 입력을 위해 보살펴야 합니다. :(

이 스크립트의 일부 중에 예 또는 아니요를 입력해야 하는 부분이 있습니다. 이전 부분이 실패하지 않는 한 내 대답은 절대 바뀌지 않습니다. 그런 다음 아니요를 선택하면 '빌드 실패'라는 메시지가 표시됩니다.

기본적으로 내가 실행하는 부분은 다음과 같습니다.

1 - 배포 서버에 SSH로 연결

2 - 파일의 작은 문자열 편집(서버 특정 정보 지정)

3 - 기본적으로 배포의 모든 파일을 대상 서버로 scps하는 스크립트 A를 실행합니다. 여기서 제공해야 할 유일한 입력은 끝에 있습니다. 대상에서 올바른 날짜가 표시되는지 묻고, 그렇다고 대답하면 빌드가 성공한 것입니다.

4 - 배포 서버에서도 스크립트 B를 실행합니다. 여기에는 다음과 같은 특정 정보가 필요합니다.

./scriptB XYZ 여기서 X, Y, Z 변경은 대상 서버 정보에 따라 달라집니다.

스크립트 B에는 '이것을 하시겠습니까, 아니면 삭제하시겠습니까?'와 같은 몇 가지 질문이 있으며 대답은 동일하게 유지됩니다. 또한 때로는 ANT 버그가 있어서 스크립트가 계속될 때까지 '1'을 누르도록 요구합니다.

5 - 스크립트 B와 매우 유사한 스크립트 C를 실행합니다. 어느 시점에서 특정 단계를 실행하려고 하는데 종료하려면 수동으로 '컨트롤 c'를 눌러야 합니다.

나는 스크립팅에 능숙하지 않지만 누군가 나에게 이 작업을 수행하는 방법을 알려주거나 아이디어를 줄 수 있다면 좋을 것입니다. 나는 아마도 Expect를 사용할 수 있을 것이라고 생각했습니다.

더 좋은 점은 Windows 노트북에서 EXE를 클릭하기만 하면 모든 작업이 수행된다는 점입니다. 그게 가능할까요?

답변1

다음 두 가지를 살펴봐야 할 것 같습니다.

  1. 일부 검사를 자동으로 수행하거나(예를 들어 타임스탬프 하나) 프롬프트를 제거하고( read명령 찾기) 기본값으로 응답하도록 이전 스크립트를 편집합니다.
  2. 다음과 같이 정확히 이 작업을 위해 설계된 도구를 사용합니다.앤서블.

새로운 것을 배우고 시스템 관리자 CV를 개선하고 싶다면 두 번째 옵션을 살펴보겠습니다. 단, 첫 번째 옵션은 단기적으로는 괜찮을 것입니다!

제가 언급한 첫 번째 옵션으로 시작하는 경우 스크립트 A에 프롬프트가 필요하지 않도록 만들어 보십시오. 이 date기능을 사용하여 현재 날짜를 가져오고 자동으로 확인하십시오. 방금 복사한 파일과 비교하는 날짜인 경우 find또는 같은 도구를 사용하여 ls해당 정보를 얻을 수 있습니다.

exit스크립트 C를 실행하면 일반적으로 를 누르는 명령을 입력하는 것이 쉽습니다 CtrlC.

무엇보다, 중요하지 않은 상자에서 이것을 테스트하는 것을 잊지 마십시오! 오래된 스크립트를 해킹하는 동안 프로덕션 설정을 방해하고 싶지는 않습니다...

관련 정보