2010-11-25 3 views
1

미국의 Windows 프로덕션 서버에서 주기적으로 포함 된 웹 서버 로그 파일을 인도의 Linux 서버로 전송해야합니다. 파일 크기는 각각 ~ 4MB이며 분당 약 1 개의 파일이 있습니다. Linux 시스템에서 사용할 수있는 파일과 창 사이에 약 5 분 지연이 걸릴 수 있습니다. 나는 정기적으로 보관, 압축 및 리눅스로 보내 것입니다 C# .NET에서 서비스를 쓰고 생각하고Windows 서버에서 Linux 서버로 파일을 전송하는 방법

  1. : 나는 그런 디자인에서 확실히 경험이 나처럼 조금 여기에 다양한 옵션 사이에서 혼란 스러워요 기계. 이 파일들은 꽤 압축 적입니다. WinRAR은 32MB의 이러한 파일을 1.2MB의 아카이브로 변환 할 수 있습니다. 그래서 그것은 네트워크 전송 속도 문제를 해결해야합니다. 그렇다면 정확히 어떻게 파일을 리눅스로 전송합니까? samba를 사용하여 Windows 서버에서 Linux 드라이브를 마운트하거나 FTP 서버를 만들거나 POST 요청으로 직렬화 된 파일을 보내야합니다. 어느 것이 좋을까요? 또한 Windows 서버의 부하를 최소화해야합니다.

  2. Windows 드라이브를 대신 Linux에 마운트하십시오. 마운트 명령을 사용할 수도 있고 여기에 삼바를 사용할 수도 있습니다 (이 두 가지 장단점은 무엇입니까?). 그런 다음 압축 및 복사 부분을 리눅스 자체에 쓸 수 있습니다.

나는 인터넷 연결이 매우 안정적이라고 믿지 않으므로 좋은 재시도 메커니즘과 실패 방지 기능이 있어야합니다. 이러한 상황에서 잠재적 인 어려움은 무엇이며 걱정해야 할 다른 점은 무엇입니까?

감사합니다, 하리

+0

수퍼 유저로 이동하지 않아야합니까? – Quamis

답변

3

RAR은 나쁘다. 7zip 또는 bzip2로 고정하십시오. ssh를 사용하여 전송하십시오. 아마도 rsync를 사용하면 링크 실패에 견딜 수 있기 때문입니다.

+0

7z 형식을 사용하면 실제로 사용되는 알고리즘을 지정할 수 있습니다. PPMd는 일반 텍스트 파일을 압축하기위한 매우 빠르고 효과적인 알고리즘입니다. 이는 많은 로그 파일 모음에 이상적입니다. –

+1

RAR은 일반적으로 리눅스에 우호적이지 않으며 컨텐츠 유형을 알고 있으므로보다 효율적인 특정 알고리즘을 선택할 수 있습니다 (불행히도 gzip/deflate가 아닙니다). –

+0

@Dean .. 팁 주셔서 감사합니다 :). 그러나 우리의 Windows 코드는 모두 C#이며 GZIP을 기본으로 지원하므로 옵션 1을 사용하면 gz를 사용합니다. 옵션 2의 경우, perl fo archive를 사용합니다. 이 경우 나는 7z를 사용할 것이다. –

관련 문제