Jump to content

Литвинов Сергей

Forum Members
  • Posts

    16
  • Joined

  • Last visited

Equipment

  • Keenetic
    Keenetic Giga

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Литвинов Сергей's Achievements

Member

Member (2/5)

-1

Reputation

  1. Добрый день! У меня есть скрипт, который по запросу от любого устройства (TV, телефон, планшет и прочее) на порт 32400 ( медиасервер PLEX) посылает WOL пакет на ПК, на котором развернут PLEX сервер. Скрипт базируется на утилите etherwake и анализе логов утилитой logread. Как выяснилось позднее в keenetic нет logread. Буду благодарен если поможете его модицифровать скрипт для работы на роутере giga. #!/bin/sh PINGS_CNT=1 SRV_IP=192.168.0.86 SRV_MAC=C8:60:00:99:0A:97 SRV_PORT=32400 #BC_IP=192.168.0.255 WOL=/usr/bin/etherwake LOG=/var/log/wol logger -p user.info -t PLEX "[`date -Iseconds`] PLEX Wake on LAN serevice was started." iptables -D FORWARD -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX Connection " iptables -I FORWARD -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX Connection " #echo "Log was truncated at [`date -Iseconds`]" > $LOG # Truncate log logread -f | while read LOG_LINE; do DST=`echo $LOG_LINE | grep -Fo "DST=$SRV_IP"` DPT=`echo $LOG_LINE | grep -Fo "DPT=$SRV_PORT"` if [ "$DST" == "" -o "$DPT" == "" ]; then continue fi #SRC_IP=`echo $LOG_LINE | grep -Fo "SRC=" | sed -e "s/SRC=//g"` SRC_IP=`echo $LOG_LINE | grep -Fo "SRC="` if [ "$SRC_IP" != "" ]; then # Found a matching line. Try to ping the server PING_RSLT=`ping -c $PINGS_CNT -W 1 $SRV_IP 2> /dev/null | awk '/packets received/ {print $4}'` if [ "$PING_RSLT" != "$PINGS_CNT" ]; then # Guess it's sleeping. Send WoL. #echo "[`date -Iseconds`] $SRC_IP causes PLEX SRV WoL." >> $LOG #logger -p user.info -t PLEX "[`date -Iseconds`] $SRC_IP causes PLEX SRV Wake on LAN." logger -p user.info -t PLEX "[`date -Iseconds`] PLEX SRV Wake on LAN was triggered." $WOL $SRV_MAC #>> $LOG #else #echo "[`date -Iseconds`] PLEX SRV $SRV_IP was accessed by $SRC_IP and is alive." >> $LOG #logger -p user.info -t PLEX "[`date -Iseconds`] SRV is alive" fi fi done
  2. Добрый день! У меня есть скрипт, который по запросу от любого устройства (TV, телефон, планшет и прочее) на порт 32400 ( медиасервер PLEX) посылает WOL пакет на ПК, на котором развернут PLEX сервер. Скрипт базируется на утилите etherwake и анализе логов утилитой logread. Как выяснилось позднее в keenetic нет logread. Помогите пожалуйста модицифровать скрипт для работы на роутере giga. #!/bin/sh PINGS_CNT=1 SRV_IP=192.168.0.86 SRV_MAC=C8:60:00:99:0A:97 SRV_PORT=32400 #BC_IP=192.168.0.255 WOL=/usr/bin/etherwake LOG=/var/log/wol logger -p user.info -t PLEX "[`date -Iseconds`] PLEX Wake on LAN serevice was started." iptables -D FORWARD -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX Connection " iptables -I FORWARD -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX Connection " #echo "Log was truncated at [`date -Iseconds`]" > $LOG # Truncate log logread -f | while read LOG_LINE; do DST=`echo $LOG_LINE | grep -Fo "DST=$SRV_IP"` DPT=`echo $LOG_LINE | grep -Fo "DPT=$SRV_PORT"` if [ "$DST" == "" -o "$DPT" == "" ]; then continue fi #SRC_IP=`echo $LOG_LINE | grep -Fo "SRC=" | sed -e "s/SRC=//g"` SRC_IP=`echo $LOG_LINE | grep -Fo "SRC="` if [ "$SRC_IP" != "" ]; then # Found a matching line. Try to ping the server PING_RSLT=`ping -c $PINGS_CNT -W 1 $SRV_IP 2> /dev/null | awk '/packets received/ {print $4}'` if [ "$PING_RSLT" != "$PINGS_CNT" ]; then # Guess it's sleeping. Send WoL. #echo "[`date -Iseconds`] $SRC_IP causes PLEX SRV WoL." >> $LOG #logger -p user.info -t PLEX "[`date -Iseconds`] $SRC_IP causes PLEX SRV Wake on LAN." logger -p user.info -t PLEX "[`date -Iseconds`] PLEX SRV Wake on LAN was triggered." $WOL $SRV_MAC #>> $LOG #else #echo "[`date -Iseconds`] PLEX SRV $SRV_IP was accessed by $SRC_IP and is alive." >> $LOG #logger -p user.info -t PLEX "[`date -Iseconds`] SRV is alive" fi fi done
×
×
  • Create New...