2017-01-19 1 views
1

나는 기계-A 및 기계-B가 둘 다 우분투 서버입니다. 이제 ssh를 사용하여 Machine-B의 모든 파일을 나열하려고합니다. 결과를 분석하고 필요한 파일을 복사하기 위해 scp를 사용할 수 있도록 결과를 텍스트 파일로 반환하고 싶습니다.ssh를 사용하여 원격 서버의 파일 중 md5sum을 나열하고 출력을 텍스트 파일로 반환 하시겠습니까?

ssh [email protected] 'bash -s tree /f' 
ssh [email protected] 'bash -s ls -LR' 

이제이 명령은 내가 원하는 결과를 제공하지 않습니다. 아무도 이걸로 도울 수있어 ssh를 사용하는 원격 컴퓨터의 모든 파일을 나열하고 출력을 텍스트 파일 형식으로 반환 할 수 있습니다. 나는 원격 스크립트 실행 파일과 SSH을 나열 ls -LR을 사용하고

. 질문을 갱신 난 내 문제에 근무 대답과 스피에서 하나 개의 작은 요구 사항을 개발하였습니다.

나는이 명령 ssh [email protected] ls /something/sub > output.txt

축복하는 파일의 목록을 가지고 그러나 match.So를 얻을 수 있습니다이 파일 이름이 모든 파일을 나열하고 모든 md5sum이를 반환 할 수있는 방법이 있기 때문에 내가 이름 대신 모든 파일의 md5sum을 원하는 모든 파일을 추출하고 output.txt 파일로 리턴하십시오.

+0

이 존재합니다. –

+0

을 해결되지 –

+0

존재 –

답변

1

복사를 머신 B의 유효한 경로에 파일 목록 및 디렉토리에있는 모든 파일의 md5sum 반환 사용하려면 scp

ssh [email protected] 'ls -LR /path/to/dir > ~/fileList' 

를 사용하여 다시 시스템 A에 복사 find

ssh [email protected] 'find /path/to/dir -type f -exec md5sum {} \; > ~/md5sum_fileList' 

glob 패턴을 사용하여 파일을 복사하여 컴퓨터 A에 복사하십시오. fileList

결코 내가 목록을 해결하고 MD5 그것은 그런 파일을 이야기하지 않습니다 또는 디렉토리 내가 당신의 업데이트 내 스크립트를 변경 @Inian
+0

'> md5sum_fileList'를 따옴표 안에 넣으면 파일이 원격 호스트에 생성됩니다. 내가 이해하는 바에 따르면 OP는 로컬 호스트의 결과를 원했습니다. –

+0

@AlexisWilke : 전적으로 동의합니다. OP는 원격 컴퓨터에서 파일을 만들고 'scp'를 사용하여 로컬에 다시 복사하려고합니다. – Inian

1

당신이해야 할 모든 "bash는"사용하지 않고 명령을 지정합니다. 원격 장치에서 기본 셸을 사용하여 명령을 실행합니다.

ssh remote-host command 

는 단순히 일반적인 쉘 리디렉션을 사용하여 파일에 ls 명령의 출력을 저장하려면 :

당신이 한 줄에 여러 개의 파일 이름으로 결국 그냥 경우
ssh remote-host command > output.txt 

, 당신은 ls 명령 줄에서 -1을 사용해야 할 수도 있습니다. 또한, 파일 이름에 공백이 포함되어있는 경우 출력이 사용, 관리하기 쉬운되지 않습니다 있지만, 당신은

행에 여러 명령을 실행하려면 ... 사람들을 지원하는 쉘 스크립트에 따옴표를 필요로 기억 (예를 들어) 세미콜론에서와 같이와 시세 및 별도의 명령 : md5sum에 관련하여

ssh remote-host "command1; command2; command3" > output.txt 

, 당신은 디렉토리의 모든 파일에 대해 md5sum이와 함께 find 명령을 사용하여 해당 실행할 수 있습니다

ssh remote-host "find . -type f -exec md5sum {} \;" > output.txt 

경로 변경 (예에서 .)을 사용하면됩니다.

+0

'cd something/sub ls'와 같이 여러 명령을 만들 수 있습니까? 다른 디렉토리로 이동 한 다음 파일을 나열합니까? –

+1

@SaiKiran : 단지 패스의 패스를 명령의 일부로 전달합니다. 즉, ls -LR/something/sub> ~/fileList'를 대답으로 사용합니다. – Inian

+0

@Inian 여기에 폴더 안에 여러 개의 파일이 있습니다. 이 파일의 md5 합계'md5sum ls/somethin/sub' –

관련 문제