急流を開始/停止するために、パブリックIPを監視してBashサービスを改善します。

急流を開始/停止するために、パブリックIPを監視してBashサービスを改善します。

TorrentのパブリックIPを監視するソリューションに関するフィードバックを探しています。

icanhazipのパブリックIPを確認してください。 VPNが有効になっていない場合、すべての急流は一時停止されます。 VPNが有効になっていると、ダウンロードしているすべての急流が確認されます。 1つ以上の急流がダウンロードされている場合は、すべての急流が開始/待機されます。そうしないと、すべての急流が一時停止されるため、何もしません。

#!/bin/bash

#Torrent/VPN Watch Service

while :
do
ip=$(curl -s icanhazip.com)
pchk=$(transmission-remote -tall -i | grep -a State | grep -ao Down | head -1)
if [ "$ip" = xxx.xxx.xxx.xxx ] ; then
    date
        echo "WARNING! The Current IP is: $ip"
        echo "Torrents are being stopped!"
    echo "Openvpn is being restarted!"
        echo
    sleep 5
        /usr/bin/transmission-remote -tall --stop > /dev/null 2>&1
        pkill -9 screen
    screen -wipe > /dev/null 2>&1
        pkill -9 openvpn
    screen -dmS openvpn /usr/sbin/openvpn /usr/local/sbin/tvw/file.ovpn
fi
if [ "$pchk" = "Down" ] ; then
    date
    echo "The Current IP is: $ip"
    echo "Torrents are active!"
    echo
    sleep 5
    /usr/bin/transmission-remote -tall --start > /dev/null 2>&1
else
    date
        echo "Current IP: $ip"
    echo "All torrents are paused."
    echo
    sleep 5
fi
done
exit

答え1

MacOSでのみテストされました。

実際に行うことは、VPN IPが実行されていることを確認し、VPN IPがTransmissionのBindAddressIPv4で定義されているIPと同じであることを確認することです。そうでない場合は、BindAddressIPv4にIPを設定してください。正しいIPを設定して転送を再開してください。

次の行は、VPN UTUインターフェイスとIPを取得します。

read -r vpninterface vpnip < <(/sbin/ifconfig -a | awk '/^[a-zA-Z]/{sub(/:/,""); x=$1}/inet /{print x, $2}' | awk '/utun/')

ifconfig + 最初の awk は、「インターフェース名」と「ip」を表示するインターフェースごとに 1 行を提供します。 2番目のawkはutun情報を取得します。 BindAddressIPv4 ipを使用してutun ipをチェックするチェックは、特定の間隔で実行する必要があります(鉱山は15分ごとに実行されます)。

関連情報