Ниже приведен скрипт для подбора пароля. Как я могу сделать это параллельно, используя parallel команды? Я знаю, что в Cygwin нет параллели, но я могу использовать этот скрипт на Linux-машине.

#!/bin/bash
while read -r p; do
    "/cygdrive/c/Program Files/TrueCrypt/TrueCrypt.exe" /a /s /l x /q /v container.tc /p"$p"
    code=$?
    echo "$code $p">>log.txt
    echo "$code $p"
    if [ "$code" -ne 1 ]; then echo "$p" >> found.txt ; echo -e "\\a" ; exit ; fi
done < passwds.txt
echo -e "\\a"

1 ответ1

1

Я обращаюсь к вам с просьбой переписать этот сценарий, используя утилиту для parallel запуска в GNU/Linux.

Команда Bulitin while читается строка из файла passwds.txt строка за строкой. Если ваш файл достаточно большой, то общее время будет очень большим.

Здесь я пытаюсь использовать parallel чтобы переписать его

#!/usr/bin/env bash

funcPasswdOperation(){
    p="${1:-}"
    "truecrypt" --non-interactive container.tc /p="$p"
    code=$?
    echo "$code $p">>log.txt
    echo "$code $p"
    if [ "$code" -eq 0 ]; then echo "$p" >> found.txt ; echo -e "\\a" ; exit ; fi
}

export -f funcPasswdOperation
cat passwds.txt | parallel -k -j 0 funcPasswdOperation
echo -e "\\a"

Поскольку я не проверяю это, я не гарантирую, что этот переписанный сценарий будет работать. Но способ использования аналогичен.

Будьте осторожны с ошибкой open files .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .