次のbashスクリプトを使用してファイルのアクティブホストを確認しています。
echo "Checking for 200 status code.."
cat $1 | sort -u | while read line; do
if [ $(curl -I -s "https://$line" -o /dev/null -w "%{http_code}\n") = 200 ]
then
echo $line >> livedomains
else
echo $line >> otherdomains
fi
done < $1
コードは正常に動作します。確認する残りの行数(url)をユーザーに知らせるには、しばらくして確認した行数(url)を印刷する必要があります。
答え1
#!/bin/bash
# update status after step seconds or greater
step=5
count=0
echo "Checking for 200 status code.."
start=$(date +'%s')
sort -u "$1" | while read line; do
http_status=$(curl -I -s "https://$line" -o /dev/null -w "%{http_code}\n")
case "$http_status" in
200)
echo "$line" >> livedomains
;;
302)
echo "$line" >> redirecteddomains
;;
*)
echo "$line" >> otherdomains
esac
((count++))
now=$(date +'%s')
if [ "$start" -le "$((now - step))" ]; then
start=$now
echo "completed: $count"
fi
done
更新間隔は5秒に設定されており、120秒に変更できます。
編集する:私は心を変え、代わりにカウンター変数を使用しましたwc
。
追加の変更:
#!/bin/bash
最初の行にshebangを追加しました。< $1
入力の最後の行を削除する(それ以外の場合はソートされません)- いくつかの引用を追加しました