Windowsでカスタムファイルをクリーンアップし、hosts
デッドゾーンを削除するためにホストにpingを送信し、domains.txt
応答を受信したら、ホストを次に追加しますresult.txt
。
@echo off
>result.txt (
for /f %%i in (domain.txt) do ping -n 1 %%i >nul && echo 127.0.0.1 %%i
)
誰もがLinuxシェルスクリプトを介して同じ機能を達成するのに役立ちますか?
ベストアンサー1
を使用している場合は、bash
次のような短いスクリプトを試すことができます。
#!/bin/bash
while IFS= read -r host; do
[[ $(ping -c4 "$host") ]] 2>/dev/null && echo "$host" >> /path/to/result.txt
done < /path/to/domains.txt
ここでは、ホストが改行文字で区切られていると仮定しますdomains.txt
。
編集する:
以下は修正されたスクリプトで、ping
詳細(要約)であり、ディレクトリに/path/to/directory/
ファイルdomains-01.txt
などがdomains-02.txt
含まれているとします。
#!/bin/bash
for file in /path/to/directory/domains-*.txt; do
while IFS= read -r host; do
ping -qc4 "$host" && echo "$host" >> /where/to/save/result.txt
done < "$file"
done
一時停止 - 再開動作が必要な場合は、次の点を確認してください。SIGTSTP
/SIGSTOP
およびSIGCONT
信号kill
たとえば、プロセスのPIDが2773の場合は、同様のコマンドを実行できます。
一時停止: kill -TSTP 2773
、再開: kill -CONT 2773
。