아래의 "for" 루프는 동일한 서버에서 로컬로 실행됩니다.
그러나 원격 서버에서 "ssh" 프로토콜을 통해 트리거되면 출력이 수신되지 않습니다.
원격 서버에서 트리거될 때 작동하게 하는 방법을 제안할 수 있는 사람이 있습니까?
for i in $(cat Server_List) # Works
do # Works
echo $i # Works
ssh $i '$(for a in `/usr/sbin/lspath|grep scsi|awk '{print \$2}'|sort|uniq`; # Doesn't Work
do # Doesn't Work
echo "\$a `/usr/sbin/lspath |awk '/'\$a' /' |uniq|awk '/Enabled/'|wc -l`;done)' # Doesn't Work
done # Works
답변1
heredoc
SSH를 통해 여러 줄 명령을 실행할 수 있습니다 .
ssh user@host <<'EOC'
for a in $(/usr/sbin/lspath | awk '/scsi/ {print $2}'| sort -u); do
# do something
done
EOC