|
|
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 |
|