我想使用 Linux 命令行设置一个批处理文件或某种 cronjob 来检查域名的可用性。我将使用另一个文件提供要检查的域列表。然后它每小时只能进行 30 次检查,并且只有当域可用时,它才必须将该域名添加到另一个文件中。所以...
- 我必须创建一个批处理文件吗?
- 批处理文件中必须包含哪些命令:
- 浏览现有域列表
- 检查这些域名是否可用,
- 从原始列表中删除该域名,并
- 将可用域添加到“可用”列表中。
- 每小时重复此命令 20 次
我确切地知道如何使用 PHP 和 cron 来执行此操作,但我想知道是否有使用“whois”命令的快速方法?我被困在点 (2) 上。
答案1
那并不太难。
检查域列表,一旦找到domains.txt
域就将其添加到(通过查看存储在中的的返回值)。available.txt
grep
$?
domains.txt
然后,通过sed
就地编辑删除找到的域。
#!/bin/bash
AVAILABLE=~/available.txt
DOMAINS=~/domains.txt
lockfile whois-script.lock
while read -r domain; do
whois $domain | grep -qci "No match"
if [ $? -ne 0 ]; then
# found
echo $domain >> $AVAILABLE
fi
done < $DOMAINS
while read -r domain; do
sed -i "/$domain/d" $DOMAINS
done < $AVAILABLE
rm -f whois-script.lock
注意:在 BSD 上sed
,您需要使用以下命令:
sed -i "" "/$domain/d" $DOMAINS
您可以保存此脚本并从您的 调用它crontab
。输入
crontab -e
然后添加如下一行:
*/2 * * * * /path/to/script.sh > /dev/null
这将每两分钟运行一次脚本(*/2
)。请确保事先调整到域的路径。
答案2
为什么要这么麻烦?现在你可以购买你想要的所有 whois 数据。我并不是说它会很便宜(例如https://alldomainsdb.com/)但它会为您节省很多工作量。但前提是您需要大量的 whois 数据。如果每小时 30 次检查就足够了,请继续制作批处理文件。