我想使用 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 個檢查就足夠了,請繼續製作批次檔。