質問編集履歴
3
誤りに気づき修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
###該当のソースコード
|
14
14
|
```バッチスクリプト
|
15
|
-
|
15
|
+
@echo off
|
16
16
|
rem 格納パス
|
17
17
|
set MYSQLPATH="C:\Program Files\MySQL\MySQL Server 5.6\bin"
|
18
18
|
|
2
現状に合わせて質問の内容を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,9 @@
|
|
7
7
|
以下のバッチはファイルパスさえ環境に合わせてやれば動くのですが動作が不安定なため今回質問することにいたしました。
|
8
8
|
|
9
9
|
**※補足情報は必ずお読みください。解決したい内容が書かれています。**
|
10
|
+
**追記:**ソースコードと補足情報を更新しました 2016/09/13/ 17:22 現在
|
10
11
|
|
12
|
+
|
11
13
|
###該当のソースコード
|
12
14
|
```バッチスクリプト
|
13
15
|
rem @echo off
|
@@ -37,41 +39,51 @@
|
|
37
39
|
rem バックアップデータ作成
|
38
40
|
mkdir %LOGPATH% > NUL 2>&1
|
39
41
|
call :getTime
|
40
|
-
echo # %LOGTIME% # バックアップバッチ処理 start >> %LOGPATH%\%LOGDATE%_batch.log
|
42
|
+
echo # %LOGTIME% # "バックアップバッチ処理 start" >> %LOGPATH%\%LOGDATE%_batch.log
|
41
43
|
|
42
44
|
rem バックアップ用のフォルダ作成
|
43
45
|
call :getTime
|
44
|
-
echo # %LOGTIME% # フォルダ作成 start >> %LOGPATH%\%LOGDATE%_batch.log
|
46
|
+
echo # %LOGTIME% # "フォルダ作成 start" >> %LOGPATH%\%LOGDATE%_batch.log
|
45
47
|
mkdir %BACKUPPATH%\MySQL > NUL 2>&1
|
46
48
|
mkdir %SOLRBACKUPPATH1% > NUL 2>&1
|
47
49
|
mkdir %SOLRBACKUPPATH2% > NUL 2>&1
|
48
50
|
call :getTime
|
49
|
-
echo # %LOGTIME% # フォルダ作成 end >> %LOGPATH%\%LOGDATE%_batch.log
|
51
|
+
echo # %LOGTIME% # "フォルダ作成 end" >> %LOGPATH%\%LOGDATE%_batch.log
|
50
52
|
|
51
53
|
rem MySQLのバックアップ
|
52
54
|
call :getTime
|
53
|
-
echo # %LOGTIME% # mysqldump start >> %LOGPATH%\%LOGDATE%_batch.log
|
55
|
+
echo # %LOGTIME% # "mysqldump start" >> %LOGPATH%\%LOGDATE%_batch.log
|
54
56
|
cd %MYSQLPATH%
|
55
57
|
mysqldump -u %MYSQLUSER% -p%PGPASSWD% %MYSQLDATABASE% --single-transaction > %BACKUPPATH%\MySQL\%MYSQLDATABASE%.dump
|
56
58
|
if not %errorlevel%==0 type RET:%errorlevel% >> %ERRLOGPATH%\%LOGDATE%_mysqldump.elog
|
57
59
|
rem echo %LOGTIME% mysqldump-end >> %LOGPATH%\%LOGDATE%_batch.log
|
58
60
|
call :getTime
|
59
|
-
echo # %LOGTIME% # mysqldump end >> %LOGPATH%\%LOGDATE%_batch.log
|
61
|
+
echo # %LOGTIME% # "mysqldump end" >> %LOGPATH%\%LOGDATE%_batch.log
|
60
62
|
|
61
63
|
rem Indexのバックアップ
|
62
64
|
call :getTime
|
63
|
-
echo # %LOGTIME% #
|
65
|
+
echo # %LOGTIME% # "index1バックアップ start" >> %LOGPATH%\%LOGDATE%_batch.log
|
66
|
+
|
67
|
+
rem %path%\*.* %path%\*.* /Y
|
64
68
|
rem copy "%CORE1PATH%\index\*.*" %SOLRBACKUPPATH1%\index\*.* /Y
|
69
|
+
rem xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
|
70
|
+
robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1
|
71
|
+
rem >> %LOGPATH%\%LOGDATE%_robocopy1.log
|
72
|
+
rem /NDL /UNILOG+:%LOGPATH%\%LOGDATE%_robocopy1.log
|
73
|
+
echo # %LOGTIME% # "index1バックアップ end" >> %LOGPATH%\%LOGDATE%_batch.log
|
74
|
+
echo # %LOGTIME% # "index2バックアップ start" >> %LOGPATH%\%LOGDATE%_batch.log
|
65
75
|
rem copy "%CORE1SGPATH%\index\*.*" %SOLRBACKUPPATH2%\index\*.* /Y
|
66
|
-
xcopy "%
|
76
|
+
rem xcopy "%CORE1SGPATH%\index" %SOLRBACKUPPATH2%\index /i /y 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
|
67
|
-
|
77
|
+
robocopy "%CORE1SGPATH%\index"\ %SOLRBACKUPPATH2%\index\ /COPYALL /R:3 /W:1
|
78
|
+
rem >> %LOGPATH%\%LOGDATE%_robocopy2.log
|
68
79
|
call :getTime
|
69
|
-
echo # %LOGTIME% #
|
80
|
+
echo # %LOGTIME% # "index2バックアップ end" >> %LOGPATH%\%LOGDATE%_batch.log
|
70
81
|
|
71
82
|
rem バックアップデータ作成完了
|
72
83
|
call :getTime
|
73
|
-
echo # %LOGTIME% # バックアップバッチ処理 end >> %LOGPATH%\%LOGDATE%_batch.log
|
84
|
+
echo # %LOGTIME% # "バックアップバッチ処理 end" >> %LOGPATH%\%LOGDATE%_batch.log
|
74
85
|
echo. >> %LOGPATH%\%LOGDATE%_batch.log
|
86
|
+
exit /b 0
|
75
87
|
|
76
88
|
rem 時間取得
|
77
89
|
:getTime
|
@@ -80,6 +92,7 @@
|
|
80
92
|
set LOGDATE=%date:~0,4%%date:~5,2%%date:~8,2%
|
81
93
|
exit /b
|
82
94
|
|
95
|
+
|
83
96
|
```
|
84
97
|
|
85
98
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
@@ -87,22 +100,19 @@
|
|
87
100
|
アプリケーション:fess
|
88
101
|
|
89
102
|
※以下のような不穏な動作があります。
|
90
|
-
①
|
103
|
+
①"xcopy"コマンドや"robocopy"コマンドを実行する際に結果を別ファイルリダイレクトするようにバッチを記載すると正常に処理が終了する
|
91
104
|
```コマンドスクリプト
|
92
|
-
rem
|
105
|
+
rem 正常動作時のコマンド
|
106
|
+
xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
|
93
|
-
|
107
|
+
rem 正常動作時のコマンド
|
108
|
+
robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1 >> %LOGPATH%\%LOGDATE%_robocopy1.log
|
94
109
|
```
|
95
|
-
②
|
110
|
+
②"xcopy"コマンドや"robocopy"コマンドを実行する際に結果を受け取らない(リダイレクトしない)場合は処理が途中で停止する。
|
96
|
-
**追記:**(indexバックアップ startがログにかかれない)
|
97
|
-
|
98
111
|
```コマンドスクリプト
|
99
|
-
rem
|
112
|
+
rem 動作が途中で止まるときのコマンド
|
113
|
+
xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c
|
100
|
-
|
114
|
+
rem 動作が途中で止まるときのコマンド
|
115
|
+
robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1
|
101
116
|
```
|
102
|
-
③バッチ内部でcopyを使用し、①と同じ方法で呼び出すと以下のエラーが発生する。
|
103
|
-
```バッチスクリプト
|
104
|
-
プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。
|
105
|
-
```
|
106
|
-
**追記:**出来れば、②の呼び出しで出来るようにしたい。
|
107
117
|
以上です。
|
108
118
|
ご教授の程、よろしくお願いします。
|
1
現象の説明に追記、回答を絞るためにやりたいことを明記
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,7 +92,8 @@
|
|
92
92
|
rem 呼び出し
|
93
93
|
backUp.bat >> backUp.log
|
94
94
|
```
|
95
|
-
②バッチを実行する際にバッチ呼び出しだけを行うと、バッチ内部ではxcopyを使用していても処理が正常に動かないxcopyコマンド
|
95
|
+
②バッチを実行する際にバッチ呼び出しだけを行うと、バッチ内部ではxcopyを使用していても処理が正常に動かないxcopyコマンド開始前に動作が停止してしまう。
|
96
|
+
**追記:**(indexバックアップ startがログにかかれない)
|
96
97
|
|
97
98
|
```コマンドスクリプト
|
98
99
|
rem 呼び出し
|
@@ -102,6 +103,6 @@
|
|
102
103
|
```バッチスクリプト
|
103
104
|
プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。
|
104
105
|
```
|
105
|
-
|
106
|
+
**追記:**出来れば、②の呼び出しで出来るようにしたい。
|
106
107
|
以上です。
|
107
108
|
ご教授の程、よろしくお願いします。
|