我刚刚发现我创建的SVN仓库的自动转储已经越早被切断,基本上只有一半转储在那里。这不是紧急情况,但我讨厌在这种情况下。它首先打破了自动备份的目的。CRONTAB没有完成svndump
我正在使用的命令如下。如果我在终端上手动执行它,它会很好地完成; output.txt文件大小为16 megs,全部335个修订版本。但如果我把它留给crontab,它会在中途退出,大约8.1 megs,只有前169个版本。
# m h dom mon dow command
18 00 * * * svnadmin dump /var/svn/repos/myproject > /home/andrew/output.txt
我实际上保存到一个过时的gzip文件,并且服务器上没有空间不足,所以这不是磁盘空间问题。它似乎在两秒钟后保释,所以这可能是一个时间问题,但文件大小在过去一个月每次都是相同的,所以我不认为它是这样。 crontab是否在有限的内存空间内执行?
我不认为尺寸限制是一个因素。虽然该文件在中途切断,但该目录有20个完全相同大小的完全相同的备份。我试着倾倒到/ tmp,并在同一时刻切断。 crontab也在超级用户级别执行,所以它应该可以非常自由地访问文件系统。 – Andrew 2010-02-24 06:17:14
另一个想法: - 尝试将svnadmin调用包装为shell scrtip。在调用svnadmin之前和之后添加日期/时间戳。将输出重定向到某个日志文件。还要记录svnadmin结果代码。这会给你一些关于svnadmin呼叫的成功和它需要多长时间的想法。 - 尝试重新安排这个任务到不同的时间(我有一些疯狂的cron错误与特定的执行日期和时间相关联)。 – sha 2010-02-26 04:28:32
果然,当我在shell脚本中捕获返回代码时,当我sudo手动执行它时,svnadmin dump会返回“0”,但当它执行crontab时,它返回“1”。我还记录了/ usr/bin/id,这些信息对我和crontab都是一样的。该脚本正在相同的用户上下文中运行。 必须有一些crontab配置值,我没有在这里看到。这对我来说没有任何意义。我会继续挖掘。 – Andrew 2010-02-27 04:51:55