- 论坛徽章:
- 0
|
本帖最后由 yaoyansi 于 2010-08-20 09:13 编辑
hi,大家好,
我有个/home/myname/test.sh,DATE="`date +"%Y_%m_%d____%H_%M"`";- V_BACKUP_ROOT="/home/$USERNAME/V/svnbackup";
- V_BACKUP_DIR="$V_BACKUP_ROOT/$DATE";
- echo "Delete previous files in $V_BACKUP_ROOT"
- for package in `ls "$V_BACKUP_ROOT/"`; do
- echo "rm -f -r \"$V_BACKUP_ROOT/$package\""
- rm -f -r "$V_BACKUP_ROOT/$package"
- done
- mkdir $V_BACKUP_DIR
- for repos_name in `ls $SVN_ROOT`; do
- if [ ! $repos_name = "" ]; then
- rev=`svnlook youngest "$SVN_ROOT/$repos_name/"`;
- # full backup
- echo "################# backup [$repos_name-$rev] ###################"
- $HOT_BACKUP_DIR/hot-backup.py --archive-type=bz2 "$SVN_ROOT/$repos_name" "$BACKUP_ROOT/$repos_name/full"
- #
- echo "####### delete previous [$repos_name] full backup package.####"
- pre_rev=$rev-1;#
- for full_backup_package in `ls "$BACKUP_ROOT/$repos_name/full/"|awk -F'-' '{if($2<'"$pre_rev"') print $0}'` ; do
- echo "rm -f \"$BACKUP_ROOT/$repos_name/full/$full_backup_package\""
- rm -f "$BACKUP_ROOT/$repos_name/full/$full_backup_package"
- done
- #
- echo "copy the latest backup package to $V_BACKUP_DIR"
- full_backup_package="$repos_name-$rev.tar.bz2";
- cp -p "$BACKUP_ROOT/$repos_name/full/$full_backup_package" "$V_BACKUP_DIR/"
- fi
- done
复制代码 我手动执行(无论是我当前帐户还是root帐户)语句cp -p "$BACKUP_ROOT/$repos_name/full/$full_backup_package" "$V_BACKUP_DIR/"
可以把A.tar.bz2拷贝到backup/B.tar.bz2,同时log.txt里会有个记录:"/home/myname/A.tar.bz2" -> "/home/myname/backup/B.tar.bz2"
现在我想5分钟执行一次test.sh,我在crontab里写了一句话
*/5 * * * * /home/myname/test.sh
结果是每5分钟,test.sh执行了,但A.tar.bz2没有拷贝到backup/B.tar.bz2
同时,/home/myname/backup/log.txt被创建了,但log.txt里没有内容,
这是什么问题呢?如何解决啊?
P.S. cp 命令里用不用 -a -v 这几个参数结果都一样
谢谢 |
|