我正在进行服务器迁移,并遇到以下问题:
我正在运行rsync来迁移所有的数据,但由于某种原因有一个文件夹深度限制…这是通过rsync通过SSH命令完成:
rsync -raz --verbose --update --delete --exclude-from 'rsync-exclude.txt' /home 192.168.70.50:/
70.50是新服务器,我正在旧服务器上运行命令。 文件夹结构非常深,最多可达20个文件夹深度。
所以,大部分文件和文件夹都被复制过来,但是从文件夹深度10开始并不是。 如果我指定更深的文件夹
rsync -raz --verbose --update --delete --exclude-from 'rsync-exclude.txt'/home/user/blablabla/domain/web to 192.168.70.50:/home/user/blablabla/domain
它开始recursion地复制剩余的文件夹…
任何人可能有这个问题的解决办法?
rsync没有限制它将遍历的子目录的深度。 更具体地说,它超过了Linux文件系统的限制。 我只是复制了大约500级的东西,rsync复制它就好了。
如果遇到此问题,请检查以下内容:
--no-inc-recursive (这是一个更新的algorithm,你可能已经发现了一个错误) -z 这是另一种尝试的技巧。 如果它工作,但rsync不,那么你可能在rsync发现了一个错误:
这将一方面tar文件,发送tar文件到标准输出,ssh到另一边,并解压那里的文件。
SOURCEDIR=/path/to/source DESTHOST=machinename DESTDIR=/path/to/destination cd "$SOURCEDIR" && tar -c -v -f - . | ssh "$DESTHOST" "cd $DESTDIR && tar -x -p -f -"
警告:如果$ DESTDIR中有空格或特殊字符,则需要更仔细地引用上面的内容。