일부 원격 호스트에서 여러 명령 세트를 병렬로 실행하려고합니다. 나는이 명령을 구성, 다음의 라인을 따라, 로컬 파일에 뭔가를 출력을 기록하는 스크립트를 만들었습니다원격 호스트에 bash 명령 - 로컬 출력 파일을 쓰는 중 오류가 발생했습니다.
ssh <me>@<ip1> "command" 2> ./path/to/file/newFile1.txt & ssh <me>@<ip2>
"command" 2> ./path/to/file/newFile2.txt & ssh <me>@<ip2> "command" 2>
./path/to/file/newFile3.txt; ...(same repeats itself, with new commands and new
file names)...
내 문제는 내 스크립트가이 명령을 실행하면, 내가 얻고 있다는 것입니다 다음 오류 :
bash: ./path/to/file/newFile1.txt: No such file or directory
bash: ./path/to/file/newFile2.txt: No such file or directory
bash: ./path/to/file/newFile3.txt: No such file or directory
...
이러한 파일은 존재하지 않지만 기록됩니다. 즉, 디렉토리 경로가 유효합니다.
이상한 점은 전체 큰 명령을 복사하여 붙여 넣으면 아무런 문제없이 작동한다는 것입니다. 차라리 자동화 된 tho를 갖고 싶습니다;).
아이디어가 있으십니까?
편집 - 자세한 내용은 :
- home
- User
- Desktop
- Servers
- Outputs
- ...
내가 집/사용자/데스크톱에서 bash는 스크립트를 실행하고/서버 :
내 파일 시스템은 다음과 같다. 스크립트는 원격 서버에서 실행해야하는 명령을 작성합니다. 우선 스크립트는 파일이 저장 될 디렉토리를 만듭니다.
outputFolder="./Outputs"
...
mkdir -p ${outputFolder}/f{fileNumb}
...
스크립트는 리모컨 호스트에서 호출 할 명령을 계속 작성하며 해당 출력은 작성된 디렉토리에 배치됩니다. 디렉토리가 있습니다. 명령을 실행하면 오류가 발생하지만 인쇄를하고 동일한 위치에 명령을 복사하는 것은 어떤 이유로 작동합니다. 나는 또한 디렉토리에 대한 전체 경로를 제공하려고 시도했지만 여전히 동일한 문제가 있습니다.
희망 조금 더 명확히했습니다.
리디렉션이 작동하려면 경로가 있어야합니다 (중간 디렉토리는 자동으로 생성되지 않습니다). 그래서'mkdir -p path/to/file'을 리다이렉션'> path/to/file/newFile.txt' 전에 넣으십시오. –
귀하의 질문에 투기 이외의 다른 정보를 허용하기에는 관련 정보가 충분하지 않은 것으로 보입니다. 모든 관련 정보 (및 최소한의 관련성없는 정보)가 여기에 있도록 문제의 [최소한의 완전하고 검증 가능한 예] (https://stackoverflow.com/help/mcve)를 작성하십시오. –
귀하의 질문 * 여전히 * 무슨 일이 일어나고 있는지를 알려주는 정보가 충분하지 않습니다. 그것이 바로 MCVE를 만드는 요점입니다. 그러나 "명령 생성"에 대한 언급은 의심 스럽습니다. 실행 전에 변수에 명령을 저장하려고합니까? 그렇다면 잘못 될 수있는 많은 것들이 있습니다. [BashFAQ # 50 : 변수에 명령을 넣으려고하는데 복잡한 경우는 항상 실패합니다!] (http://mywiki.wooledge.org/BashFAQ/050). –