2015-01-22 2 views
0

하나의 서버에 하나의 스크립트 space.sh을 생성했으며이 스크립트는 다른 서버에서 ssh를 실행하고 마운트 포인트를 확인합니다. 서버의 암호가 작동하지 않거나 만료 된 경우 단순히 서버 이름이나 IP를 출력하고 암호를 묻습니다.프론트 엔드의 다른 쉘 스크립트에서 쉘 스크립트 호출

내 메일에 출력하고 싶습니다. 그래서 이것을 위해 하나 더 많은 스크립트 mail.sh을 만들었습니다. 간단히 sh space.sh >> test.txt을 호출하고 mailx에서 내 메일에이를 가져옵니다.

여기 문제가 있습니다. mail.sh를 실행하는 동안 space.sh가 백엔드에서 실행 중이기 때문에 암호를 묻지 않습니다.

답변

0

문제는 귀하의 스크립트 space.sh가 입력 대기 중이며 나중에 전화하는 mailx 프로그램이 출력을 기다리는 것입니다. 그래서 교착 상태가 발생했습니다.

비대화 형으로 실행해야하는 스크립트는 사용자 입력을 요구해서는 안됩니다.

내가 이렇게 예를 들어, 암호를 사용하지 않는 입력을 예를 기다리지 않고 로그인 공개 키를 사용하는 방법에 SSH 전화를 권합니다 : 로그인이없는 경우

ssh -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" hostname 

암호가 없기 때문에 PasswordAuthentication을 시도하지 않지만 "Permission denied (publickey, password)"오류와 함께 반환됩니다.