首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRONTAB未完成svndump

CRONTAB未完成svndump
EN

Stack Overflow用户
提问于 2010-02-24 13:40:53
回答 4查看 1.6K关注 0票数 2

我刚刚发现,我为SVN存储库创建的自动转储很早就被切断了,基本上只有一半的转储在那里。这不是紧急情况,但我不喜欢这种情况。它首先违背了自动备份的目的。

我使用的命令如下所示。如果我在终端中手动执行它,它可以很好地完成;output.txt文件大小为16MB,包含所有335个修订版。但如果我把它留给crontab,它会在中途退出,大约810万,只有前169个版本。

代码语言:javascript
复制
# m h  dom mon dow   command
18 00 * * * svnadmin dump /var/svn/repos/myproject > /home/andrew/output.txt 

我实际上保存为一个过时的gzipped文件,并且服务器上的空间并不短缺,所以这不是磁盘空间问题。它似乎在两秒后就退出了,所以这可能是一个时间问题,但在过去的一个月中,文件大小每次都是相同的,所以我认为也不是这样。crontab是否在有限的内存空间内执行?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-27 15:39:30

所以,我不知道这里真正的问题是什么,但是如果我在转储时将svnadmin的STDERR路由到/dev/null,一切都会正常进行。我尝试使用“安静”标志(-q),它也成功了。我假设当从crontab运行的shell脚本在STRERR中遇到足够的文本时,它会停止执行它正在运行的任何内容,并转到下一条指令。我在一个手动文件和一个计划文件上做了一个MD5,它们是一样的。这个问题似乎已经解决了。因此,如果有人自己遇到这个问题,这是我用来成功通过早期截断的shell脚本。这有点冗长。抱歉的。

代码语言:javascript
复制
#!/bin/sh
echo "STARTING AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/andrew/svnlog.txt
rm /tmp/andrewMobileApp.dump
svnadmin dump /var/svn/repos/andrewMobileApp > /tmp/andrewMobileApp.dump 2>/dev/null
echo "svnadmin exited with code $?" >> /home/andrew/svnlog.txt
gzip -c /tmp/andrewMobileApp.dump > "/home/andrew/svnbackups/andrewMobileApp.dump.$(date +\%Y\%m\%d\%I\%M\%S).txt.gz"
echo "gzip exited with code $?" >> /home/andrew/svnlog.txt
echo "DONE AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/andrew/svnlog.txt
echo  "-----" >> /home/andrew/svnlog.txt

此脚本通过超级用户crontab调用。

票数 5
EN

Stack Overflow用户

发布于 2010-02-24 13:51:12

首先,确保svnadmin位于cron作业的PATH环境变量中。您可能需要指定/usr/bin/svnadmin的完整路径或任何适当的路径。

此外,除了svnadmin dump之外,您可能还想了解svnadmin hotcopy,这是一个用于存储库备份的工具。

票数 1
EN

Stack Overflow用户

发布于 2010-04-23 07:37:11

我在Debian cron包中将其作为bug提交,因为我在那里也经历过(在vserver下)。参见Debian中的bug #577133。Christian Kastner通过添加代码,在没有找到MTA的情况下绕过所有邮件处理代码,从而修复了这个错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2323933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档