urls.txt ファイルに URL のリストがあります。
curl
可能であればを使用してインポートしようとすると、404エラーが発生したすべてのURLをインポートして新しいファイルにコピーしたいと思います。
たとえば、私のファイルurls.txtのURLは次のようになります。
mysite.com/page1
mysite.com/page2
mysite.com/page3
mysite.com/page4
mysite.com/page5
...
mysite.com/page100
...
mysite.com/page1000
したがって、それぞれをインポートしようとしていて、エラー404のためにインポートが失敗した場合は、失敗したURLを新しいファイルに保存したいと思います。
答え1
これは最善ではないかもしれませんが、試してみてください。
ファイルを生成urlcheck.sh
し、実行権限を付与します。または、単に次のコマンドを入力してください。
touch urlcheck.sh
chmod +x urlcheck.sh
次のスクリプトを貼り付けます。urlcheck.sh
#!/bin/bash
TIMEOUT=3
if [ ! -f output404.txt ]; then
touch output404.txt
fi
while IFS= read -r line; do
OUT_URL=$(curl -I $line 2>&1 -m $TIMEOUT| awk '/HTTP\// {print $2}')
if [ "$OUT_URL" == "404" ]; then
echo $line >> output404.txt
echo "$line written to output404.txt"
else
echo "$line $OUT_URL"
fi
done < "$1"
そして保存してください。
スクリプトを実行します。
./urlcheck.sh urls.txt
次に、output404.txt
スクリプトが生成した内容を確認してください。
参考にしてください各行のURLは読みやすいURLでなければなりませんcurl
(例:)https://unix.stackexchange.com/
。
2行目でタイムアウトを変更できますTIMEOUT=3
。