SED 및 PDSH: 클러스터의 슬레이브 노드에 있는 파일에 행 추가

SED 및 PDSH: 클러스터의 슬레이브 노드에 있는 파일에 행 추가

클러스터의 32개 슬레이브 노드에 있는 각 파일의 내용이 포함된 새 행을 추가하려고 합니다 GATEWAY=10.0.10.1. /etc/sysconfig/network
콘텐츠. 나는 이것을 읽었다sed를 사용하여 줄을 삽입하는 방법에 대한 게시물.

이것은 로컬 파일에 줄을 추가하는 데 효과적입니다.

sed -i.bak -e "\$aGATEWAY=10.0.10.1" test/test1

이는 노드 32의 파일을 보는 데 적합합니다.

pdsh -w n032 cat test/test1

이건 실패했어제 경우에는 노드 32의 파일에 한 줄을 추가하려고 합니다.

pdsh -w n032 sed -i.bak -e "\$aGATEWAY=10.0.10.1" test/test1

다음 오류가 발생합니다.

n032: sed: -e expression #1, char 2: extra characters after command
pdsh@admin: n032: ssh exited with exit code 1

변경하려는 파일이 있습니다.

pdsh -w n032 ls -al test/test1

위 명령은 내가 소유하고 있으며 읽기 및 쓰기( rw) 권한이 있음을 보여줍니다.

왜 실패했나요?

답변1

좋습니다. 다음 명령줄을 사용해 보세요.

pdsh -w n032  sed -i.bak -e '"\$aGATEWAY=10.0.10.1"' test/test1;

그냥 가지세요 ssh. 로컬로(노드에서) 간단한 명령을 실행하는 경우 이 줄에서도 실행되어야 합니다.

quote 없이 시도하면 '로컬 셸(입력 시스템의 현재 셸에 있음)이 다음 줄의 노드에 대해 확장되고 변환됩니다.

sed -i.bak -e =10.0.10.1 test/test1

당신은 그 오류를 읽을 것입니다.

어쩌면 당신은 흥미로울 것입니다.이 장또는이 다른.

관련 정보