svn: Error converting entry in directory ‘.’ to UTF-8

今天用脚本来自动更新svn的时候,遇到一个故障就是手动执行脚本就可以,用crontab就不行,具体脚本如下

#!/bin/bash
echo `date` >> /root/test/svn.txt
svn sw svn://192.168.1.249/test/  /var/www/html  >> /root/test/svn.txt


手动执行这个脚本的时候,一切正常,放到crontab里面的话
echo `date` >> /root/test/svn.txt
这句执行正常
svn sw svn://192.168.1.249/test/ /var/www/html >> /root/test/svn.txt
这句就是死活执行不了,日志里面只有前一句的日志信息。最后一句没有日志信息。
一开始以为是环境变量的问题,于是又加了一句测试的命令
svn version >> /root/test/svn.txt
日志显示版本确实被打印出来了,这就说明svn的真是路径找到了,也就是有环境变量了,为什么就不能sw呢。

后来发现系统不断的提示有mail,于是就进入root的邮箱里面看了下,看到svn报如下错误
svn: Error converting entry in directory ‘.’ to UTF-8
svn: Can’t convert string from native encoding to ‘UTF-8′:
svn: ?\230?\150?\135?\230?\161?\163
貌似是编码的问题?

于是gg了一下这个错误,,还真是这个问题,说是因为svn服务器上的文件存在编码为UTF-8的文件,如果服务器不支持UTF-8编码就会报这个错误。
而我本身环境设置的是LANG=en_CN.UTF-8
说是更改环境变量中的编码就可以了,于是在脚本中加入:export LANG=zh_CN.UTF-8
果断可以解决。
注意如果脚本还调用了其他的子脚本,需要在子脚本中考虑LANG=zh_CN.UTF-8的影响,可以在子脚本中export LANG=en_CN.UTF-8改过来编码
但是我就郁闷了,,我系统的环境变量编码本来就是zh_CN.UTF-8的,为什么crontab执行的时候会变了呢。坐等高人解答。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值