여러 사용자 계정에서 파일 동기화

여러 사용자 계정에서 파일 동기화

저는 이 기능을 처음 사용하는데 rsync, 한 PC에서 여러 사용자 계정에 걸쳐 파일을 동기화할 수 있는지 궁금합니다.

명령을 적용하려는 컴퓨터의 경우 rsync각 사용자는 자신의 사용자 계정에 개별적으로 로그인해야 합니다. 예를 들어 사용자가 20명이면 해당 PC 한 대에는 20개의 사용자 계정이 있습니다. rsync루트 계정에서 디렉토리와 파일에 접근할 수 있는 방법이 있나요?사용자? 난 그냥 파일을 가져오고 싶어.csv체재.

감사해요!

답변1

루트 계정에서 rsync를 사용하여 각 사용자의 디렉터리와 파일에 액세스할 수 있는 방법이 있습니까? .csv 형식의 파일만 가져오고 싶습니다.

이 명령은 모든 것을 백업 /home하고 원격 호스트에 저장합니다 /path/to/backup. 원격 파일 시스템이 이를 수행할 수 있으면 사용자의 소유권과 권한이 유지됩니다.

rsync -av /home remoteHost:/path/to/backup/

원격 시스템에 대한 루트 액세스 권한이 없는 경우 -M--fake-super루트 액세스가 필요하지 않은 방식으로 파일 메타데이터(소유권 및 권한)를 백업하는 옵션을 추가해야 합니다. 이 플래그를 사용하는 경우 복구에도 사용하십시오.

질문의 두 번째 부분이 중복되었습니다.Rsync 필터: 하나의 패턴만 복사. 파일 만 복사하도록 제한하려면 .csv다음을 사용할 수 있습니다.

rsync -av --prune-empty-dirs --include='*/' --include='*.csv' --exclude='*' /home remoteHost:/path/to/backup/

답변2

일반적으로 말하면 그렇습니다. 직면하게 될 문제는 인증입니다. 예를 들어 cron에서 rsync 스크립트를 실행할 수 있습니다. 쉘 스크립트를 직접 작성해 보세요. 소스와 대상이 모두 로컬 시스템에 있으면 루트가 작동합니다.

소스나 대상이 원격인 경우 이는 더 어려운 작업입니다. 이 문제를 해결하는 가장 쉬운 방법은 NFS를 사용하여 원격 디스크를 로컬 시스템에 마운트하는 것입니다. SSH 인증을 찾아볼 수도 있습니다...그것은 조사할 수 있는 토끼굴입니다.

좋아요 /root/backupuserlist가 한 줄에 하나씩 사용자 목록이고 /backupdrive가 사용자를 백업하는 위치라고 가정해 보겠습니다.

#!/bin/bash
# backup /root/backupuserlist to /backupdrive

BK_USERS=`cat /root/backupuserlist`
BK_DRIVE=/backupdrive

for user in $BK_USERS; do
   rsync -av ~$user/ $BK_DRIVE/$user/
done

/root/backuserlist를 만들고 이를 루트로 실행하거나...또는 루트의 crontab 또는 /etc/crontab에 넣습니다...생각이 나실 것입니다.

관련 정보