今天做图片服务器同步的时候发现有些原始的图片竟然有中文名字的,变态啊,而使用rsync同步的时候出现无法同步的问题。经搜索后解决如下:
首先在服务端:配置/etc/rsyncd.conf 设置
Charset = UTF-8 ;中文识别,配合命令$rsync -avz --iconv=utf-8,GBK
接着在在客户机中运行加上iconv参数
$rsync -avz --delete --iconv=UTF-8,GBK test@192.168.1.2:/data/test /data/test/
+++++++++
主要原因是因为Windows和Linux端文件名编码不同导致的!
rsync在3.0版本之后,提供了一个选项,可以进行文件编码的转换,格式如下:
--iconv=<local>,<remote>
local指本地编码,remote指远程机器编码,参考示例如下:
从Linux sersync推到Windows时:
Linux端sersync confxml.xml配置<commonParams params="-avzP --iconv=GBK,UTF-8"/>
Windows端rsyncd.conf配置文件中添加charset = UTF-8
Windows端从Linux端拉过来时:
Windows端cwRsync要有--iconv=UTF-8,GBK选项
Linux端rsyncd.conf要添加charset = GBK
遇到问题:从Linux推到Windows端时,中英文的文件都正常,但是如果在Linux端删掉文件,Windows端的中文文件不会被删除!
2018-06-21
解决rsync同步文件名包含中文的乱码问题
评论
发表评论
姓 名: