我刚刚发现,自动转储我一直在创造我的SVN仓库已被截断早,基本上只有一半的转储那里。这不是紧急情况,但我讨厌在这种情况下是。它违背了在第一位置使自动备份的目的。

我使用的命令如下所示。如果我在终端手动执行它时,它完成细;在output.txt的文件是16兆的大小与所有335个版本。但是,如果我离开它的crontab,它捞出在半路标记,在大约8.1兆,只有第一个169级的版本。

# m h  dom mon dow   command
18 00 * * * svnadmin dump /var/svn/repos/myproject > /home/andrew/output.txt 

其实我保存到一个过时的gzip压缩的文件,而且也没有在服务器上的空间不足,所以这不是一个磁盘空间的问题。这似乎两秒后保释,所以这可能是一个时间问题,但文件大小是在过去一个月相同的每一次,所以我不认为这是两种。确实CRONTAB有限的存储空间内执行?

有帮助吗?

解决方案

所以,我不知道真正的问题是在这里什么,但如果我的路线的STDERR的svnadmin到/ dev / null的,当我做转储,一切顺利。我尝试使用“安静”标志(-q),也成功。我假设,当从一个crontab运行shell脚本遇到在STRERR足够多的文本,它停止一切它的运行的执行,并进入下一个指令。我已经在一个手工文件和计划的文件做了MD5,它们是相同的。这似乎可以解决。所以,如果有人遇到这个问题本身,这是shell脚本我曾经成功地让过去的早期截断。这是一个有点冗长。抱歉。

#!/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调用。

其他提示

首先,确保svnadmin是在cron作业的PATH环境变量。您可能需要指定/usr/bin/svnadmin一个完整路径或什么是适当的。

此外,而不是svnadmin dump,你可能想看看svnadmin hotcopy这是一个工具,用于信息库的备份。

我提交此作为Debian的cron包中的错误,因为我在那里经历它,以及(一个虚拟服务器下)。见错误#577133 Debian中。基督教Kastner的修补的缺陷,通过如果没有MTA是发现将代码添加到旁路所有的邮件处理代码。

你对用户的目录大小限制?可能想尝试它首先转储到温度。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top