SVN-更新不适用于cron.daily脚本中的新签出

时间:2019-02-22 08:22:17

标签: svn

我在一个具有cron.daily脚本的NAS服务器上有多个结帐(总共11个)(用于更新结帐)(来自另一台服务器上的存储库)。我最近进行了设置,但是对于我设置的最后三个结帐,脚本每天运行时,update命令不会返回任何输出。

我确实从其中一个失败的更新中捕获了stderr输出,返回代码为1,我认为这是脚本中标准的“出了点问题”响应。我不明白的是,如果我以root用户身份登录,然后从crontab复制run-parts命令并运行它,那么所有更新都可以按预期工作吗?

该脚本将通过电子邮件将每次更新的标准输出发送给我。下面显示了一个摘录,其中显示更新“ SVN文档”不起作用(无输出),但其他文件却起作用。

Updating 'SVN-COAA':
At revision 2558.

Updating 'SVN-Credentials':
At revision 3.

Updating 'SVN-Development':
At revision 2573.

Updating 'SVN-Documents':

Updating 'SVN-Downloads':
At revision 167.

我使用以下命令创建了以“ root”身份登录的结帐:

svn checkout svn://192.168.1.19/Documents SVN-Documents

我创建了另一个脚本来捕获失败的检出之一上的stderr,以尝试找出问题所在

#!/bin/bash

. /frontview/bin/functions
get_language_strings

cd /c

resultA="$(svn update SVN-Documents1)"
exitA=$?

mesg="$resultA\r\nExit  Code $exitA\r\n\n"

subject="ReadyNAS Duo SVN Documents Update "$(date +%T)
send_email_alert "$subject" "$mesg" "$EMAIL"

##save the message to status log
log_status "$subject" 0

由cron.daily运行时的结果如下所示:

Updating 'SVN-Documents1':
Exit  Code 1

但是当我运行以root身份登录的脚本时,会得到

Updating 'SVN-Documents1':
At revision 2944.
Exit  Code 0

所以-我认为我的真正问题是-我如何获取有关cron.daily运行时发生的情况的更多信息?

我已经在Windows机器上使用TortoiseSVN多年了,但是我在Linux上使用终端没有太多经验。

2 个答案:

答案 0 :(得分:0)

这些存储库的配置可能有所不同;没有添加用户root

此外,svn update期望路径不是存储库名称。

答案 1 :(得分:0)

好-找到解决方案了

使用以下命令将stderr添加到stdout中

svn update $1 2>&1

哪个显示命令无法将UTF-8转换为母语

发现root登录使用utf-8时,bash脚本正在使用posix

在bash脚本中添加了以下内容以对其进行修复

export LC_CTYPE="en_US.utf8"

现在一切正常