使用crontab执行svn up失败,到底什么原因
Posted giantbranch
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用crontab执行svn up失败,到底什么原因相关的知识,希望对你有一定的参考价值。
首先正常svn up没问题,但是到cron就失败,最开始下面这么写
* * * * * cd /test/ && /usr/bin/svn up > /tmp.log 2>&1
刚开始查到有人说加个export LANG=zh_CN.UTF-8即可,来源https://bbs.csdn.net/topics/350216656
那就改成
* * * * * cd /test/ && LANG=zh_CN.UTF-8 /usr/bin/svn up > /tmp.log 2>&1
看一下/tmp.log,编码问题
# cat /tmp.log
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is zh_CN.UTF-8
svn: warning: please check that your locale name is correct
Updating '.':
svn: E000022: Error converting entry in directory '/FuzzPlat/docs' to UTF-8
svn: E000022: Can't convert string from native encoding to 'UTF-8':
svn: E000022: 3 U+79CDU+5B50U+6837U+672CU+5B57U+5178U+76F8U+5173U+6587U+6863
后来看了一些文章,都是先执行看下 locale
https://blog.csdn.net/ssergsw/article/details/14169987
我看了下我的
# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
再结合之前/tmp.log的报错,既然系统默认是LANG=en_US.UTF-8,svn 没问题,那就使用en_US.UTF-8
* * * * * cd /test/ && LANG=en_US.UTF-8 /usr/bin/svn up > /tmp.log 2>&1
或者
* * * * * cd /test/ && LC_ALL=en_US.UTF-8 /usr/bin/svn up > /tmp.log 2>&1
以上是关于使用crontab执行svn up失败,到底什么原因的主要内容,如果未能解决你的问题,请参考以下文章
svn更新时报错Please execute the 'Cleanup' command.+乱码 ,clean up失败,求大神~