it-swarm-ko.tech

inotify를 사용하는 작동하는 Linux 백업 솔루션이 있습니까?

백업하는 데 시간이 오래 걸립니다. 증분 스냅 샷을 백업하기 위해 btrfs 또는 ZFS를 신뢰하기 전에 inotify를 사용하여 실제로 변경된 파일을 추적하여 백업이 더 빨리 실행되도록하는 데몬이 있다면 좋겠죠? 이 프로그램은 어디에 있습니까?

매번 전체 파일 시스템을 크롤링하지 않고 Linux 박스를 백업하려면 어떻게해야합니까? 새 사진이나 변경된 사진, 소스 코드 등을 감지하고이를 NAS에 복사 할 수 있도록 대기하는 프로그램을 원합니다.

17
joeforker

나는 "yum search inotify"로 내 질문에 답했다. lsyncd 라고하며 Google 코드에서 호스팅됩니다.

불행히도 항상 전체 rsync를 먼저 실행하는 것처럼 보이므로 한 번에 14 시간 이상 컴퓨터를 켜지 않으면 여전히 도움이되지 않습니다.

Lsyncd는 rsync를 사용하여 rsyncd를 실행하는 원격 시스템과 로컬 디렉터리를 동기화합니다. Lsyncd는 inotify를 통해 여러 디렉터리 트리를 감시합니다. 감시를 추가 한 후 첫 번째 단계는 모든 디렉토리를 원격 호스트와 재 동기화 한 다음 inotify 이벤트를 수집하여 단일 파일을 동기화하는 것입니다. 따라서 lsyncd는 시스템과 잘 어울리면서 설치 및 사용하기 쉬운 경량 라이브 미러 솔루션입니다. 자세한 명령 줄 옵션은 lsyncd --help를 참조하세요.

11
joeforker

fsnotify의 문제를 해결하기 위해 도입 된 inotify의 결함을 해결하기 위해 설계된 dnotify라는 새로운 시스템이 있습니다. fsnotify를 사용하면 별다른 번거 로움없이 전체 파일 시스템을 볼 수 있습니다. fsnotify이 향후 Linux 백업 문제를 모두 해결하는 데 도움이되기를 바랍니다.

3
joeforker

연구 (테스트가 아님)에 따르면 inotify는 대부분의 시스템에서 매우 많은 수의 파일을 처리 할 수 ​​없거나 처리 속도가 매우 느립니다. http://www.pubbs.net/kernel/200905/109416/ 의 스레드가 가장 유용했습니다. 메인 라인 인 fsnotify, 그것은 리눅스 2.6.31 이상에 있습니다.

2
user26055

incron 으로 무언가를 해킹 할 수 있습니다.

/path1 IN_CLOSE_WRITE rsync -au $ @/$ # backuphhost :/path
2
hayalci

Lsyncd는 시작시 전체 감시 된 트리를 동기화합니다. 99 %의 경우 이것이 현명한 작업이기 때문입니다. 로컬 호스트에있는 대상 호스트의 디렉터리를 원합니다. 그렇지 않으면 동기화가 실패하고 꺼져있는 동안 놓친 항목을 동기화하려고합니다. 그러나 수행중인 작업을 알고있는 경우 시작 동기화를 끄고 Lsyncd 구성 파일에서 sync {..., startup = false}를 설정하기 만하면됩니다.

inotify와 관련하여 파일 수가 아니라 리소스를 소모하는 디렉토리 수입니다. 하나의 디렉토리는 포함 된 파일 수에 관계없이 하나의 감시입니다.

inotify와 같은 fsnotify를 기반으로하는 fanotify 빌드는 수많은 디렉토리를 보는 사람들에게 매우 유망 해 보였지만 현재 Linux 2.6.37부터 fanotify는 이름 바꾸기 (이동) 이벤트를 전혀보고하지 않으므로 다음과 같은 작업에 사용할 수 없습니다.

2
axkibe

저는 여러분이하려는 일을 수행 할 수있는 최상의 솔루션을 찾기 위해 6 개월을 보냈습니다. NAS에 효율적으로 백업합니다. 초기 동기화 후 다른 모든 것은 버터처럼 부드럽습니다. 최신 버전의 Lsyncd는 매우 잘 작동합니다. 아래 링크에서 내가 한 일을 문서화했습니다. 폴더 값을 대체하십시오. 도움이 되었기를 바랍니다:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit

1
Bobo

inotify-tool + rsync 해상도 대신 사용되는 sersync라는 새로운 시스템이 아시아에서 사용됩니다. http://code.google.com/p/sersync/ 사용하기가 매우 쉽습니다.

0
skiller