-1

それでも、私はそれが手で物事をするよりもはるかに速いことを知っています。しかし、とにかくこのスクリプトを高速化する方法はありますか?マルチスレッドか何か?私はUNIXを初めて使用し、これが私の最初のスクリプトです=)。提案や行われた変更のために開いてください。スクリプトは、特定の生成されたドメインでランダムに一時停止しているようです。

#!/bin/bash
for domain in $(pwgen -1A0B 2 10000); 
do
      whois $domain.com | egrep -q '^No match|^NOT FOUND|^Not fo|AVAILABLE|^No Data   Fou|has not been regi|No entri'
          if [ $? -eq 0 ]; then
              echo "$domain.com : available"
              else
              echo "$domain.com"
          fi
done
4

2 に答える 2

1

分割して配布する前に、

警告これは役に立たないようです:との間の文字でpwgen形成された10,000行を作成するように要求します...また、可能性のみがあります(実際、話しやすい単語を作成しようとすると、625の可能性しかありません)。twoazecho $((26*26)) -> 676pwgen

pwgen -1A0B 2 10000 | sort | uniq -c | sort -n | tail
 27 ju
 27 mu
 27 vs
 27 xt
 27 zx
 28 df
 28 sy
 28 zc
 29 dp
 29 zd

したがって、このコマンドを使用すると、同じことを最大29回実行できます。

pwgen -1A0B 2 10000提案されたさまざまな組み合わせの量と、提案された組み合わせをより多くの時間とより少ない時間で印刷するために10xを実行しようとしています。

for ((i=10;i--;)); do
    echo $(
        (
            (
                pwgen -1A0B 2 10000 |
                    sort |
                    uniq -c |
                    sort -n |
                    tee /dev/fd/6 |
                    wc -l >/dev/fd/7
            ) 6>&1 | (
                head -n1
                tail -n1
            )
        ) 7>&1
    )
  done
6 bd 625 31 bn
3 bj 625 29 sq
6 je 625 30 ey
4 ac 625 30 sz
5 ds 625 29 wf
4 xw 625 28 qb
4 jj 625 30 pa
6 io 625 29 sg
4 vw 625 30 kb
5 fz 625 31 os

このプリント:

|  |  |   |  |
|  |  |   |  \- max proposed pattern
|  |  |   \---- number of times max proposed pattern was issued
|  |  \-------- number of different differents purposes
|  \----------- min proposed pattern
\-------------- number of times min proposed pattern was issued
于 2012-12-24T08:52:28.590 に答える
1

最初に目的のドメイン名でファイルを作成します。これを呼び出しますdomains.lst

pwgen -1A0B 2 10000 > domains.lst

次に、これから小さなファイルを作成します。

split --lines=100 domains.lst domains.lst.

次に、ファイル名を取得し、 を使用してそのファイルを処理するスクリプトを作成しますwhois。出力ファイルも作成しますinput.out

&すべての小さなチャンクのバックグラウンドで上記のスクリプトを開始するために使用する別のスクリプトを作成します。すべてのバックグラウンド タスクが完了したら、出力をマージします。

于 2012-12-24T03:41:54.120 に答える