0

我想从一台服务器移动到另一台服务器,而且我不会丢失特殊的日志文件(如 mail.logs),所以我想用 --files-from 选项来同步文件。但我不能在文件列表中使用像 * 或 {0..9} 这样的量词。

rsync -avR --files-from=/backup/filelists/filelist1.txt / $DESTSRV:"$DESTPATH"

例如我想同步所有邮件服务器日志文件

/var/log/mail.log

/var/log/mail.log.1

/var/log/mail.log.2.gz

/var/log/mail.log.3.gz

/var/log/mail.log.4.gz

但是在/backup/filelists/filelist1.txt我不能使用

/var/log/mail*

或者

/var/log/mail.log.{2..10}.gz

我收到以下错误

rsync: link_stat "/var/log/mail*" failed: No such file or directory (2)

有人知道我的问题的解决方案吗?

4

1 回答 1

1

在搜索和尝试后,我找到了另一个适合我的解决方案:

cat /backup/fileslists/filelist1.txt | { while read line; do rsync -avzR $line "$DESTSRV":"$DESTPATH"/; done; }

此代码逐行读取输入文件并将其与 rsync 同步。在这种情况下,我可以使用任何量词:)。

于 2013-11-15T08:39:43.830 回答