2017-01-20 6 views
0

PowerShell 스크립트를 실행할 때 전송 속도를 수정할 수있는 방법이 있습니까?Powershell에서 전송 속도 수정

제가 묻는 이유는 200KB에서 Meg 바로 아래에있는 수백 개의 파일을 복사해야한다는 것입니다. 문제는이 파일이 WAN 내의 다른 위치에 있고 연결 속도가 느리다는 것입니다. 영업 시간 중에 이러한 파일을 복사하려고하면 연결이 끊어지고 중앙 사무실로 다시 연결됩니다.

퍼포먼스 모니터를보고 서버로부터의 파일 전송이 어떻게 크게 올라가는지 보았습니다. 그래서 파일 복사 속도를 조절할 수있는 방법이 있다면, 제작 시간 동안 파일을 복사 할 수 있을지도 모릅니다. 네트워크 연결에 영향을줍니다.

+4

코드를 보지 않고도 문제를 언급하기는 어렵습니다. 그러나'robocopy.exe '를 사용하여 패킷 간 간격 (interval)을 줄이기 위해 패킷을 전송하는 시간을 추가하기 위해 변경할 수있는 패킷 간 간격'/ IPG'에 대한 매개 변수가있는 복사본을 만드는 것처럼 들립니다. – BenH

답변

0

당신은 당신이 다음과 같은 구문을 사용할 수 있습니다 ROBOCOPY로 파일을 복사 할 때 대역폭 사용을 제한하려는 경우 :

대역폭 사용을 제한 /IPG를 사용하여 디렉토리를 복사하기를. 일반적으로 엄지 손가락 규칙은 /IPG : 750이며 약 1Mbps을 사용합니다. 이러한 맥락에서

Robocopy /ipg:750 /z /r:3 /w:3 /tee /LOG+:c:\robolog.txt \\server01\share \\server02\share 

자세한 내용은 Robocopy Usage Details

는 희망이 도움이 존재한다.

0

powershell에는 작업 사이에 지연을 도입하는 start-sleep cmdlet가 있습니다.

파일 목록에서 파일 목록 (아마도 디렉토리 목록 결과에서)에서 루프로 파일 복사 루틴을 실행하는 경우 각 파일 사본 사이에 시작 슬립을 배치하여 다른 작업을 위해 네트워크를 비울 수 있습니다.

실제 파일 복사 루틴 내에서 동일한 작업을 수행하는 경우 .NET 객체를 사용하여 파일 복사 스크립트를 작성해야합니다. 예를 들어 소스 파일에 대해 FileStream 객체를 열고 버퍼에 4KB의 데이터를 가져온 다음 절전 모드로 전환하고 반복 할 수 있습니다. 모든 데이터를 가져 오면 새 파일에 저장할 수 있습니다.