运行 rsync 没有得到预期的结果

运行 rsync 没有得到预期的结果

我有一台安装了 Windows 7 共享的 Linux 机器。Linux 机器有一个 cron 任务,用于将 Win7 共享的内容复制到 Linux 机器上的另一个位置 - 备份。

脚本运行很简单rsync -a etc....

我在局域网外有另一个 Linux 机器,它rsync在 Linux 机器之间运行相同的命令将 LAN 接回 Linux 机器外部LAN——第二个备份。

问题是该rsync命令似乎没有更新自上次运行以来已更改的文件rsync。我有一个文件知道在 Windows 机器上已经更改,而在 Linux 机器上仍然是旧版本。我想知道该rsync命令是否查看文件夹的时间戳,如果没有更改,则跳过整个目录。或者也许发生了其他事情?

为什么没有rsync使用新的时间戳来更新文件?

谢谢

编辑——添加更多细节

我运行的命令是这样的:

rsync --ignore-existing --delete --stats --progress -a /hqserver/ /company_data/HQ_Backups/Day

我的设置:

在 LAN 中,有一台 Windows 7 机器保存着公司数据。用户从他们的计算机中使用该共享进行工作。LAN 中有一个 Linux 机器,用于将samba相同的 Windows 7 共享和rsyncs共享内容安装到 Linux 机器上的另一个位置。然后,LAN 外还有另一个 Linux 机器,它运行相同的rsync命令将内部 Linux 机器内容复制到自身。

cron 任务以 root 身份运行该命令。以下是 crontab:

00 2    * * *   root    python /home/garfonzo/Backup_Scripts/BU_Script.py

包含BU_Script.py命令rsync

以下是ls发送备份的文件夹:

drwxrwxrwx  9 garfonzo garfonzo 4096 2011-12-03 02:00 HQ_Backups/

编辑2

哇哇哇......--ignore-existing旗帜是我的问题的根源吗!?

答案1

显然问题出在--ignore-existing选项上,该选项的意思是“跳过更新接收方上存在的文件”(根据 man rsync(1))。删除该选项,一切都会按预期运行。

您还可以考虑使用rdiff-backuphttp://www.nongnu.org/rdiff-backup/)进行增量备份。

答案2

您能否包含您正在运行的完整、准确的 rsync 命令(两个命令)?rsync 有几个选项(--ignore-times 和 --size-only)可能会导致文件无法传输,但听起来您没有使用这些选项。此外,有关您的文件共享设置的更多详细信息:您是否使用 Samba?cronjob 是否以 root 身份运行?文件是否由任何一台 Linux 机器上的 root 拥有?权限是什么样的?

要查看发生了什么,请手动运行脚本并添加“-vv”和“--progress”以查看跳过的内容及其原因。

相关内容