SSH를 통해 전달할 때 명령을 찾을 수 없습니다.

SSH를 통해 전달할 때 명령을 찾을 수 없습니다.

체계:

Red Hat Enterprise Linux 서버 버전 7.6(Maipo), 3.10.0-957.el7.x86_64

표적:

여러 서버에서 데이터를 수집하여 동일한지 확인하는 구성입니다.

작동하는 것:

ssh $SERVERNAME 'yum list installed | grep -E "krb|java|libkadm|realmd|oddjob|sssd|adcli"' >> $FILENAME

작동하지 않는 것:

ssh $SERVERNAME 'adcli info domain.name' >> $FILENAME
ssh $SERVERNAME 'realm list' >> $FILENAME

수신된 오류:

bash: adcli: 명령을 찾을 수 없습니다

bash: 영역: 명령을 찾을 수 없습니다

전체 스크립트:

#!/bin/bash

DATE=`date '+%Y%m%d'`

SERVERLIST=(
#"server1.com"
"server2.com"
"server3.com"
#"server4.com"
"server5.com"
)

for SERVERNAME in ${SERVERLIST[*]}
do
        FILENAME=${SERVERNAME}-config.${DATE}
        ssh $SERVERNAME 'yum list installed | grep -E "krb|java|libkadm|realmd|oddjob|sssd|adcli"' >> $FILENAME
        ssh $SERVERNAME 'adcli info domain.name' >> $FILENAME
        ssh $SERVERNAME 'realm list' >> $FILENAME
        ssh $SERVERNAME 'cat /etc/sssd/sssd.conf' >> $FILENAME
done

답변1

GracefulRestart가 거의 확실합니다.

확인하지 않고 서버의 exec와 ssh 간의 $PATH 출력을 서버의 exec와 비교합니다.

[server2.com]# echo $PATH [jumpbox]# ssh server2.com 'echo $PATH'

ssh $PATH 환경 변수에 "adcli" 및 "realm" 경로가 누락된 경우 가장 쉬운 해결 방법은 전체 경로를 사용하는 것입니다.

관련 정보