Új hozzászólás Aktív témák

  • vargalex

    félisten

    válasz ecaddict #11063 üzenetére

    Hi!

    Köszi, módosítottam is az rtorrent.cgi-t. Ez az aktuális:

    #!/bin/sh

    STATDATE=`echo "\`date -I\`"`
    HTDIR=/opt/share/www/rtorrentstat
    SYSLOG=/opt/var/log/"${MY_DATE}"/rtorrent.log
    GNUPLOT=/opt/bin/gnuplot
    GNUPLOT_COMMAND=${HTDIR}/rtorrlog.gnuplot
    GNUPLOT_DATA=${HTDIR}/rtorrlog.data
    GNUPLOT_OUTPUT=${HTDIR}/rtorrlog.png
    HTTP_IMG_LOCATION=./rtorrlog.png
    #TIMEZONE_OFFSET=+3600
    _log ()
    {
    SYSLOG=/opt/var/log/$STATDATE/rtorrent.log
    if [ ! -r ${SYSLOG} ]; then
    echo "<p>${SYSLOG} not readable. Properly configure syslogd at "
    echo "system startup.</p>"
    return
    fi
    if [ ! -x ${GNUPLOT} ]; then
    echo "<p>gnuplot: ${GNUPLOT} not found. Properly configure paths "
    echo "in $0 for transfer graphing!</p>"
    return
    fi
    FLOG=`cat "$SYSLOG" | sed -n '/.* rtorrents:.*/{p;q}'`
    DOFFS=`echo $FLOG | sed -n 's/.* \([0-9]*\):\([0-9]*\):\([0-9]*\).*/\1 \2 \3/p'`
    EOFFS=`echo $FLOG | sed -n 's/.* rtorrents: \([0-9]*\).*/\1/p'`
    FACT=3600; SEC=0
    for F in $DOFFS ;do
    let "SEC+=$F*$FACT"; let "FACT=$FACT/60"
    done
    let "EOFFS=$EOFFS-$SEC"; let "EOFFS=$EOFFS%86400"
    if [ "$EOFFS" -gt 43200 ];then
    let "EOFFS=86400-$EOFFS"; EOFFS='+'"$EOFFS"
    else EOFFS='-'"$EOFFS"
    fi

    echo "<pre>"
    sed -n -e "/ rtorrents.*:/{s/.*: \([0-9]\{1,10\}\) [0-9]\{1,\} dl \([0-9.]\{1,\}\) ul \([0-9.]\{1,\}\) ld \([0-9.]\{1,\}\)/\1 \2 -\3 \4/;t data;p;b;:data w
    echo "</pre>"
    echo "<p>Generating graph...</p>"
    TZO=${TIMEZONE_OFFSET:-"$EOFFS"}
    cat > ${GNUPLOT_COMMAND} << __EOF__
    set terminal png small size 1260,320
    set output '${GNUPLOT_OUTPUT}'
    set xdata time
    set timefmt "%s"
    set format x "%H:%M\n%m/%d"
    set ytics nomirror
    set y2tics nomirror
    set y2range [0:]
    set ylabel "rtorrent transfer rate [kB/s]"
    set y2label "System load (5 min average)"
    set y2tics 1
    set xlabel "Time [UTC ${TZO} seconds]"
    plot "${GNUPLOT_DATA}" using (\$1+${TZO}):2 title 'download' axis x1y1 with impulses, \
    "${GNUPLOT_DATA}" using (\$1+${TZO}):3 title 'upload' with impulses, \
    "${GNUPLOT_DATA}" using (\$1+${TZO}):4 axis x1y2 title 'load' with lines
    __EOF__

    ${GNUPLOT} ${GNUPLOT_COMMAND}

    echo "<img src=\"${HTTP_IMG_LOCATION}\">"

    }

    _header ()
    {
    cat << __EOF__
    Content-type: text/html

    <html>
    <head>
    <title>rtorrent</title>
    <SCRIPT LANGUAGE="JavaScript" SRC="./CalendarPopup.js"></SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">document.write(getCalendarStyles());</SCRIPT>
    <style type="text/css">
    <!--
    body {
    padding:0;
    margin:0;
    width: auto;
    color: #2f2f4f;
    font-family:tahoma;
    font-size:14px;
    }

    input {
    padding:3px 7px;
    font-family:tahoma;
    font-size:11px;
    font-weight:bold;
    border: 5 px #aaaaaa raised;
    }

    #MY_DATE {
    background-color:#ffffff;
    color:#000000;
    }

    form {
    padding:10px;
    margin:0px;
    background-color:#FFF9D8;
    }

    p {
    font-size:14px;
    padding:0px;
    margin:10px;
    color:#008000;
    }

    #footer{
    padding:0;
    margin:0;
    }
    //-->
    </style>
    </head>
    <body>
    <form action=rtorrent.sh method=get>
    <label for="MY_DATE">Log date:</label>
    <SCRIPT LANGUAGE="JavaScript" ID="jscal1xx">
    var cal1xx = new CalendarPopup("testdiv1");
    cal1xx.setWeekStartDay(1);
    cal1xx.showNavigationDropdowns();
    </SCRIPT>
    <input color:#FFFFFF type="text" name=MY_DATE size=10 id="my_date" value=$STATDATE>
    <input type=button name=sbutton id=sbutton value="Select date" onClick="cal1xx.select(document.forms[0].MY_DATE,'sbutton','yyyy-MM-dd'); return false;"/>
    <input type=submit accesskey=c name=ACTION value="Show stat">
    <DIV ID="testdiv1" STYLE="position:absolute;visibility:hidden;background-color:white;layer-background-color:white;"></DIV>
    <br><br>
    __EOF__

    }

    _footer ()
    {
    echo "<p>Uptime: " ; uptime ; echo "</p>"

    cat << __EOF__
    </body>
    </html>
    __EOF__
    }

    query_string=`echo "$QUERY_STRING" | sed 's/&/;/g'`
    eval ${query_string}

    case "${ACTION}" in
    "Show+stat") STATDATE="${MY_DATE}" ;_header ; _log ; _footer ;;
    *) _header ; _footer ;;
    esac

    [ Szerkesztve ]

    Alex

Új hozzászólás Aktív témák