rsync在cifs smb共享文件夹卡死问题解决
缘起
近期把树莓派的日常备份,统一到了一个smb局域网共享上,之前使用的备份工具是rsync,相同的参数下出现同步过程中卡死问题,因此在此记录下。
过程
使用如下命令同步树莓派的家目录进行备份,中途必现卡死,其中/xxx
是远程挂载的smb共享。
rsync --progress -aAXvimh ~ /xxx/
其中试了很多次,始终会出现卡死问题,而之前备份的目标是用的rsync主机,是没有问题的,错误如下:
rsync: get_xattr_names: llistxattr(""/home/pi//h"",1024) failed: No data available (61)
rsync: chgrp "/home/pi/c.c" failed: Operation not permitted (1)
分析前后的区别,也只有smb挂载的差异,看起来是权限或者属性操作的异常。
经过不断的分析,最后确认是X
参数的问题,导致文件attr相关操作异常导致卡死。
而原有的非root操作,也会导致写临时文件异常出现卡死。
因此解决后的命令行如下,试了很多次都不会再卡死了。
sudo rsync --progress -aAvimh ~ /xxx/
总结
总结来看,smb总归是当初微软研发的共享协议,而在linux系统下,一些属性、权限问题,在rsync这种全属性备份工具上存在一些问题,使用nfs之类的协议可能会好点。
参考文档
https://askubuntu.com/questions/1066751/strange-rsync-behaviour-i-dont-understand-throught-smb-cifs
https://www.truenas.com/community/threads/rsync-mkstemp-failed-operation-not-permitted.43269/
发表评论