![여러 사용자 계정에 걸쳐 rsync 파일](https://rvso.com/image/192234/%EC%97%AC%EB%9F%AC%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EA%B3%84%EC%A0%95%EC%97%90%20%EA%B1%B8%EC%B3%90%20rsync%20%ED%8C%8C%EC%9D%BC.png)
저는 사용이 처음인데 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에 넣으면 드리프트가 발생합니다.