Как стать автором
Обновить
0

Оболочки *

Шелл и компания

Сначала показывать
Порог рейтинга

Вычисление контрольных сумм файлов в Windows

При выполнении резервного копирования файлов желательно сопровождать их сведениями о контрольных суммах. Это позволит впоследствии быстро проверить целостность резервных копий. В отличие от других операционных систем, в Windows почему-то нет удобного встроенного инструмента для вычисления и проверки контрольных сумм. Раньше более-менее официально предлагалось использовать стороннюю утилиту fciv.exe, но в настоящее время эта рекомендация убрана с официального сайта Microsoft. Сейчас наиболее популярным советом является воспользоваться предустановленной утилитой CertUtil, которая умеет вычислять контрольные суммы MD2, MD4, MD5, SHA1, SHA256, SHA384 и SHA512.

Но на практике удобнее использовать утилиту SFK (Swiss File Knife, швейцарский нож для файлов), которая, позволяя кратко записывать и выполнять из командной строки множество других операций, поддерживает работу с контрольными суммами CRC32 и MD5. Например, обработку файлов в папке folder можно произвести так:

> sfk.exe crcgento folder.crc folder
> sfk.exe crccheck folder.crc
> sfk.exe md5gento folder.md5 folder
> sfk.exe md5check folder.md5

Для получения справки можно вызвать программу sfk с указанием команды, но без параметров.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Заметка про посылку данных по TCP и UDP используя только bash.

Например, вот так можно послать минимальный валидный HTTP GET запрос:

echo -e 'GET /maintenance/start HTTP/1.0\r\n\r\n' > /dev/tcp/127.0.0.1/80

А вот так можно отправить Standart query на Google Public DNS:

echo -e '\x00\x01\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01' > /dev/udp/8.8.8.8/53

При этом если IP-адрес не существует или не отвечает, то в случае с TCP, bash будет где-то минуту пытаться подключиться (слать SYN-пакеты) прежде чем вернёт ошибку. А в случае с UDP, bash просто пошлёт данные в никуда и не вернёт никакой ошибки.

К сожалению, получить ответ на посланные данные нельзя :(. Но можно прочитать из сокета данные. Например, вот так можно узнать, что нам скажет GitHub.com с SSH порта:

cat < /dev/tcp/github.com/22

Через некоторое время в терминале выведется "SSH-2.0-babeld-077acb5b" и bash продолжит ждать следующие данные, пока сокет не будет закрыт с той стороны.

А вот слушать сокет bash уже не умеет. И вот это жаль, конечно.

Всего голосов 9: ↑9 и ↓0+9
Комментарии0