Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сравнение контрольных сумм md5

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

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: vodka
Дата: 05-03-2012
Здраствуйте. Думаю прежде чем задавать вопрос как это реализовать . Расскажу картину того как выглядит место где это нужно сделать.
Имеется 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

Отправлено: 15:46, 05-03-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата vodka:
тут вот как раз весь вопрос. как лучше проверить суммы этих двух файлов тоесть мы имеем ткст файлик с контрольной суммой базы и саму базу после передачи. »
Внешней утилитой. Например, «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.

Отправлено: 17:00, 05-03-2012 | #2



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

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


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 17:11, 05-03-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата vodka:
чтобы он проверял не только наличие файла но и чтобы совпадала контрольная сумма. »
Выложенный мною пакетный файл это и делает. Вы его пробовали?

Отправлено: 18:58, 05-03-2012 | #4


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 23:25, 05-03-2012 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Приведите ссылку на загрузку Вашего:
Цитата vodka:
для создания сумм использовал программу под названием md5(фряшная но импортированная и под дос). »
средства и укажите путь, куда конкретно Вы его помещаете в:
Цитата vodka:
закинул в программс файлс. »

Отправлено: 23:40, 05-03-2012 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

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

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

Отправлено: 23:58, 05-03-2012 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:57, 10-03-2012 | #8


Забанен


Сообщения: 1882
Благодарности: 24

Профиль | Цитировать


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

Отправлено: 21:24, 08-01-2013 | #9


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


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

Отправлено: 22:43, 08-01-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сравнение контрольных сумм md5

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - Программы для подсчёта контрольных сумм файлов ALEXEY_DFD Программное обеспечение Windows 14 18-11-2011 15:30
Ошибка - [решено] Синий экран, восстонавление с контрольных точек не помогает el_motoblock Microsoft Windows 2000/XP 2 19-02-2011 15:54
Решение контрольных работ за определенную сумму? VbInt Флейм 2 21-01-2011 00:16
C/C++ - Получение контрольных сумм файлов (MD5, и т.д.) и их проверка в Online-сервисах Drongo Программирование и базы данных 49 30-08-2010 18:39
md5 с++ me9090 Программирование и базы данных 3 22-08-2005 23:11




 
Переход