我有一个VPS生产服务器,为我的客户提供networking应用程序。 我有一个rsync cron作业在我的开发服务器上运行,每天都对整个生产服务器进行备份。
#!/bin/sh RSYNC=/usr/bin/rsync SSH=/usr/bin/ssh KEY=/root/backup-rsync-key RUSER=root RHOST=xxx.xxx.xxx.xxx LPATH=/home/backup RPATH=/ $RSYNC -avz -e "$SSH -i $KEY" $RUSER@$RHOST:$RPATH $LPATH
它工作正常,但给出了错误的types:
... rsync: read errors mapping "/sys/module/yenta_socket/parameters/disable_clkrun": No data available (61) ERROR: sys/module/yenta_socket/parameters/isa_probe failed verification -- update discarded. rsync: read errors mapping "/sys/module/yenta_socket/parameters/isa_probe": No data available (61) ERROR: sys/module/yenta_socket/parameters/pwr_irqs_off failed verification -- update discarded. rsync: read errors mapping "/sys/module/yenta_socket/parameters/pwr_irqs_off": No data available (61) ERROR: sys/power/state failed verification -- update discarded. rsync: read errors mapping "/sys/power/state": No data available (61) rsync error: some files could not be transferred (code 23) at main.c(1298) [generator=2.6.8]
(这只是错误的一小部分)
如何备份除了不能备份的东西以外的所有东西?
谢谢
你必须排除不必要的文件。
好的开始是-x
-x, --one-file-system don't cross filesystem boundaries
(来自man rsync(1))。 这排除了您没有明确指定的文件系统。 记住,那么你必须列出你想包含的所有挂载点。 mount给你列表。
另一个有用的选项是 – --exclude :
--exclude=PATTERN exclude files matching PATTERN --exclude-from=FILE read exclude patterns from FILE
你的命令会是这样的
rsync -avzx --exclude=/tmp --exclude=/var/cache -e "$SSH -i $KEY" $RUSER@$RHOST:$RPATH $LPATH
您可以使用–exclude选项排除特定文件,如“–exclude = / sys”。 此外,您可以使用–exclude-from选项来排除特定文件中列出的文件。
看看--exclude-from命令行选项,它允许你定义一个包含rsync应该排除的文件和目录列表的文件。