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

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

내 소스 서버 스크립트는 여러 서버에 ssh를 시도하고 응용 프로그램별 명령을 실행하려고 하는데 cat, chmod와 같은 OS 명령을 제외하고는 알 수 있습니다. command: not Found와 같은 오류가 발생합니다. 아래는 스크립트입니다.

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" --> 명령을 실행하고 출력을 원본 서버에 씁니다.

관련 정보