필자가 쓰는 일부 스크립트에 도움이 필요합니다.
시나리오 :스크립트 흐름에서 종료 코드 캡처
- 스크립트 는 예약 프로세스에 의해 실행된다. 이 스크립트는 전달 된 인수를 가져 와서 어떤 식 으로든 구문 분석하고 스크립트를 실행합니다. B이 인수로 전달합니다.
- 스크립트 B는 는 sudo -u 사용자 SSH 사용자 @의 REMOTEMACHINE는, (원격 시스템에) 몇 가지 명령을 실행하고 마지막으로 스크립트 C (또한 원격 시스템에서)를 실행한다. 나는 여기에 문서을 사용하여 해당 명령을 전달합니다. 또한 이전 스크립트를이 스크립트에도 전달합니다.
- "흐름"이 올바르게 실행되고 작업이 성공적으로 완료됩니다.
내 문제는 다음과 같습니다이 "흐름"스케줄링 프로세스에 의해 실행되기 때문에 작업이 성공적 여부를 완료하면
가
- , 내가 말할 필요가있다. 내가 종료 코드를 통해이 일을하고있어, 내가 원하는 것은 체인의 종료 코드이며, 오류가 발생한 경우 마지막 스크립트에서 첫 번째 스크립트로 되돌아 간다. 종료 코드는 단일 스크립트에 대해 올바르게 작동하기 때문에 수행 할 수 없습니다 (개별적으로 실행하고 종료 코드를 찾습니다). 그러나 부모 스크립트로 다시 보내지지 않습니다. 내 의견으로는 문제는 ssh가 하위 스크립트에서 종료 코드를 얻고 있다는 것입니다. 하위 스크립트에서 실제로 종료되었습니다. 실행 오류가 없기 때문에 문제가 발생했습니다. 잘못된 명령입니다.
프로세스가 제대로 작동하는 동안
, 나는 아직도이 줄 수 :
ssh: Could not resolve hostname : Name or service not known
을하지만 실제로 스크립트가 성공적으로 완료됩니다.
내가 작성한 내용을 이해했으면 좋겠다. 스크립트를 게시 할 수 있기를 바랍니다.
감사
O.는
편집 :
이것은 스크립트입니다. 변수 이름에 문제가있을 수 있는데, 파일 이름을 quikly로 변경했기 때문입니다. 나는 때문에 나의 낮은 평판의 3 개 파일을 업로드 할 수 있기 때문에
, 나는
SCRIPT FILE
스크립트를 제공해주십시오. –
각 스크립트가 오류가 발생하면 오류를 반환하면됩니다 (명령이 잘못되어도 "실행 오류가 없습니다"로 항상 0이 반환됩니다). 그러면 ";"대신 "&&"로 묶을 수 있습니다. 각 스크립트가 이전 스크립트가 성공적으로 종료되었는지 확인해야하는 경우 –
@OlivierDulac 나는 당신이 말한 것을 이해하지 못합니다. 나는 && 명령을 사용하여 두 번째 스크립트의 명령을 연결하려고 시도했지만 또한 개별적으로 실행하려고 시도했지만 (kinit에 대해 하나의 ssh가 있었고 스크립트를 시작하는 다른 ssh) 문제가 남아 있습니다. – Omar