我有一个中央 CentOS 7 备份服务器,我在脚本中运行以下rsync
命令从数百台 Linux 机器中提取应用程序日志,然后删除它们。
rsync --remove-source-files --include-from=/tmp/$MACHINE_file.lst \
-v -a -l -K --rsh=ssh --stats $MACHINE:/ $BACKUPDIR/$MACHINE
我/tmp/file.lst
使用其他脚本在每台机器的中央备份机器上生成;它包含以下要备份的目录和文件。
+ /data1/
+ /data2/
+ /data2/sample/
- *
但最近我遇到了一个大问题,/tmp
中央备份服务器上的分区由于其他问题而已满,因此/tmp/$MACHINE_file.lst
无法创建。这导致了rsync
开始从源机器上的分区中删除文件的问题/
。知道为什么吗?
答案1
- tmp 目录已满,无法创建 file.lst
- rsync 忽略了 --include-from 指令,因为该文件不存在,并且包含一切由于您在命令中指定了 / 目录,因此在源上
- 不幸的是你还指定了--remove-source-files
- 由于这些文件在您的目标上不存在,所以它完全按照您的要求执行 - 将所有内容同步到目标并删除源上的所有内容。