-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

首先创建一个具有所需域名的文件。调用这个domains.lst

pwgen -1A0B 2 10000 > domains.lst

然后从中创建较小的文件:

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

然后创建一个脚本,该脚本获取文件名并使用whois. 还创建一个输出文件input.out

创建另一个脚本,用于&在后台为所有小块启动上述脚本。在所有后台任务完成后合并输出。

于 2012-12-24T03:41:54.120 回答
1

在拆分和分配之前,

警告这似乎没有用:要求pwgen构建由和之间的字符组成的 10'000 行......two也只有可能性(事实上,当尝试构建说的单词时,只有 625 种可能性)。azecho $((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 次相同的操作。

尝试运行 10 倍以pwgen -1A0B 2 10000打印提出了多少不同的组合以及提出了更多时间和更少时间的组合:

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 回答