CMD/BAT - Сравнение контрольных сумм md5

Аватара пользователя
vodka

CMD/BAT - Сравнение контрольных сумм md5

Сообщение vodka »

Здраствуйте. Думаю прежде чем задавать вопрос как это реализовать . Расскажу картину того как выглядит место где это нужно сделать.Изображение

Имеется 2 сервера.

на 1-вом сервере происходит бекап базы в определённую папку.

после происходит передача по фтп этого файла(тоесть бекапа базы) с помощью curl5 с 1-го сервера на -> второй сервер, также в определённую папку.

после того как она передалась в определённую папку, Служба advanced host monitor проверяет есть ли в папке этот файл. и если да то отправляет письмо что всё вопорядке. Если его нету в этой папке(не забекапилась не передалась) отправляется письмо что всё плохо.

Бывают случаи когда файл при передачи бьётся, не до пересылается или вообще имеет размер 0 байт. Но он находится в этой этой папке и служба отправляет пиьсмо что всё впорядке.

Поэтому решил сделать проверку на контрольные суммы md5 файла базы до отправки и после уже того файла который находиться на втором сервере.



Тоесть идея такая.

1-ый сервер. бекап базы. создание тхт файла с суммой мд5. передачи по фтп 2-ух файлов на второй сервер.

2-ой сервер.получение 2-ух файлов. тут вот как раз весь вопрос. как лучше проверить суммы этих двух файлов тоесть мы имеем ткст файлик с контрольной суммой базы и саму базу после передачи.

лучше создать второй файлтик тхт и их сравнивать или сохранить сумму в буфер и проверить буфер и тхт файлик. я хз(





в данный момент я сделал только до того шага когда мы имеем на втором сервере файл баз и 1 файл тхт с суммой который передался по фтп.

сейчас имеется вот такой вот скрипт в котором происходит проверка нахождения файла в папке. да-хорошо. нет -плохо.

был бы признателен в подсказках ну или возможных вариантах.





скрипт.



@echo off

chcp 1251



SET FOLDER=%DATE%

SET badbases=

SET err=0



dir N:\Everyday_bas\%FOLDER%\BAckup_bas1.dt /a-d 2>nul >nul && goto 1

SET badbases=%badbases% bas1,

SET err=1

:1



dir N:\Everyday_bas\%FOLDER%\BAckup_bas2.dt /a-d 2>nul >nul && goto 2

SET badbases=%badbases% bas2,

SET err=1

:2



IF "%err%"=="0" goto ok

echo ScriptRes:Bad:%badbases%

exit



:0k



echo ScriptRes:0k:%bsdbases%

exit
Аватара пользователя
Iska

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение Iska »

Цитата vodka:



тут вот как раз весь вопрос. как лучше проверить суммы этих двух файлов тоесть мы имеем ткст файлик с контрольной суммой базы и саму базу после передачи.
CMD/BAT - Сравнение контрольных сумм md5




Внешней утилитой. Например, «Microsoft File Checksum Integrity Verifier» (
Информация о программе File Checksum Integrity Verifier и ее описание
):


читать дальше »

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sArcFile=%~1
set sMD5File=%~2
if defined sArcFile (
	if exist "%sArcFile%" (
		if defined sMD5File (
			if exist "%sMD5File%" (
				for /f "skip=3 tokens=1" %%i in (
					'fciv.exe "%sArcFile%"'
				) do set sCalcMD5=%%i
				<"%sMD5File%" set /p sInMD5=
				if defined sCalcMD5 (
					if defined sInMD5 (
						if /i "%sInMD5%" equ "%sCalcMD5%" (
							echo File [%sArcFile%] sent correctly
						) else (
							echo Checksum not equal
						)
					) else (
						echo Can't determine in-hash
					)
				) else (
					echo Can't calculate hash of [%sArcFile%]
				)
			) else (
				echo Not found checksum file [%sMD5File%]
			)
		) else (
			call :Usage
		)
	) else (
		echo Not found archive file [%sArcFile%]
	)
) else (
	call :Usage
)
endlocal
exit /b 0
:Usage
	echo %~nx0 ^<Archive file^> ^<MD5 file^>
	exit /b 0

Предполагается, что «fciv.exe» доступен через PATH, текстовый файл с контрольной суммой содержит одну строку с вычисленной суммой MD5.
Аватара пользователя
vodka

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение vodka »

спс за ответ.Изображение видимо я неправлино составил вопрос.

мне больше интеерсно как правильно оформить скрипт чтобы он делал всё это автоматически.

тоесть проверку сумм.

короче говоря я незнаю как правильно подправить скриптик для того чтобы он проверял не только наличие файла но и чтобы совпадала контрольная сумма.
Аватара пользователя
Iska

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение Iska »

Цитата vodka:



чтобы он проверял не только наличие файла но и чтобы совпадала контрольная сумма.
CMD/BAT - Сравнение контрольных сумм md5




Выложенный мною пакетный файл это и делает. Вы его пробовали?
Аватара пользователя
vodka

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение vodka »

извиняюсь Изображение забыл уточнить что для создания сумм использовал программу под названием md5(фряшная но импортированная и под дос).

Ей как раз я и создавал контрольные суммы.

стандартный пакет который закинул в программс файлс.

после чего в тхт документике прописал адрес программы потом команду md5 и название файла после перенаправление вывода в файл.

тоесть саму программу то я нашёл и она прекрасно всё выполняет.

можно сказать дело за малым. создание второй контрольной суммы и её проверки .

кстати да спс за ссылку. когда гуглил эту программу тоже видел. но посоветовали md5.
Аватара пользователя
Iska

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение Iska »

vodka, мы явно говорим на разных языках Изображение.



Приведите ссылку на загрузку Вашего:


Цитата vodka:



для создания сумм использовал программу под названием md5(фряшная но импортированная и под дос).
CMD/BAT - Сравнение контрольных сумм md5




средства и укажите путь, куда конкретно Вы его помещаете в:


Цитата vodka:



закинул в программс файлс.
CMD/BAT - Сравнение контрольных сумм md5
Аватара пользователя
vodka

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение vodka »

возможноИзображение к сожалению я в этой сфере не продвинутый специалистИзображение и бывает что в банальных темах могу имметь в виду совсем другое.

в данный момент болеюИзображение поэтому не могу посомтреть точно что и как. вот по памяти вспомнил что надо решить данный вопрос.



http://www.fourmilab.ch/md5/




вот эта программка с помощью который реализую данные действия.

как я понимаю где она находится в системе всё равно. ибо в батнике можно прописать любой путь.
Аватара пользователя
vodka

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение vodka »

Прошу ПрщенияИзображение))) только недавно заметилИзображение что есть скрытый текстИзображение))))))))))))

счас разбираюсьИзображение) видимо когда болел саовем ничего не виделИзображение
Аватара пользователя
silalex

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение silalex »

Подскажете, как можно убедиться по md5-хешам, что файлы одинаковые?
Аватара пользователя
kiripanda

Re: CMD/BAT - Сравнение контрольных сумм md5

Сообщение kiripanda »

Никак. Но можно предполагать с определённой долей вероятности
Ответить

Вернуться в «Скриптовые языки администрирования Windows»