2012-07-24 37 views
0

我必须从命令行执行时,完美运行GIT备份脚本(这是我们的主要GIT代表的日常备份):混帐提取错误与UNC

@echo off 
rem -- Set Parameters 
rem -- daliy GIT backup 
REM Get DATE 
set mm=%Date:~4,2% 
set dd=%Date:~7,2% 
set yy=%Date:~10,4% 
set TODAY=%yy%%mm%%dd% 
for /f %%a in ('date /t') do set DAY=%%a 
if %DAY%==Sun goto :weekend 
if %DAY%==Sat goto :weekend 
goto :weekday 
:weekend 
:: No backup after weekends 
echo %day% 
exit 
:weekday 
:: Backup during weekdays 
REM Connect to share 
REM net use z: \\backupnas\backup\ 
Z: 
cd \ 
cd git 
REM Start backup of current GITS 
cd OptiTexRepo.git 
call git fetch 
cd .. 
RAR.exe a -rr10 -s ARCHIVES\%TODAY%.OptiTexRep.git.rar OptiTexRepo.git 
cd OptiTexRepo_V11.1.git 
call git fetch 
cd .. 
RAR.exe a -rr10 -s ARCHIVES\%TODAY%.OptiTexRepo_V11.1.git.rar OptiTexRepo_V11.1.git 
REM exit 

然而,当我运行它作为计划任务从W2008R2服务器,在每天的基础上,它立即存在(非常类似于问题https://serverfault.com/questions/343496/powershell-script-works-from-command-line-not-from-task-scheduler-why) 这给了我一个想法,检查天气GIT FETCH与UNC正常工作 - 显然它确实存在,但是当在任务中运行时 - 是错误的 - 我无法弄清楚什么。

根据问题:git on UNC path git应该可以工作,但我不明白需要什么脚本命令才能实际工作。

  • 目前我映射我的备份驱动器到Z:和我的CD文件夹,我只是GIT获取(即从配置文件,其中主是读取)

  • 我该怎么办与使用UNC?这也将从任务调度程序工作?

  • 或者是其他地方的问题?

回答

1

Git可以使用UNC路径,但通常将它们用作Unixy路径更为可靠 - 例如git clone //backupnas/backup/repo.git

作为任务运行时 - 检查权限是否允许您的任务通过读访问查看远程路径。除此之外 - 脚本中有很多回显,并测试运行命令的结果代码。对于msysGit的最新版本,您可能不再需要“call git”,因为包装器git.cmd已更改为git.exe以解决带有^字符的一些引用问题。