Azure에서 스토리지 계정을 백업하는 프로그램을 만들었습니다. 이렇게하려면 AzCopy를 사용하고 있습니다. 스토리지 계정에 4 개의 컨테이너가 있으며 모든 컨테이너를 가져 오기 위해 내 스토리지 계정을 통해 foreach
을 수행합니다. 내 첫 번째 컨테이너는 업로드 한 후에 내 foreach의 다음 컨테이너로 이동하여 내용을 업로드하려고 시도하자마자 바로 백업됩니다. 이로 인해 충돌이 발생합니다. [WARNING] Incomplete operation with different command line detected at the journal directory.
계속 진행하기 전에 AzCopy가 파일 업로드까지 대기합니다.
"저널"은 AzCopy에서 만든 임시 파일입니다.
첫 번째 컨테이너가 완료되기 전에 두 번째 컨테이너를 업로드하려고했기 때문에이 문제가 발생했다고 생각합니다. 두 번째 컨테이너를 업로드하기 전에 첫 번째 컨테이너의 모든 내용이 업로드 될 때까지 기다려야합니까? 당신은 프로세스 종료 때까지 기다릴 필요가
var AzCopyProcess = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Normal
};
var process = new Process { StartInfo = AzCopyProcess };
process.Start();
process.StandardInput.WriteLine([email protected]"cd {strCommand}");
Console.WriteLine("Found directory");
process.StandardInput.WriteLine([email protected]"AzCopy.exe");
Console.WriteLine("Found exe");
process.StandardInput.WriteLine($"AzCopy /Source:{pslFileStore.Uri} /Dest:{dayBlob.Uri} /SourceKey:{pslFileStoreKey.ToString()} /DestKey:{pslFileStoreBackUpKey.ToString()} /S");
process.BeginOutputReadLine();
Console.WriteLine($"Backed up ");
감사합니다 당신의 대답을 위해 그러나 내가이 코드 줄에 넣을 때 멈출 때까지 그냥 매달렸다. 일반적으로 내가 다시 컨테이너에 약 2 분 걸리지 만 나는 5 개 이상 기다리고 있었고 여전히 매달려 있었다. 없습니까? –
@CraigGallagher 흠, 편집 된 답변보기 어쩌면 두 번째 해결책이 도움이 될 것입니다 –
\ C는 인식 할 수없는 이스케이프 시퀸입니다 ce –