LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 780|回复: 0

关于cron定期运行cvs备份源码的问题

[复制链接]
发表于 2005-11-1 13:22:23 | 显示全部楼层 |阅读模式
cvs的相关命令在cron里面不能正常运行,不知何故。具体问题是这样的:
最近在服务器上写了个脚本用于定期备份用cvs管理的源码,脚本内容大致是这样的:

============================================
#!/bin/sh

# backup proj
cd /cvs_backup
CVSROOT=/home/cvsproj

cvs update proj
FILE_NAME=proj_`date +%Y%m%d%H%M%S`.tar
tar cf $FILE_NAME proj/
gzip --best $FILE_NAME
============================================

直接在shell下用root用户运行该脚本(事先已在/cvs_backup下checkout了proj的源码)
,完全正常,源码更新后update也完全起作用,于是将其加到cron.daily里面每天定时运
行,但却发现cvs update proj根本没起作用,每天tar和gzip出来的包是完全一样的。于
是又将脚本改了一下以测试cvs是否真的没运行:

============================================
#!/bin/sh

# backup proj
cd /cvs_backup
CVSROOT=/home/cvsproj

cvs checkout proj
FILE_NAME=proj_`date +%Y%m%d%H%M%S`.tar
tar cf $FILE_NAME proj/
gzip --best $FILE_NAME
rm -Rf proj/
============================================

事先把/cvs_backup下的源码目录删除,并且先在shell下运行测试,也是完全正常的,但
是在cron里面tar出来的包都是空的没有内容,显然cvs checkout并未运行。为保险起见,
又直接在crontab里面加了两句:

00 3 * * * root /etc/cron.daily/cvsbackup #上面的脚本
50 3 * * * root /usr/bin/cvs -d /home/cvsproj checkout -d /root/proj proj

结果是3点执行的跟上面一样,tar出一个空包;3点50执行的在/root/下确实checkout出来
一个proj,里面也不为空,但是发现里面源码不全,少了好几个目录,已有的目录下也发
现缺一些文件。这下彻底把我搞晕了,到底是怎么回事呢?

哪位能帮帮忙给看一下问题到底出在什么地方,在下感激不尽!

附服务器相关配置:
Redhat 7.2 (Linux kernel 2.4.7-10)
cvs版本1.11.5
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表