Ярлыки

Memories ( 25 ) Unix ( 14 ) FreeBSD ( 8 ) www ( 4 ) Scripts ( 3 ) GEOM ( 2 ) PART ( 2 ) smtp ( 2 ) Cacti ( 1 ) Jabber ( 1 ) KVM ( 1 ) Kohana ( 1 ) RAID ( 1 ) Sip ( 1 ) Ubuntu ( 1 ) Zyxel ( 1 ) nginx ( 1 ) php-fpm ( 1 ) portwfd ( 1 ) rewrite ( 1 ) security ( 1 )

Поиск по этому блогу

вторник, 22 февраля 2011 г.

Rtorrent Auto start&restart

Создадим init.d скрипт для автоматического запуска rtorrent

nano /etc/init.d/rtorrent.sh

#!/bin/bash
#
#
# A simple RTorrent initscript for debian-based distros
#
# Distributed as-is, no warranties
#
# Requires GNU Screen
#
# This script does not perform any checks, i.e. wether the user exists, is screen installed etc
#
#
# The user to run rtorrent as
#
RTUSER=enter your username here
#
#
# Paths to different binaries
#
RTORRENT=/usr/bin/rtorrent
#
KILL=/bin/kill
#
SCREEN=/usr/bin/screen
#
#
# PIDfile path
#
PIDFILE=/var/run/rtorrent.pid
#
#
start_rt()
#
{
#
echo -n "Starting rtorrent... "
#
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --chuid $RTUSER --exec $SCREEN -- -DmUS torrent $RTORRENT
#
if [ $? -eq 0 ]; then
#
echo "success!"
#
echo "To interact with the torrent client, you will need to reattach the screen session with following command:"
#
echo " screen -r torrent"
#
else
#
echo "fail!"
#
fi
#
}
#
#
stop_rt()
#
{
#
echo -n "Stopping rtorrent... "
#
start-stop-daemon --stop --pidfile $PIDFILE
#
if [ $? -eq 0 ]; then
#
echo "The process stopped successfully"
#
else
#
echo "The process failed to stop"
#
fi
#
}
#
#
status_rt()
#
{
#
echo -n "Status: "
#
PID=`cat $PIDFILE`
#
#
# Check if the process with the specified PID exists
#
# kill -0 will return 0 if the process exists
#
$KILL -0 $PID
#
if [ $? -eq 0 ]; then
#
echo "started"
#
return 0
#
else
#
echo "stopped"
#
return 1
#
fi
#
#
}
#
#
restart_rt_if_needeed()
#
{
#
# Seems like Rtorrent sometimes crashes. This function
#
# restarts rtorrent if it's not running
#
status_rt
#
if [ $? -ne 0 ]; then
#
echo "Rtorrent is not running. Restart needed"
#
stop_rt
#
start_rt
#
else
#
echo "Restart is not needed"
#
fi
#
}
#
#
case "$1" in
#
start)
#
start_rt
#
;;
#
stop)
#
stop_rt
#
;;
#
restart)
#
stop_rt
#
start_rt
#
;;
#
restart_if_needed)
#
restart_rt_if_needeed
#
;;
#
status)
#
status_rt
#
;;
#
*)
#
echo "Usage: {start|stop|restart|status|restart_if_needed}"
#
;;
#
esac


chmod 755 /etc/init.d/rtorrent.sh
update-rc.d rtorrent.sh defaults

Centos 5 Aliases ipRange

"Правильный" способ навесить много алиасов в Centos5.
Создаем файл /etc/sysconfig/network-scripts/ifcfg-eth0-range0 со следующим содержанием:


ONBOOT=yes
IPADDR_START=192.168.0.1
IPADDR_END=192.168.0.14
NETMASK=255.255.255.240
CLONENUM_START=1

Получаем кучку алиасов на eth0 в диапазоне 192.168.0.1/28.

среда, 9 февраля 2011 г.

iptables shaper

Cкрипт htb.init который можно скачать тут sourceforge.net/projects/htbinit/
sudo cp htb.init /etc/init.d/htb
sudo chmod +x /etc/init.d/htb
sudo update-rc.d htb defaults

В папке, в которую указывает HTB_PATH, (лично я поправил эту переменую и у меня получилось /etc/htb, естественно этой папки в системе нет ее нужно создать) создаем следующие файлы:
eth1:
R2Q=20
DEFAULT=0

R2Q — коэффициент, определяющий соотношение точности/скорости работы шейпера
DEFAULT — идентификатор класса, в который попадают пакеты, если они не попадают под другие правила. Класс с идентификатором 0 существует всегда и пропускает пакеты без всякого шейпинга, то есть на полной скорости.
Этим файлом мы инициализировали шейпер на интерфейсе eth0.
eth1-2.root:
RATE=24Mbit
Этим файлом мы создали корневой класс траффика на интерфейсе eth0 и ограничили максимальную скорость отдачи через этот класс 24 мегабитами.
eth1-2:2001:
RATE=512Kbit
CEIL=24Mbit
LEAF=sfq
RULE=10.2.2.10/24

Этим файлом мы создали класс для первого клиента.
RATE — гарантируемая скорость для клиента. Поскольку в нашем случае не нужно гарантировать никакой скорости, но HTB этого требует, исходим из неравенства: 24000Кбит / 3 > RATE.
CEIL — максимальная скорость для клиента при свободном канале.
LEAF — указывает, что класс является одним из листов дерева, то есть в него попадает трафик, удовлетворяющий определенному правилу (RULE). Параметр sfq означает, что мы хотим, чтобы внутри этого класса скорость распределялась равномерно между сессиями.
RULE — правило, задающее, какой трафик будет попадать в этот класс (см. Замечание 1). В данном случае в класс попадает весь трафик, имеющий IP назначения от 10.2.2.10 до 10.2.2.255.
О назначении и значениях параметров, которые указываются в файлах, и о именах файлов можно узнать из скрипта htb.init — там вверху есть неплохая справка.
Стартуем наш шейпер
sudo /etc/init.d/htb start
Всё, шейпер включен. Далее, если что-то изменится в конфигруации, нужно сделать /etc/init.d/htb restart.
Проверить работу скрипта htb.init, кроме спидтестов, можно просмотром конфигурации командами:
tc class show dev eth1
tc qdisc show dev eth1

Взято с Хабры