여러 서버에 SSH를 통해 연결하고 OS 명령이 아닌 애플리케이션별 명령을 실행합니다.

여러 서버에 SSH를 통해 연결하고 OS 명령이 아닌 애플리케이션별 명령을 실행합니다.

여러 서버에 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

세부:

  1. hosts_list.txt --> SSH로 로그인할 서버 목록이 있습니다.
  2. ssh "$host" --> SSH 로그인은 첫 번째 서버에서 발생합니다.
  3. . /**/***/*****/*****/******.${HOST}--> 여기에서 외부 명령 바이너리 경로를 사용할 수 있습니다.
  4. chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt" --> 명령을 실행하고 출력을 소스 서버에 씁니다.

관련 정보