我对使用还很陌生rsync
,我想知道是否可以在一台 PC 上跨多个用户帐户同步文件?
对于我想要应用该命令的计算机rsync
,每个用户都必须单独登录自己的用户帐户。例如,如果有 20 个用户,则该一台 PC 上有 20 个用户帐户。有没有办法rsync
从 root 帐户访问目录和文件每个用户?我只想抓取文件.csv格式。
谢谢!
答案1
有没有办法从root帐户使用rsync来访问每个用户的目录和文件?我只想抓取 .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
一般来说,是的。您将遇到的问题是身份验证。例如,您可以从 cron 运行 rsync 脚本。给自己写一个shell脚本。如果源和目标都在本地计算机上,则 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
crate /root/backuserlist,然后以 root 身份运行它...或者将其放入 root 的 crontab 或 /etc/crontab 中...您就明白了。