我有以下用于猜测密码的脚本。如何使用命令使其并行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
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
出错。