一連の IP 範囲で traceroute を実行するスクリプトを作成しました。デフォルトのオプションを使用すると (つまり、追加オプションなしで traceroute を実行すると)、スクリプトは正常に実行されます。言い換えると:
traceroute "$hostip"
望ましい結果が得られます。
ただし、必要なオプションを使用すると、traceroute の実行に失敗し、ホストが提供されていないと表示されます。
traceroute -p 25 -M tcp "$hostip"
Specify "host" missing argument.
私は本当に途方に暮れています。いくつかの異なる組み合わせを試しましたが、どれも機能しません。このコマンドが最初の方法で機能するのに、オプションが有効になっていると機能しない理由を理解できていません!
slackware64-current に traceroute-2.0.19-x86_64-1 があります。どんな助けでも大歓迎です!
ここに私が取り組んでいるものの短縮版があります:
#!/bin/bash
#
# tracert_efax-smtp.sh
#
# Diego Pineda 8132015
# output
foi='1'
fp='/home/slugman/Data'
fileo="$fp/tracert_efax-smtp.$foi"
# while loop 181 - 183
ip1a="216.24.224."
ip1b="181"
# Create fileo
if [ -e $fileo ]; then
(( foi++ ))
fileo="$fp/tracert_efax-smtp.$foi"
touch $fileo
else
touch $fileo
fi
# test ip1 series
echo "Testing $ip1a$ip1b - 183" >> $fileo
while [ $ip1b -le 183 ]; do
traceroute -p 25 -M tcp "$ip1a$ip1b" >> "$fileo"
(( ip1b++ ))
done