понедельник, 28 апреля 2014 г.

Best short ingress shaper for linux by using htb and iptables

Здесь пример только для входящего трафика. Исходящий жмется также.
#cat /etc/init.d/shaper.sh
eth0  - local net interface


case "$1" in
start)
    echo -n "Starting shaper. . ."
    tc qdisc  add dev eth0 root handle 1: htb default 30 r2q 1
    tc class  add dev eth0 parent 1: classid 1:1 htb rate 100mbit

#самый медленный класс, с приоритетом 1 - потому как тормознуть наглый хост надо палюбасу :)
    tc class  add dev eth0 parent 1:1 classid 1:30 htb rate 4mbit ceil 10mbit  burst 200k prio 1
    tc qdisc  add dev eth0 parent 1:30 sfq perturb 10
    iptables -t mangle -A POSTROUTING -o eth0 -d 192.168.1.66 -j CLASSIFY --set-class 1:30
#туда же весь торрент трафик
    iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m multiport --sport 4661,4662,4672,4665,4711,6881:6889,6881:6999 -j CLASSIFY --set-class 1:30
    iptables -t mangle -A POSTROUTING -o eth0 -p udp -m multiport --sport 4661,4662,4672,4665,4711,6881:6889,6881:6999 -j CLASSIFY --set-class 1:30

#более добрая политика для внутряки через прокси и остальное
    tc class  add dev eth0 parent 1:1 classid 1:20 htb rate 10mbit ceil 30mbit  burst 200k prio 2
    tc qdisc  add dev eth0 parent 1:20 sfq perturb 10
    iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m multiport --sport 3128,80,443,25,110,495,995,465,222,2222 -j CLASSIFY --set-class 1:20

#совсем добрый класс для dns/ssh, мелких пакетов и директора))
    tc class  add dev eth0 parent 1:1 classid 1:10 htb rate 4mbit ceil 100mbit burst 200k prio 3
    tc qdisc  add dev eth0 parent 1:10 sfq perturb 10
    iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m multiport --sport 53,123,22 -j CLASSIFY --set-class 1:10
    iptables -t mangle -A POSTROUTING -o eth0 -p tcp --syn -m length --length 40:68 -j CLASSIFY --set-class 1:10
    iptables -t mangle -A POSTROUTING -o eth0 -p tcp --tcp-flags ALL SYN,ACK -m length --length 40:68 -j CLASSIFY --set-class 1:10
    iptables -t mangle -A POSTROUTING -o eth0 -d 192.168.0.66 -j CLASSIFY --set-class 1:10

    echo "OK"
;;
#окончание скрипта
stop)
    echo -n "Stopping shaper. . ."
    iptables -t mangle -F
    tc qdisc del dev eth0 root
    echo "OK"
;;

status)
    if [ "$2" = "" ]; then
    $0; exit;fi
    echo "============== QDISC STATUS =================="
    tc -s -d qdisc show dev $2
    echo "============== CLASS STATUS =================="
    tc -s -d class show dev $2
    echo "----------------------------------------------"
;;

restart)
$0 stop && $0 start || exit 1
;;

*)
echo "Usage: `basename $0` {start|stop|restart|status eth0/eth1}"
exit 1
;;

esac

понедельник, 21 апреля 2014 г.

Оправляем письмо с помощью vbscript


set objEmail = CreateObject("CDO.Message")
myfolder = "D:\FOLDER1\FOLDER2"
objEmail.From = "from@email"
objEmail.To = "user123@mail.cc"
objEmail.Cc = "cc@email"
objEmail.Subject = "SUBJECT"
objEmail.Textbody = "С ув. qwer" & vbCRLF & " qweqwqweqwe"
objEmail.BodyPart.CharSet = "windows-1251"

Set objFSO = CreateObject("Scripting.FileSystemObject")

set WShell = CreateObject("WScript.Shell")
Dim str1

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(myfolder)
Set files = folder.Files

For each folderIdx In files
 if InStr(folderIdx.Name,"USR") then
str1 = myfolder & folderIdx.Name
'WScript.Echo(str1)
  objEmail.AddAttachment (str1)
 end if
Next

objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "exch"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update()

objEmail.Send()