Я новичок в использовании rsync rsync
и мне интересно, можно ли синхронизировать файлы между несколькими учетными записями пользователей на одном ПК?
Для компьютеров, rsync
к которым я хочу применить команду, каждый пользователь должен индивидуально войти в свою учетную запись пользователя. Например, если есть 20 пользователей, то на этом ПК будет 20 учетных записей пользователей. Есть ли способ использовать учетную rsync
запись root для доступа к каталогам и файламкаждыйпользователь? Я хотел бы только захватить файлы в.csvформат.
Спасибо!
решение1
Есть ли способ использовать rsync из учетной записи root для доступа к каталогам и файлам каждого пользователя? Я хотел бы захватить только файлы в формате .csv.
Эта команда сделает резервную копию всего /home
и сохранит ее на удаленном хосте под /path/to/backup
. Она сохранит права собственности и разрешения пользователей, если удаленная файловая система способна это сделать
rsync -av /home remoteHost:/path/to/backup/
Если у вас нет доступа root на удаленной системе, вам следует добавить опцию -M--fake-super
резервного копирования метаданных файлов (владельцев и разрешений) способом, не требующим доступа root. Убедитесь, что если вы используете этот флаг, вы также используете его для восстановления.
Вторая часть вашего вопроса является дубликатомФильтр Rsync: копирование только одного шаблона. Чтобы ограничить копирование только .csv
файлами, вы можете использовать это
rsync -av --prune-empty-dirs --include='*/' --include='*.csv' --exclude='*' /home remoteHost:/path/to/backup/
решение2
В общем, да. Проблема, с которой вы столкнетесь, — это аутентификация. Например, вы можете запустить скрипт rsync из cron. Создайте себе скрипт оболочки. Если источник и назначение находятся на локальном компьютере, root работает.
Если источник или место назначения удалены, это гораздо более сложная задача. Самый простой способ обойти проблему — использовать 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, а затем запустите это как root... или поместите это в crontab root или /etc/crontab... вы поймете суть.