使用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失败,到底什么原因的主要内容,如果未能解决你的问题,请参考以下文章

使用crontab执行svn up失败,到底什么原因

使用crontab执行svn up失败,到底什么原因

svn项目点clean up后出现如图问题

svn更新时报错Please execute the 'Cleanup' command.+乱码 ,clean up失败,求大神~

Tortoise SVN Clean up失败的解决方法

svn清理失败(clean up失败)的解决方法