저는 이 기능을 처음 사용하는데 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에 넣습니다...생각이 나실 것입니다.