여러 서버에 ssh를 시도하는 소스 서버의 스크립트에서 운영 체제 명령(예: cat, chmod..) 이외의 응용 프로그램 특정 명령을 실행하면 명령과 같은 오류가 발생합니다. 찾을 수 없습니다. 아래는 스크립트입니다.
for host in $(cat hosts_list.txt)
do
ssh $host chk_auto_up > "cmd_output.txt"
done
누구든지 명령을 식별하고 파일의 출력을 실행하고 작성하기 위해 스크립트에 무엇을 포함해야 하는지 도와줄 수 있습니까?
명령을 찾을 수 없다는 오류가 발생했습니다.
답변1
다음 줄을 편집하면 됩니다.
ssh $host /path/of/chk_auto_up > "cmd_output.txt"
명령의 절대 경로를 정의합니다.
답변2
SSH를 통해 원격으로 외부 명령을 실행하는 방법에 대한 답변을 찾았습니다.
for host in $(cat /***/thishost/**/username/hosts_list.txt)
do
ssh "$host"
. /**/***/*****/*****/******.${HOST}
chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
exit
done
세부:
hosts_list.txt
--> SSH로 로그인할 서버 목록이 있습니다.ssh "$host"
--> SSH 로그인은 첫 번째 서버에서 발생합니다.. /**/***/*****/*****/******.${HOST}
--> 여기에서 외부 명령 바이너리 경로를 사용할 수 있습니다.chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
--> 명령을 실행하고 출력을 소스 서버에 씁니다.