저는 스냅샷이 64개의 디렉터리로 나누어져 있고 각 디렉터리에는 350개가 넘는 파일이 있는 Cassandra 노드가 있습니다. 모든 스냅샷 파일을 "찾고" 위치를 보존하고 파일 공간이 많은 호스트에 동기화한 다음 로그인 시 tar/gz를 실행하고 싶습니다. 이 작업이 한 단계로 완료될 수 있나요?
현재 나는 다음을 수행해야 합니다:
find /mnt* -type d -name snapshots -exec /usr/bin/rsync {} -avhr user@host:/mntc/backups/ ';'
그 다음에:
tar -czpf /mntd/backups/mybackup.tgz /mntc/backups/snapshots
rsync 프로세스 중에 발견된 파일을 반대편의 아카이브로 직접 "덤프"할 수 있다면 좋을 것입니다. 가능합니까?
노트:
- Cassandra 노드에는 조회 검색에서 파일을 사전 압축하는 데 필요한 1Tb의 여유 공간이 없습니다.
- 파일을 새 호스트에 재동기화한 다음 호스트에서 2Tb가 필요한 결과를 패키징하여 한 번에 수행할 수 있는 Cassandra 노드 수를 줄입니다(백업할 총 20개).
답변1
간단히 말해서, 다른 사람이 관심을 가질 경우를 대비하여 이를 달성하기 위해 제가 찾은 가장 좋은 방법은 다음과 같습니다.
find /mnt* -type d -name snapshots > dir.list; \
tar -czpf - -T dir.list | ssh user@host "openssl aes256 \
-out /mntc/backups/snapshot.tgz.enc -salt -k 'secret'"