結局のところ、DD-WRTルーターでこのスクリプトを作成し、2つの不要なファイルが生成された理由がわからないようです。私はスクリプトの天才ではなく、特にbashなので、助けてくれてありがとう。
#!/bin/sh
sleep 30
mkdir /tmp/myvpn; cd /tmp/myvpn
# ... doing stuff...
while [ 1 ]
do
r1=`wget -q http://ipinfo.io/ip` > /dev/null
r2=`$(wget -q "http://ipinfo.io/$r1/country")` > /dev/null
if [ $r2 -eq "XX" ]
then echo "XX OK" > /tmp/myvpn/result_check_vpn.txt
else
echo "XX NOK" > /tmp/myvpn/result_check_vpn.txt
killall -q openvpn
sleep 5
openvpn --config /tmp/openvpncl/openvpn.conf --route-up /tmp/myvpn/route-up.sh --down-pre /tmp/myvpn/route-down.sh --daemon
sleep 25
sh /proc/net/ip_conntrack_flush
fi
sleep 180
done
このスクリプトは、/tmp/myvpnに「country」と「ip」という2つの不要なファイルを生成します。私が何か間違っていることは間違いありません。デフォルトでは、スクリプトは国を効果的に変更したことを確認し、VPNが正しく設定されていることを確認します(この確認を実行するために必要です)。
答え1
これらのファイルは、次の2つのコマンドで生成されます。
r1=`wget -q http://ipinfo.io/ip` > /dev/null
r2=`$(wget -q "http://ipinfo.io/$r1/country")` > /dev/null
さて、2番目は文法エラーですが、スペルエラーだと思います。このwget
コマンドの形式は次のとおりです。
wget http://www.example.com/file
その後、ダウンロードしてfile
現在のディレクトリに保存します。何が起こると予想しているのかわからなかったので、ファイルの内容を変数に保存したいと思います。その場合はwget
、次のコマンドを使用して標準出力に印刷する必要があります-O -
。
r1="$(wget -qO - http://ipinfo.io/ip)"
r2="$(wget -qO - http://ipinfo.io/$r1/country)"
> /dev/null
もちろん、出力()をリダイレクトすることはできません。これは何も印刷されないことを意味するからです。