1

コマンドラインから実行すると完全に実行されるGITバックアップスクリプトがあります(これはメインのGIT担当者の毎日のバックアップです)。

@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で正しく機能するようですが、タスクを実行しているときは何かが間違っています。 。

質問によると:UNCパスの gitは機能するはずですが、実際に機能するためにスクリプトコマンドが何である必要があるのか​​わかりません。

  • 現在、バックアップドライブをZ:にマップし、CDをフォルダーに挿入すると、GIT FETCH(マスターが存在する構成ファイルから読み取る)を実行します。

  • UNCを使用してそれを行うにはどうすればよいですか?それはタスクスケジューラからも機能しますか?

  • それとも、問題は実際にはどこか別の場所にありますか?

4

2 に答える 2

1

Git は UNC パスで動作しますが、通常は Unixy パスとして使用する方が信頼性が高くなりgit clone //backupnas/backup/repo.gitます。

タスクとして実行する場合 - パーミッションにより、タスクが読み取りアクセスでリモート パスを参照できるようになっていることを確認します。それ以外 - スクリプトに多くのエコーがあり、実行中のコマンドの結果コードをテストします。msysGit の最新バージョンでは、ラッパーの git.cmd が git.exe に変更され、^ 文字の引用の問題が解決されたため、「call git」はもう必要ない場合があります。

于 2012-07-24T10:48:56.900 に答える