質問するログイン新規登録

質問編集履歴

3

誤りに気づき修正

2016/09/13 08:23

投稿

.zero
.zero

スコア18

title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ###該当のソースコード
14
14
  ```バッチスクリプト
15
- rem @echo off
15
+ @echo off
16
16
  rem 格納パス
17
17
  set MYSQLPATH="C:\Program Files\MySQL\MySQL Server 5.6\bin"
18
18
 

2

現状に合わせて質問の内容を修正

2016/09/13 08:23

投稿

.zero
.zero

スコア18

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% # indexバックアップ start >> %LOGPATH%\%LOGDATE%_batch.log
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 "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y
76
+ rem xcopy "%CORE1SGPATH%\index" %SOLRBACKUPPATH2%\index /i /y 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
67
- xcopy "%CORE1SGPATH%\index" %SOLRBACKUPPATH2%\index /i /y
77
+ robocopy "%CORE1SGPATH%\index"\ %SOLRBACKUPPATH2%\index\ /COPYALL /R:3 /W:1
78
+ rem >> %LOGPATH%\%LOGDATE%_robocopy2.log
68
79
  call :getTime
69
- echo # %LOGTIME% # indexバックアップ end >> %LOGPATH%\%LOGDATE%_batch.log
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
- 正常にバックアップ終了させためにはバッチを呼ぶ際に以下のように呼び出し、バッチ内部ではxcopy使用しなければいけない。
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
- backUp.bat >> backUp.log
107
+ rem 正常動作時のコマンド
108
+ robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1 >> %LOGPATH%\%LOGDATE%_robocopy1.log
94
109
  ```
95
- バッチを実行する際にバッチ呼び出しだけ行うと、バッチ内部ではxcopyを使用ても処理が正常に動かないxcopyコマンド開始前に動作が停止してしまう
110
+ "xcopy"コマンドや"robocopy"コマンドを実行する際に結果受け取らない(リダイレクト)場合は処理が途中で停止する
96
- **追記:**(indexバックアップ startがログにかかれない)
97
-
98
111
  ```コマンドスクリプト
99
- rem 呼び出し
112
+ rem 動作が途中で止まるときのコマンド
113
+ xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c
100
- backUp.bat
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

現象の説明に追記、回答を絞るためにやりたいことを明記

2016/09/13 08:22

投稿

.zero
.zero

スコア18

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
  ご教授の程、よろしくお願いします。