Linux のコマンド ラインを使用して、ドメイン名が使用可能かどうかを確認するバッチ ファイルまたは cronjob を設定したいと考えています。別のファイルを使用して、確認するドメインのリストを提供します。その後、1 時間あたり 30 回のチェックのみを実行し、ドメインが使用可能な場合にのみ、そのドメイン名を別のファイルに追加する必要があります。つまり...
- バッチファイルを作成する必要がありますか?
- バッチ ファイルにはどのようなコマンドを入力する必要がありますか?
- 既存のドメインリストを移動する
- それらのドメインが利用可能かどうか確認し、
- そのドメインを元のリストから削除し、
- 利用可能なドメインを「利用可能」リストに追加します。
- このコマンドを1時間ごとに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
)。事前にドメインへのパスを調整してください。
答え2
なぜ面倒なことをするのでしょうか?必要なwhoisデータはすべて購入することができます。安く済むと言っているわけではありません(例えばhttps://alldomainsdb.com/) ですが、大変な作業を大幅に省くことができます。ただし、これは大量の whois データが必要な場合です。1 時間あたり 30 回のチェックで十分な場合は、先に進んでバッチ ファイルを作成してください。