SSH는 여러 값을 전달합니다.

SSH는 여러 값을 전달합니다.

포트를 좀 열고 싶어요

for i in centos7{3..4};do ssh -T $i "for ir in 53 80 443 3000 3306 5910-5930 5432 8140 8443 10090-10100 20 21;do firewall-cmd --permanent --zone=public --add-port=$ir/tcp;done"; done

반품

Error: INVALID_PORT
Error: INVALID_PORT
Error: INVALID_PORT
Error: INVALID_PORT

이 명령은 괜찮습니다. 단일 호스트에서 단일 명령을 실행하면 다음을 반환하기 때문입니다.

success
success
success
success
success
success
success
success
success

문제는 SSH를 통해 여러 변수를 전달하는 방법입니다.

답변1

$ir확장은 원격 측에서 예상한 대로 수행되지 않고 로컬 셸에 의해 수행됩니다. 탈출을 시도해보세요 $:… --add-port=\$ir/tcp …

또는 명령의 어떤 항목도 로컬로 확장되는 것을 원하지 않으므로 큰따옴표 대신 작은따옴표를 사용하십시오.

관련 정보