다음 코드를 사용하여 하나의 서버에서 이 작업을 수행할 수 있습니다.
ssh server001 << EOF
cat /dir/file001.txt >> somefile
EOF
여러 서버를 사용하면 내 스크립트가 서버에 SSH로 연결할 수 있지만 어떤 이유로 내 file00x 파일을 찾을 수 없으며
cat: /dir/file00x.txt: No such file or directory
파일이 존재하더라도 다음 오류가 발생합니다.
이것은 내 코드입니다.
for i in {10..15}; do
ssh $i //for simplicity, theres some text manipulation to get the actual name of the server
cat /tmp/$i.txt
done << newfile.txt
나는 또한 이 방법을 시도했지만(분명히 올바른 방법은 아님) 여전히 파일을 찾을 수 없습니다.
for i in {10..15}; do
ssh $i
cat /tmp/$i.txt >> newfile.txt
done
또한 이것을 시도했지만 그 중 하나도 작동하지 않았습니다.
for i in {10..15}; do
ssh $i << EOF
cat /tmp/$i.txt >> newfile.txt
EOF
done
답변1
제가 질문을 이해하는 한, 원격 시스템에 대한 액세스가 필요하며 /tmp/$i.txt
어디에서 액세스하는지는 중요하지 않습니다.newfile.txt
이 경우 우리는 HERE 파일이나 영리함에 대해 걱정할 필요가 없습니다.
ssh $i cat /tmp/$i.txt >> newfile.txt
cat
원격 시스템에서 실행되지만 로컬로 연결됩니다.
그런 다음 다음을 반복할 수 있습니다.
for i in {10..15}
do
ssh $i cat /tmp/$i.txt >> newfile.txt
done
반대로 원격 시스템에서도 리디렉션이 발생하도록 하려면 다음 명령을 인용할 수 있습니다.
for i in {10..15}
do
ssh $i "cat /tmp/$i.txt >> newfile.txt"
done
이제 cat $i.txt >> newfile.txt
원격 컴퓨터에서 이런 일이 발생합니다.
이는 설정에서 중요하지 않습니다.