Hatred's Log Place

DON'T PANIC!

Dec 1, 2008 - 2 minute read - Comments -

Замечания по NDB кластеру и NDB-нодам

На уровне замечений, касательно понятий “Node Group” и параметра секции [NDBD DEFAULT] NoOfReplicas в конфиге кластаера config.ini

NoOfReplicas - параметр задающий количество реплик данных. Допустим, его значение 2, тогда получается у нас будет две реплики данных. Теперь дальше, допустим, NDB ноды у нас с номерами 10, 11, 12, 13 и в конфиге они перечислены в этом же порядке, тогда количество Node Group будет:

NodeGroupsCount = NDB_Nodes_Count / NoOfReplicas = 4 / 2 = 2

Номера Node Group будут: 0 и 1 (нумерация с нуля.)

Теперь, как ноды группируются в группы? А просто, по порядку номеров. Т.е. наши ноды 10, 11, 12, 13 при NoOfReplicas = 2, распределятся так: * Node Group 0: 10, 11 * Node Group 1: 12, 13

Если прводить аналогии, то очень похоже на RAID 10: 10+11, 12+13 - работают в зеркалирование, и в сумме (10_11)+(12_13) - в чередовании.

Отсюда ещё одно важно замечание: если ВСЕ ноды одной группы вылетают, целостность данных нарушается, как следствие ВЕСЬ кластер прекращает работу, и, как следствие: для работы (и для запуска) кластера необходимо, что бы было хотя бы по одной живой ноде из группы.

Ещё одно замечание (пока окончательно не проверено), но дополню: по одной живой ноде из группы должны стартовать в промежуток не больше 30 сек. Ещё лучше запускать ноды с параметром -n а потом через менеджмент-панель делать или ALL START или node-id START

И в заключение, если отвалится одна нода из группы, лучше, как можно быстрее получить об этом уведомление на почту или ещё куда. И распределять ноды одной группы так, что бы не получилось “семерых одним ударом”.

Nov 24, 2008 - 1 minute read - Comments -

Как оформить диплом в LaTeX?

Михаил Конник aka virens, ведущий блога “Записки Дебианщика”, который я регулярно читаю, начал публиковать свой труд по сабжевым названием.

На данный момент рассмотрены вопросы установки дистрибутива LaTeX (кстати в ArchLinux смотрим вывод pacman -Ss texlive и ставим себе что нужно), основу будущего документа, которую потом можно использовать как шаблон для других работ, немного упомянуты пролемы конвертации из/в LaTeX в другие форматы (в частности RTF и MS Word).

Статья: http://mydebianblog.blogspot.com/2008/11/latex.html

Nov 23, 2008 - 9 minute read - Comments -

VLAN в ArchLinux

Волей судеб понадобилось в ArchLinux поднять несколько VLAN. Привычным движением открываю файл /etc/rc.conf на редактирование, прописываю туда: eth2v0001=“eth2.0001 192.168.0.254 netmask 255.255.255.0”

добавляю eth2v0001 в INTERFACES: INTERFACES=(… eth2v0001 …)

и поднимаю интерфейс: /etc/rc.d/network ifup eth2v0001

и… получаю ругань что такого интерфейса не существует.

В чем проблема?.. Иду на http://wiki.archlinux.org и делаю поиск по слову VLAN, нахожу всего одну статью: High Performance Firewall/Nat with iptables and VLANs and iproute2 в которой упоминается программа vconfig из одноименного пакета - именно она нужна для настройки VLAN на сетевых интерфейсах.

Ладно, с этим всё хорошо, но неужели ручками настраивать все VLAN которые потребуются?

Почесав макушку, иду смотреть содержимое файла /etc/rc.d/network и нахожу, что для VLAN там нет вообще ничего.

“Если гора не идет к Магомеду, то Магомед идет к горе”, - подумал я, и краем глаза посмотрел как процедура сделана в Debian Linux. Там в директории /etc/network/if-pre-up.d лежит скрипт vlan который занимается конфигурированием VLAN. В директории /etc/network/if-post-down.d скрипт vlan занимается подчисткой следов после своей работы - сиречь удаляет созданные VLAN.

Поразмыслив, решаю допиливать скрипт настройки сети в Arch.

Для начала ставим нужные пакеты: pacman -S vconfig iproute

Создаём файл /etc/rc.d/network_vlan со следующим содержимым:

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

# wireless settings
[ -f /etc/conf.d/wireless ] && . /etc/conf.d/wireless
# ethernet bonding settings
[ -f /etc/conf.d/bonding ] && . /etc/conf.d/bonding
# bridge settings
[ -f /etc/conf.d/bridges ] && . /etc/conf.d/bridges
# dhcpcd settings
[ -f /etc/conf.d/dhcpcd ] && . /etc/conf.d/dhcpcd

# Code taked from Debian distribution
vlan_up()
{
    local iface
    local VLANID
    local IF_VLAN_RAW_DEVICE
    iface=$1

    case "$iface" in
        vlan0*)
                vconfig set_name_type VLAN_PLUS_VID > /dev/null 2>&1
                VLANID=`echo $iface|sed "s/vlan0*//"`
                ;;
        vlan*)
                vconfig set_name_type VLAN_PLUS_VID_NO_PAD > /dev/null 2>&1
                VLANID=`echo $iface|sed "s/vlan0*//"`
                ;;
        eth*.0*)
                vconfig set_name_type DEV_PLUS_VID > /dev/null 2>&1
                VLANID=`echo $iface|sed "s/eth[0-9][0-9]*<br/>.0*//g"`
                IF_VLAN_RAW_DEVICE=`echo $iface|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
                ;;
        eth*.*)
                vconfig set_name_type DEV_PLUS_VID_NO_PAD > /dev/null 2>&1
                VLANID=`echo $iface|sed "s/eth[0-9][0-9]*<br/>.0*//g"`
                IF_VLAN_RAW_DEVICE=`echo $iface|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
                ;;
        *)      return 0
                ;;
    esac

    if [ -n "$IF_VLAN_RAW_DEVICE" ]
    then
        if [ ! -x /usr/sbin/vconfig ]; then
          return 0
        fi

        if ! ip link show dev "$IF_VLAN_RAW_DEVICE" > /dev/null; then
            #echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $iface"
            return 1
        fi
        ip link set up dev $IF_VLAN_RAW_DEVICE > /dev/null 2>&1
        vconfig add $IF_VLAN_RAW_DEVICE $VLANID > /dev/null 2>&1
    fi

    return 0
}

vlan_down()
{
    local iface
    local IF_VLAN_RAW_DEVICE

    iface=$1

    case "$iface" in
        eth*.0*)
                IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
                ;;
        eth*.*)
                IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
                ;;
        *)      return 0
                ;;
    esac

    if [ -z "$IF_VLAN_RAW_DEVICE" ]; then
        return 0
    fi

    if [ ! -x /usr/sbin/vconfig ]; then
	return 0
    fi

    vconfig rem $face > /dev/null 2>&1
}

ifup()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 ifup <interface_name>"
		return 1
	fi

	wi_up $1 || return 1

	eval ifcfg="<br/>$${1}"
	if [ "$ifcfg" = "dhcp" ]; then
		# remove the .pid file if it exists
		/bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1
		/bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
		/sbin/dhcpcd $DHCPCD_ARGS ${1}
	else
		iface=`echo $ifcfg | awk '{print $1}'`
		vlan_up $iface || return 1

		/sbin/ifconfig $ifcfg
	fi
	return $?
}

wi_up()
{
	eval iwcfg="<br/>$wlan_${1}"
	[ "$iwcfg" = "" ] && return 0

	/usr/sbin/iwconfig $iwcfg
	[[ -z "$WIRELESS_TIMEOUT" ]] && WIRELESS_TIMEOUT=2
	sleep $WIRELESS_TIMEOUT

	bssid=`iwgetid $1 -ra`
	if [[ "$bssid" = "00:00:00:00:00:00" ]]; then
		printhl "Could not associate $1 - try increasing WIRELESS_TIMEOUT and check network is WEP or has no security"
		return 1
	fi
	return 0
}

ifdown()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 ifdown <interface_name>"
		return 1
	fi
	eval ifcfg="<br/>$${1}"
	if [ "$ifcfg" = "dhcp" ]; then
		if [ -f /var/run/dhcpcd-${1}.pid ]; then
			/bin/kill $(cat /var/run/dhcpcd-${1}.pid)
		fi
	fi
	# Always bring the interface itself down
	/sbin/ifconfig ${1} down >/dev/null 2>&1

	iface=`echo $ifcfg | awk '{print $1}'`
	vlan_down $iface || return 1

	return 1
}

iflist()
{
	local iface
	for ifline in ${INTERFACES[@]}; do
		if [ "$ifline" = "${ifline#!}" ]; then
			printf " $ifline:<br/>t"
		else
			printf "$ifline:<br/>t"
		fi
		eval real_ifline=<br/>$${ifline#!}

		iface=`echo $real_ifline | awk '{print $1}'`
		if [ x"$iface" != x"dhcp" ]; then
		    is_run=`ifconfig $iface 2>/dev/null | grep 'inet addr'`
		    if [ -z "$is_run" ]; then
			run='( )'
		    else
			run='(*)'
		    fi
		else
		    run='(?)'
		fi

		echo $real_ifline $run
	done
}

rtup()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 rtup <route_name>"
		return 1
	fi
	eval routecfg="<br/>$${1}"
	if grep -q :: <<< $routecfg; then
			/sbin/route -A inet6 add $routecfg
	else
			/sbin/route add $routecfg
	fi
	return $?
}

rtdown()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 rtdown <route_name>"
		return 1
	fi
	eval routecfg="<br/>$${1}"
	if grep -q :: <<< $routecfg; then
			/sbin/route -A inet6 del $routecfg
	else
			/sbin/route del $routecfg
	fi
	return $?
}

rtlist()
{
	for rtline in ${ROUTES[@]}; do
		if [ "$rtline" = "${rtline#!}" ]; then
			printf " $rtline:<br/>t"
		else
			printf "$rtline:<br/>t"
		fi
		eval real_rtline=<br/>$${rtline#!}
		echo $real_rtline
	done
}

bond_up()
{
	for ifline in ${BOND_INTERFACES[@]}; do
		if [ "$ifline" = "${ifline#!}" ]; then
			eval bondcfg="<br/>$bond_${ifline}"
			/sbin/ifenslave $ifline $bondcfg || error=1
		fi
	done
}

bridge_up()
{
	for br in ${BRIDGE_INTERFACES[@]}; do
		if [ "$br" = "${br#!}" ]; then
			# if the bridge already exists, remove it
			if [ "$(/sbin/ifconfig $br 2>/dev/null)" ]; then
				/sbin/ifconfig $br down
				/usr/sbin/brctl delbr $br
			fi
			/usr/sbin/brctl addbr $br
			eval brifs="<br/>$bridge_${br}"
			for brif in $brifs; do
				if [ "$brif" = "${brif#!}" ]; then
					/usr/sbin/brctl addif $br $brif || error=1
				fi
			done
		fi
	done
}

bridge_down()
{
	for br in ${BRIDGE_INTERFACES[@]}; do
		if [ "$br" = "${br#!}" ]; then
			/usr/sbin/brctl delbr $br
		fi
	done
}


case "$1" in
	start)
		if ! ck_daemon network; then
			echo "Network is already running.  Try 'network restart'"
			exit
		fi

		stat_busy "Starting Network"
		error=0
		# bring up bridge interfaces
		bridge_up
		# bring up ethernet interfaces
		for ifline in ${INTERFACES[@]}; do
			if [ "$ifline" = "${ifline#!}" ]; then
				ifup $ifline || error=1
			fi
		done
		# bring up bond interfaces
		bond_up
		# bring up routes
		for rtline in "${ROUTES[@]}"; do
			if [ "$rtline" = "${rtline#!}" ]; then
				rtup $rtline || error=1
			fi
		done
		if [ $error -eq 0 ]; then
			add_daemon network
			stat_done
		else
			stat_fail
		fi
		;;
	stop)
		#if ck_daemon network; then
		#	echo "Network is not running.  Try 'network start'"
		#	exit
		#fi

		stat_busy "Stopping Network"
		rm_daemon network
		error=0
		for rtline in "${ROUTES[@]}"; do
			if [ "$rtline" = "${rtline#!}" ]; then
				rtdown $rtline || error=1
			fi
		done
		for ifline in ${INTERFACES[@]}; do
			if [ "$ifline" = "${ifline#!}" ]; then
				ifdown $ifline || error=1
			fi
		done
		# bring down bridge interfaces
		bridge_down
		if [ $error -eq 0 ]; then
			stat_done
		else
			stat_fail
		fi
		;;
	restart)
		$0 stop
		/bin/sleep 2
		$0 start
		;;
	hotplug_ifup|ifup|ifdown|iflist|rtup|rtdown|rtlist)
		$1 $2
		;;
	*)
		echo "usage: $0 {start|stop|restart}"
		echo "       $0 {ifup|ifdown|iflist|rtup|rtdown|rtlist}"
esac

# vim: set ts=2 noet:

Он основан на оригинальном скрипте network из пакета initscripts. Кроме поддержки VLAN там подправлен немного вывод iflist который добавляет в конце каждый строки с интерфейсом: * (*) - интерфейс поднят * ( ) - интерфейс не поднят * (?) - dhcp

Т.к. это скрипт основан на оригинальном, имеет смысл предоставить diff между оригиналом и новым файлом:

--- network	2008-09-19 07:26:34.000000000 +1100
@@ -12,6 +12,83 @@
 # dhcpcd settings
 [ -f /etc/conf.d/dhcpcd ] && . /etc/conf.d/dhcpcd

+# Code taked from Debian distribution
+vlan_up()
+{
+    local iface
+    local VLANID
+    local IF_VLAN_RAW_DEVICE
+    iface=$1
+
+    case "$iface" in
+        vlan0*)
+                vconfig set_name_type VLAN_PLUS_VID
+                VLANID=`echo $iface|sed "s/vlan0*//"`
+                ;;
+        vlan*)
+                vconfig set_name_type VLAN_PLUS_VID_NO_PAD
+                VLANID=`echo $iface|sed "s/vlan0*//"`
+                ;;
+        eth*.0*)
+                vconfig set_name_type DEV_PLUS_VID
+                VLANID=`echo $iface|sed "s/eth[0-9][0-9]*<br/>.0*//g"`
+                IF_VLAN_RAW_DEVICE=`echo $iface|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
+                ;;
+        eth*.*)
+                vconfig set_name_type DEV_PLUS_VID_NO_PAD
+                VLANID=`echo $iface|sed "s/eth[0-9][0-9]*<br/>.0*//g"`
+                IF_VLAN_RAW_DEVICE=`echo $iface|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
+                ;;
+        *)      return 0
+                ;;
+    esac
+
+    if [ -n "$IF_VLAN_RAW_DEVICE" ]
+    then
+        if [ ! -x /usr/sbin/vconfig ]; then
+          return 0
+        fi
+
+        if ! ip link show dev "$IF_VLAN_RAW_DEVICE" > /dev/null; then
+            echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $iface"
+            return 1
+        fi
+        ip link set up dev $IF_VLAN_RAW_DEVICE
+        vconfig add $IF_VLAN_RAW_DEVICE $VLANID
+    fi
+
+    return 0
+}
+
+vlan_down()
+{
+    local iface
+    local IF_VLAN_RAW_DEVICE
+
+    iface=$1
+
+    case "$iface" in
+        eth*.0*)
+                IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
+                ;;
+        eth*.*)
+                IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/<br/>(eth[0-9][0-9]*<br/>)<br/>..*/<br/>1/"`
+                ;;
+        *)      return 0
+                ;;
+    esac
+
+    if [ -z "$IF_VLAN_RAW_DEVICE" ]; then
+        return 0
+    fi
+
+    if [ ! -x /usr/sbin/vconfig ]; then
+	return 0
+    fi
+
+    vconfig rem $face
+}
+
 ifup()
 {
 	if [ "$1" = "" ]; then
@@ -28,6 +105,9 @@
 		/bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
 		/sbin/dhcpcd $DHCPCD_ARGS ${1}
 	else
+		iface=`echo $ifcfg | awk '{print $1}'`
+		vlan_up $iface || return 1
+
 		/sbin/ifconfig $ifcfg
 	fi
 	return $?
@@ -63,12 +143,17 @@
 		fi
 	fi
 	# Always bring the interface itself down
1. /sbin/ifconfig ${1} down >/dev/null 2>&1
1. return $?
+	/sbin/ifconfig ${1} down >/dev/null 2>&1 || return 1
+
+	iface=`echo $ifcfg | awk '{print $1}'`
+	vlan_down $iface || return 1
+
+	return 1
 }

 iflist()
 {
+	local iface
 	for ifline in ${INTERFACES[@]}; do
 		if [ "$ifline" = "${ifline#!}" ]; then
 			printf " $ifline:<br/>t"
@@ -76,7 +161,20 @@
 			printf "$ifline:<br/>t"
 		fi
 		eval real_ifline=<br/>$${ifline#!}
1. 	echo $real_ifline
+
+		iface=`echo $real_ifline | awk '{print $1}'`
+		if [ x"$iface" != x"dhcp" ]; then
+		    is_run=`ifconfig $iface | grep 'inet addr'`
+		    if [ -z "$is_run" ]; then
+			run='( )'
+		    else
+			run='(*)'
+		    fi
+		else
+		    run='(?)'
+		fi
+
+		echo $real_ifline $run
 	done
 }

Можно скачать файлом:

В заключении немного об именовании интерфейсов и переменных в /etc/rc.conf.

Имя интерфейса с VLAN должно быть одним из: * eth#.# - если сразу после точки идет цифра отличная от нуля (ex.: eth2.1, eth2.815) * eth#.#### - если сразу после точки идет ноль (0), тогда обязательно VLAN ID должен быть расширен до 4 цифр (ex.: eth2.0001, eth2.0814). Что будет если вы этого не сделаете? Попробуйте сами, а найдете решение как обойти - дайте знать ;)

Есть ещё варианта интерсейсов vlan# и vlan####, но я с ними не сталкивался и ничего сказать не могу. Кто может дополнить - с радостью выслушаю :)

Внутри конфига /etc/rc.conf я выработал следующие правила для именования переменных с параметрами интерфейсов: * eth# - для основного интерфейса * eth#a# - для алиасов (eth2:1) * eth#v# или eth#v#### - для VLAN (eth2.1)

Примеры: eth2=“eth2 192.168.0.1 netmask 255.255.255.0” eth2a1=“eth2:1 192.168.1.130 netmask 255.255.255.255” eth2v814=“eth2.814 192.168.2.130 netmask 255.255.255.255”

Вот в общем и всё. Сейчас ещё патч запщу на http://bugs.archlinux.org.

UPD:

Хех… я не один такой оказывается: FS#10420 - VLAN support for Arch default network script

там же есть вариант патча для ethX.Y Сейчас своё добавлю ;)

UPD2:

Да, возможно придется добавить модуль ядра 8021q в строчку MODULES в /etc/rc.conf

Nov 20, 2008 - 1 minute read - Comments -

На века...

Ну собственно с #archlinux-ru на FreeNode:

одну ногу впаиваешь, другие выгибаешь и к ним паяешь проводочки) называется “сопли”, но обычно такие сопли работают) зато вот потом как спаяешь “на века”.. нифига не работает)

Подписываюсь :D

Nov 16, 2008 - 2 minute read - Comments - linux

Планировщик IO проблемы тормоза системы

С недавнего времени стал замечать что система очень сильно тормозит на дисковых операциях. Например, если нужно создать файл 1.5G (допустим, аллоцирование места под закачку торрента), то на выделении система чуть ли не раком становиться - работать становиться очень некомфортно: мышь почти не работает, отклик от клавиатуры очень долгий. Это при том, что памяти - вагон и маленькая тележка (из 1G оперативы 800 метров на кеши, используется меньше 200M).

Почеса репу, решил поглядеть на планировщики IO:

[root@gaz ~]# dmesg | grep scheduler
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered

Начинаю копаться в памяти, ага, точно, на современных ядрах почти всегда планировщик IO по-умолчанию - cfq. Я, видать, уже эксперементировал, и в строке загрузки Grub:

elevator=as

Поменял на

elevator=cfq

(можно было бы и убрать)

Всё, теперь работа стала значительно более приятна.

Хочу отметить, что: * noop - обычный FIFO, подразумевается оптимизация ввода-вывода на уровне блочного устройства. * deadline - реализует механизм предельного срока для минимизации задержен IO. В один момент времени одно приложение имеет эксклюзивный доступ к диску. Для пользовательского ПК врядли подойдет, для сервера базы данных - вполне (да и серверов вообще, где с диском работа идет активно) * as - упреждающий доступ, говориться, что подходит для медленных и малых дисковых подсистем. Как оказалось у меня, на диске 750G не очень хорошо система себя чувствовала. * cfq - полностью справедливая очередь. Очередь ввода/вывода для каждого процесса, пытается разделить всю полосу пропускания между ними.

Если контроллер и диски поддерживают NCQ (SATA диски), стоит попробывать планировщик noop, теоретически производительность должна стать сравнима с cfq, при почти нулевой загрузки CPU. Ставить noop для IDE дисков смысла нет.

Да, планировщик можно поменять “на лету”, указав для каждого диска свой:

[root@gaz hda2]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq] 
[root@gaz hda2]# echo noop > /sys/block/sda/queue/scheduler
[root@gaz hda2]# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq 

Почитать про планировщики можно тут: * Планировщики ввода/вывода в Linux * Выбор планировщика ввода-вывода - тут человек пришел к точно таким же выводам как и я, касательно планировщика as * Ещё про новый (есть в ветке ядра -mm) планировщик BFQ: * http://www.cisco-linux.com.ua/index.cgi?action=news|comments&NEWS_ID=16996 * результаты тестирования

Nov 16, 2008 - 1 minute read - Comments - linux

Диски, файловые системы и данные

Ссылки на статьи по восстановлению данных, а так же технологии ATAoE

Nov 10, 2008 - 1 minute read - Comments - linux

Load average

В выводе uptime можно увидеть:

23:43:20 up 12 days, 1:44, 2 users, load average: 0.38, 0.82, 0.82

Собственно давно мучал вопрос - чиво это?

Если кратко, то давно знал: это средняя загрузка системы за 1/5/15 минут. Но как интерпретировать эти числа было непонятно, вот сегодня допекло, решил разобраться.

Итак, что это такое: число процессов ожидающих очереди на выполнение, процессы в состоянии Run, Wait for Run, Wait for I/O. Соответственно, чем выше - тем больше тормозит система. При значении больше N (где N - число процессоров или ядер в системе) начинается перегруз. Условно, значение можно умножить на 100 и вычесть 100 - получится процент перегруза системы.

Да, сразу несколько полезных утилит: * классический top из пакета procps, подвирает бывает, но годится для “пабыраму пасареть” * более продвинутый htop из одноименного пакета * iostat из пакета sysstat - состояние дисковой подсистемы * mpstat из пакета sysstat - загрузка CPU * pidstat из пакета sysstat - состояние процессов, в т.ч. на каком процессоре запущен процесс. * sar из пакета sysstat - показывает статистику по системной активности, статистика обновляется по крону (sar -A) * isag из пакета sysstat - графическое представление данных по системной активности. Для отрисовки нужен gnuplot

Более подробнее почитать тут: * http://meinit.nl/what-is-load-or-load-average-on-a-linux-box * http://www.linuxjournal.com/article/9001 * http://en.wikipedia.org/wiki/Load_(computing)

Nov 6, 2008 - 15 minute read - Comments -

Дневник отпуска 2007 года

Да, долго я собирался я опубликовать дневник сего путешествия, где я впервые попробовал кататься автостопом, повидал родню в Питере и вообще узнал, что всякие там путевые тяготы на самом деле достаточно неплохо могут переноситься, итак…

2007.07.16 20:53

Первый день. Подготовка к отъезду. Суета суета и еще раз суета, нормально так. Свой рюкзак уже снарядил, пока еще собирается Таня. Основная мысль дня: “Отступали к поезду с жестокими боями” - отбивались сначала от моих родителей по вопросам хавки и приготовления экипировки, потом от Таниной мамы. Отступили без потерь :)

Фото дня

2007.07.17 11:14

Второй день вообще. Первый день в пути. На Угольной подсел парнишка, зовут Саня. Кипешной, ой кипешной. В Уссурийске в нашем закутке подсела девушка - Ольга, едет как и мы до Москвы (дальше до Брянска - домой). Все пока никаких интересностей больше не происходило. Вагон постепенно начинает заполняться пассажирами.

23:02 / 16:02

В Хабаровске поезд заполнился почти полностью. Теперь и наш закуток в полном комплекте - все 6 пассажиров. Кроме того началась жара, которая стоит до сих пор хотя и значительно спала с приездом в Облучье где мы стояли 15 минут под дождиком принимая его как живительный дар свыше, а попросту - душ. После отчаливания сидели гадали сканворды, немного почитал Танину книжку. Уже проехали несколько тоннелей разной длинны. Наблюдали интересную картину - вдоль дороги березы (в основной своей массе, редко когда какие другие деревья) согнуты в дугу. причем не поломаны. Наконец то собрался и переоделся - еду в шортах и отсвечиваю голым пузом. Хотел посмотреть на Бурею, да будет она в 17.54 по Москве или в 01.54 по Владивостоку. не судьба. в сортир и спать. сегодня спать буду хренова - жарко и душно.

2007.07.18 01:00 / 18:00

Сегодня день был довольно насыщенным. Началось с того что проспали почти до обеда немного перекусили и дальше спать. сам обед у нас состоялся где то в начале второго. Была большая остановка в Амозаре где мы купили молоко и Таню полюбила черная коза - фотографии получились милыми. там же поезд заправили водой. без боя сдали один туалет в вагоне - его судьба пока неизвестна. Пересекли один часовой пояс теперь у нас разница с Москвой 6 часов.

Практически весь день читал книжку “сто тысяч миль по морям и судьбам” - крайне интересное и познавательное чтиво, иногда прошибает даже слезу, хотя многие могут не понять отчего, да я и объяснять не стану. Вечер продолжился игрой в “дурака” выиграл т.е. не остался дураком только 1 раз - начинаю сомневаться в своих умственных способностях. дальше наш цикл разнообразила игра в шахматы сначала была партия с саньком - хоть мы оба и дилетанты играл он довольно и еще раз довольно, ему можно по идее развивать и далеко пойдет. потом была партия с Таней которую не закончили и решили продолжить завтра.

Еще одна новость дня у Анатолия - нашего соседа по закутку сегодня день рождения в честь чего выпили по стакану пива и подарил ему моток изоленты - больше все равно ничего не было но вещь и в хозяйстве пригодится и не подарить вообще ничего не мог. Он сам не русской национальности едет из Хабаровска где был на заработках в Питер к своему брату который упал на стройке и чудом остался жив. пожелали всего самого лучшего.

А совсем забыл. еще вчера долго беседовали с Таней о наших отношениях - правильный разговор получился и вообще такие разговоры правильные. Кроме того спал вопреки ожиданиям как убитый - у утру ацкая жара спала, за окном почти всю дорогу сегодня шел дождь в вагоне прохладно и приятно. некоторые соседи из закутков рядом поменялись наш пока в неизменном составе.

Фото дня

и

2007.07.20 02:48 / 19:48

Проснулись рано, была станция ничего путного не было. Где то в районе с 12:30 до 13:04 по московскому были в Улан-Уде - купили пакет пряников и пару банок сгущенного молока, долго искали какую нить рыбку типа нашего приморского желтого полосатика - еле нашли и тогда только я осознал КАК ДАЛЕКО МЫ ОТ МОРЯ! в районе 13:33 проезжали реку Селенга что впадает в оз. Байкал наделал снимков. красиво. в 15:20 доехали до Байкала - сделал много фотографий. опять красиво - особенно фото заката.

Ночевали хорошо, было прохладно - под утро даже залез в спальник. днем вяло читал книжку и спал. Опять накатила жара, сейчас вроде спала и можно опять жить питание сегодня было 2х разовым - на этот раз отведали пюре картофельное с говяжьей печенью, разнообразили так сказать наш рацион из лапши и консервов. Играли в карты в 6 человек, в дурака - сегодня мне больше повезло, остался только 1 раз. еще позже играли с армянами что едут в нашем вагоне в домино - интересно, особенно от того что не гнушаются учить как правильно играть. Так и не закончили партию с Таней.

Купили омуля холодного копчения - я на всяк пожарный решил не кушать, дабы что бы в нашей двойке был в случае чего хоть один в состоянии ходить. Ну и еще - фотографировал очень много в основном Байкал. Минут через 10 приедем в Иркутск. Середина России однака. Завтра (точнее уже сегодня, но пока живу по трем временам сразу - приморскому московскому и местному) пятница, вечерком наверное куплю пивка бутылочку может даже позвоню кому нить на суханку часов в 7 вечера по приморскому. Кстати пересекли еще один часовой пояс. теперь разница с Москвой 5 часов. с родным домом - 2 часа. Немного начинаю теряться во времени и днях недели. На фразу “у вас есть мыло” отреагировали - “есть жидкое”. а просили то e-mail. Как далеко от компа. в Улан-Уде сокрушался что пришвартовались не к тому пирсу. это диагноз - сто тысяч миль делают свое дело.

2007.07.20 11:12 / 04:12

Таки доехали до Иркутска, долго искали где сфотографироваться на фоне вокзала и надписи Иркутск. нашли. купил 2х1.5 литровые бутылки байкальской воды. Ночью в Иркутске было +12 градусов - прикольно - моя температура.

Устроили с Таней банно-прачечный день - помыли голову, мокрым полотенцем обтерся сам полностью, вроде легче стало. А утром опять началась жара по тихому умирал. Где то в районе 5:55 по Московскому проехали полустанок “4677 км” делаю вывод что именно столько осталось до Москвы.

в 15:40 по Москве проехали через Енисей, наделал фотографий. в 15:42 были уже в Красноярске, стоянку сократили до 15 минут, быстро сбегали до вокзала, сфотографировались. Хотел позвонить на суханку - проперся со временем, хотел купить пару бутылочек пива - не нашел. Еще жара. Вечером прилег отдохнуть и переждать жаркое время, жаркое время переждал вот только видать перегрелся вообще. было плохо, разболелась голова. Сходил в туалет опять обтерся мокрым полотенцем, достал бондану и напялил мокрую на голову. Значительно полегчало. Все дальше лег отсыпаться. Вот уже утро и мы подъезжаем к Новосибирску.

Преодолели еще один часовой пояс. Теперь разница с Москвой 4 часа с Владивостоком - 3 часа.

2007.07.21 19:09 / 12:09

Доехали до Новосибирска, где-то в 5:10 из него выехали и через несколько минут пересекли Обь. Проехали Омск, где-то в 13:37 пересекли Иртыш. Задержка в пути около 30 минут. После Омска стояли около двух часов на перегоне - по разным версиям: нет питания и оборвался питающий провод. Задержка около 2-2.5 часов. Поезд несется как бешеный, до этого подобную скорость развивали разве что на ночных перегонах. Вечером повздорили с Таней. Утром после обоюдных ворчаний помирились. Ночью проехали Тюмень, сошел Саня, этот засланец даже не разбудил.

Рано утром был Свердловск он же Екатеринбург он же просто Е-Бург. Ссадили Катю. В районе 11:23 была остановка в Перми, ссадили Наташу - мы теряем бойцов. За Пермью почти сразу пересекли р. Каму опять таки есть фотографии. К сожалению не фотографировали Тюмень и Ебург, а в Перми и фотографировать было особенно нечего. Перед Пермью (где-то через 4-5 часов после Ебурга) ссадили еще одного человека из нашего закутка - Алина (пожилая женщина, добрая и довольно интересная в смысле общения). В Ебурге сели ребята в камуфляже, судя по книжке одного из них (видать старшего) - “Учебник сержанта” какой-то военизированный летний лагерь. Разница с Москвой уже 2 часа с Родиной - 5 часов. Фотографируем жука который откуда то взялся на моей коленке.

2007.07.29 01:51 (07.30) / 18:51

Вот собственно нашлось время для записей, точнее как нашлось, а больше делать нечего, но об этом дальше.

Последний вечер поездки (07.22) ознаменовался новыми знакомствами, познакомился со всеми ребятами что сели в Е-Бурге, как оказалось это скаутский отряд едут на отдых в лагерь, обменялся с телефоном с Андрюхой - одним из старших. У них оказались гитара, две флейты и балалайка.

В последнем вагоне оказалась еще одна гитара вот и получилось вечером такой импровизированный концерт. Играли в две гитары. Юрка, ВДВшник, контрактник играл репертуар Голубых беретов да и не только, вечером он достал настойку на дубовой коре - забористая вещь, а главное голова не болит на утро, ночью с поезда сошел - добрался до дому.

Утром 23 доехали до Москвы, за ночь нагнали опоздание в 2.5 часа - это как же мы неслись. Первым делом сгоняли в Макдоналдс перекусили - потратили много, я не наелся - фуфло, но пирожки с вишней это крайней степени зачет! :)

Мы в Москве:

Потом сходили в интернет кафе, почитал почту ответ от Дениса по поводу условий работы в Жапан каре, буду устраиваться.

Бегали по городу без вещей - оставили в камере хранения. В первый день хотели купить билеты на самолет, оказался в наличии только 1 билет на 4е августа на боинг, стоимостью 36 тысяч. Сделали вывод что Российские железные дороги наиболее дружественная к пользователю система.

На следующий день сгоняли на Ярославский вокзал, купить билеты домой, оказалось что билетов на прямые рейсы отсутствуют, купили купейные билеты на поезд до Хабаровска и сразу пересадку на поезд с общими местами из Хабаровска до Владивостока. Правда до пересадки получается около 11 часов, но да ладно в Хабе есть тоже свои знакомые. Когда покупали билеты до Хабаровска, сказали что билет с дополнительными услугами, на вопрос что это за дополнительные услуги сказали, что это белье и кормить будут раз в день, наша реакция с Таней была: “Вааааууууу!”. Ну еще сформировал такую мысль: “иногда нам нужно экономить деньги, а иногда время”. Это к вопросу что на самолет билет стоит дороже, но добираемся значительно быстрее, на поезде же наоборот (точнее мысль была сформирована значительно позже, на обратной дороге из Питера, но сути это не меняет, почему она была сформирована тогда, опять таки ниже). На обратной дороге мы сэкономили 10 тыс.

24 числа, после покупки билетов часов в 6 вечера были уже у Паши (Танин друг в Москве, к которому после мы еще на свадьбу попали), собрали рюкзаки и в районе 9 вечера начали свое движение в сторону Питера, началось с того что Паша на машине довез нас до электрички, изначальная идея была ехать “на собаках”, т.е. на электричках с пересадками. Через два часа на электричке были в Твери, картина: 12 часов ночи, электричек больше нет, незнакомый город, перрон, осмотревшись видим паровоз, думаем: “пойдем хоть у паровоза сфотографируемся”, что и сделали.

Дальше выбрались с путей в город, куда идти, что делать - черт его знает, начинаю включать мозг, вспоминать карту из атласа дорого, вспоминаю что город старый, стоит на Волге, на карте был обозначен речной порт, относительно железной дороги он находится на севере, выбрали самую хорошо освещенную дорогу, посмотрели что она идет на север и двинулись туда, прикидывая что впринципе из речного порта могут выезжать фуры и на ней можно по крайней мере выехать из города. Еще нам известно что раньше город был транзитным на трассе Москва-Питер, в данный момент есть объездная дорога и выезд из города на Питер находится на западе, короче, когда дошло до большого перекрестка который двигался на запад решили что по нему можем выйти из города на гос-трассу. Уточнили у охранника какого-то ночного магазина - оказывается мы были правы, аллилуя :) Пока шли слушали музыку в плеерах, рядом притормозила газель, сначала подумали что по каким то своим делам, двигались не останавливаясь, он опять догнал и притормозил рядом с нами, я и говорю Тане, мол вроде он что-то хочет, остановились, водитель спросил куда путь держим и предложил подбросить до пит-стопа на выезде из Твери, сам он оказался бывшим дальнобойщиком, и просто понял что два человека с рюкзаками вдоль дороги никем другим кроме как стопщиками быть не могут. потому и подбросил. Зовут кстати так же как и меня, теска.

На выезде из Твери сфотографировались у знака и потопали стопить - шел очень плотный поток фур - просто рай какой-то.

Застопил первую в своей жизни фуру, водитель, Анатолий, на вопрос “в Питер?” просто махнул рукой, мол залазьте.

Так ехали и болтали всю ночь до самого Питера, в сам город он разгружаться ехал в первый раз, там мы ему помогли как штурмана работая с картами - этакий симбиоз, он нам тоже сказал: “ребята, если бы не вы, плюнул на все и спать бы лег”. А так прибыли на разгрузку, а там оказывается его вообще в этот день не ждали сказали что попробуют премию за скорость пробить, в общем зарекомендовал он себя. Кстати на всю дорогу до Питера ушло 9-10 часов с учетом электрички. а это быстрее чем на поезде, притом что скоростной режим мы не нарушали. В результате: приехали быстрее чем на поезде, потратили 0 рублей 0 коп на дорогу.

В самом Питере решили добраться с Анатолием до конца, заодно посмотреть весь цикл работы. так что еще часа 4 на это ушло, проехались по питерской кольцевой автодороге, этакая экскурсия получилась по пром-зоне, своеобразный подход, но не менее интересный.

Электростанция:

Новые мосты через Неву:

Сели на метро, доехали до Финляндского вокзала, там сходили в кафешку в которой было все дорого и был дрянной кофе на хорошей кофе-машине - экономят гады. Когда въезжали в город отправил СМС папе, поздравил с днем рождения - юбилей 50 лет. Это уже 25 число значит началось… В кафешке позвонил домой спросил как там, дошла ли смс, сообщил что уже в Питере.

После добрались на электричке до Грузино, пересели на 614 автобус и часов в 5 вечера были уже в Володи. Эх… последний раз там я был больше чем 10 лет назад. Впервые увидел своего двоюродного братика которого до этого видел в состоянии “в животе у мамы”, а уже в 4й класс пошел, Полинка поступает в универ, пожелал ей удачи. Юля нас накормила, решили поспать часика 3 пока Володя не вернется с работы, куда там, почти двое суток без сна, и проснулись мы только утром.

Немного перекроили планы, решили вторую ночь ночевать там же. Утром сходили в сад пофотографировались, сходили на карьер, пособирал чернику по методу “с куста в рот”.

Рай…

на 3 с копейками поехали в город, на все про все в Питере у нас было 2 часа ну да ладно, пофоторграфировали, до брались до Александро-невской лавры, сфотографировались около Невы, впринципе программу-минимум выполнили, отправились обратно, вечером посидели, поболтали, сфотографировал всех. Вот.

Полинка после окончания школы переехала жить к отцу, правильно, молодец.

Это было 26 числа. Утром 27го поехали в обратный путь с учетом что в Грузино.

хотел зайти к деду на могилку. Оставили Таню с рюкзаками на станции сами пошли с Юлей и Ильей до могилки, сделал там пару кадров, постоял помолчал.

Ну все, теперь в обратный путь. Добираться решили “на собаках”, как после выяснилось, зря потратили время, хотя и получили свои впечатления и побывали там где в обычных условиях врядли бы побывали. На электричке добрались до Девяткино где пересели на метро, добрались до Московского вокзала и сели на электричку до Чудово, за нами в 30 минутах шла электричка до Малой Вишеры, в Чудово её дождались и доехали до М.Вишеры.

там посмотрели на печальное время прибытия ближайшей электрички и решили взять билет на поезд и доехать до Бологое, так и сделали. А вот Бологое еще той дырой оказалось, посидели около одноименного озера и попали до выхода из города, а до трассы 15 км…

В общем постояли минут 30-40 и застопили газель, всего потребовалось около 1.5 часов что бы выбраться из Бологое. Добрались и за минут 30 застопили фуру, водитель Роман, которая ехали из Финляндии, ехали болтали, после Твери заехали в забегаловку где готовят вкусную запеканку, Роман угостил нас финским амаретто. когда приехали в Москву и двигались по МКАДу Рома провел такую мини-экскурсию, рассказывая про разные достопримечательности, по дороге увидел заправку на которой было написано - “Пропан”, оказывается что почти все газели-маршрутки ездят на газе, удивлен. Прибыв до станции выгрузки встали, она открывается в 9 прибыли туда в 5 утра. Роман опять угостил нас, на этот раз, финским пивом - вкусное с горчинкой.

Посидели сделали чай.

Кадр дня:

Таня прикорнула на спальном месте. в 7 утра разбудил её попросил что бы позвонила Паше, узнала что и куда - у него в этот день свадьба.

Это уже 28 число. Когда расставались с Ромой, он отлил нам где-то около полу-литра амаретто, сейчас везем с собой. Добрались до Паши, по дороге купив цветы, они уже выкупились и ждали машины, мы быстро переоделись и вышли к ним. Загрузились в лимузин, поехали в ЗАГС. забыли фотоаппарат.

Зарегистрировали их, покатались, познакомился с Карданом, оставил свой телефон. Напились шампанским как последние дегенераты, ну или панки :) попросили ключи и отправились домой собираться, там я отрубился не знаю на сколько, разбудила Таня, пошел помылся, голова болиииииит. Собрались, посмотрели что есть время, и решили поглядеть кино “Крепкий орешек 4”, ничего там кино, но явно слабее предыдущих, хотя есть зачетные моменты.

Добрались до вокзала. Там дождались поезда где-то в 23:40 его подали, сели. На верхних шконках было белье, сказал Тане что бы залазила туда спать, а то была вообще никакая. Началось движение, проводница проверила билеты и выдала белье. Тоже лег спать, итого у нас в купе 4 человека, из них постоянно только 3е: мы с Таней и женщина пожилых лет - Валентина. Впереди 6 дней до Хабаровска, пока восстанавливаю события прошедших дней. Сегодня вот проехали Киров, едем со смещением во времени, т.е. те города что проезжали ночью теперь проезжаем днем это очень хорошо. Все, на сегодня достаточно, итак засадил ноут почти на половину.

UPD 2008.11.06

По памяти попытаюсь восстановить оставшуюся картинку.

Дорога в купейном вагоне не сильно впечатлила, 30 июля проехали Киров.

31го проехали Омск и город со славным название Тайга.

1го августа, в первый день последнего месяца лета были в Иркутске, фото дня:

2го проезжали вдоль реки Шилка, да-да, той самой в честь которой была названа знаменитая ЗСУ “Шилка” ;). Фото дня:

3-4го ничем примечательным не ознаменовались, проехали Белогорск

Ну почти конец нашего путешествия… 5го числа прибыли в славный город Хабаровск. Уезжать из него мы должны вечером в общем вагоне, а теперь времени куча куча куча. Забросили рюкзаки к знакомой Тани и поехали гулять по городу, сразу удивило - нет сопок =-)

Сходили в кино, на набережную, полюбовались на грязно-коричневый амур, на набережной таблички - не купаться! Ну купаться, мы бы и сами туда не полезли…

День постепенно приблизился к концу, приблизилось и время посадки на поезд. Сели…

Да, теперь я точно знаю одно: Я БОЛЬШЕ НИКОГДА НЕ ПОЕДУ В ОБЩЕМ ВАГОНЕ! Народ сидит чуть ли не друг друга на головах, душно, кто-то бухает. Ну и тут появился плюс: в поезде ехали два поляка, познакомились, разговорились, узнали что они решили, как выйдут на пенсию, проехаться по трансибу, попутно посещая всякие разные города и достопримечательности. Рассказали бегло где стоит побывать во Владивостоке…

6го числа под утро я сошел с вагона на станции Угольная… Всё, конец, и как-то грустно.

Oct 28, 2008 - 1 minute read - Comments -

Кластер MySQL

Очередное что потребовалось по работе, настройка и обслуживание MySQL кластера (NDB).

Кластерное решение на базе MySQL является отказоустойчивым, избыточным и масштабируемым решением для баз данных, основанным на открытых исходных текстах. Использование такой схемы позволяет достигнуть надежности в 99.999 %. В этой статье мы опишем процесс установки, настройки и тестирования кластера MySQL, состоящего из трех узлов.

Статья: http://www.linuxcenter.ru/lib/articles/soft/mysql_cluster.phtml

Oct 27, 2008 - 1 minute read - Comments -

Solaris: SMF

В ОС Solaris 10 появилась новая подсистема управления сервисами - System Management Facility (SMF). Так как все сервисы, описываемые тут, идентичны с точки зрения SMF, то в этом документе рассмотрен пример реализации управления запуском одного сервиса на примере сервера MySQL и описан минимум команд для управления сервисом.

Статья тут: http://www.linuxcenter.ru/lib/articles/system/solaris_smf.phtml

От себя замечу, что система близка к daemontools, но, наверное, более навороченная. Ну а использование XML конечно да…

Oct 26, 2008 - 4 minute read - Comments - туризм

Поход на хр.Большой Воробей

Ну вот, сходили таки на пару деньков в горы. Довольный как черт :)

Ходили я, Серега и Женя (Бертолет).

Изначально маршрут планировался: высадиться на ст.74 км, дальше по дороге пройтись через деревню, некоторое время идти по ней, потом свернуть на хребтик, подняться по нему до Туманной, перейти на метеостанцию и двигаться дальше по хребту, выбрать место для ночлега, переночевать, подняться, спуститься в районе г.Суходол и выйти в Лукьяновку.

Но погода немного скорректировала планы… В итоге маршрут получился таким:

Oct 24, 2008 - 3 minute read - Comments - туризм maps

Картографические приложения, а так же визуализация

Вообще, на данный момент, краткий обзор одного и ссылки на тему.

QLandkarteGT

Программа для работы с GPS. Позволяет скачивать треки с навигаторов Garmin, скачивать и заливать путевые точки.

Сайт программы: www.qlandkarte.org

Ну что самое главное, и что мне в первую очередь оказалось необходимым - он может привязывать карты! Используется для этих целей библиотека GDAL, которая позволяет создавать, так называемые GeoTiff - TIFF файлы с параметрами привязки. Для преобразования систем координат используется PROJ.

В стандартных репозитариях ArchLinux программы нет. Но есть в AUR. В распоряжении два варианта: * qlandkartegt * qlandkartegt-svn

какой выбрать - решать вам. Сборка svn версии у меня прошла без сучка и задоринки. Чего и вам желаю :)

Небольшое замечание по поводу привязок, нужно как минимум 3 точки привязки. Координаты вводятся в виде “N43 20.000 E132 30.000”, где N/S - северная/южная широта, E/W - восточная/западная долгота, 43 и 132 - градусы, 20.000 и 30.000 - минуты и тысячные минуты.

Ещё не забыть указать проекцию, для наших карт почти поголовно Пулково 1942. В строке Projection щелкнуть по кнопке с “волшебной палочкой” выбрать * Projection: Mercator * Datum: Pulkovo_1942

Если где неточности - подправьте.

После привязки карту можно сохранить в формате GeoTiff. Да… перед привязкой карту нужно перегнать в 8-bit цвет или оттенки серого. Форма PNG или TIFF. Я перегонял в серый цвет при помощи ImageMagick:

convert -colorspace Gray in.jpg out.tiff

На сайте программы стоит обратить на раздел MAPS, где объясняется, где брать карты. Если кратко:

“Для работы с программой вам нужны карты. В общем случае вы можете их купить. Свободные цифровые растровые карты редкость. Коммерческие же облагаются жесткими ограничениями и имею закрытые форматы…”

Итак, что предлагают разработчики: * отсканировать карту и привязать её - программа позволяет это сделать (уже выше писал) * для использования 3D объектов и видов нужны данные о высотах, и ссылка на коллекцию таких данных: http://www.viewfinderpanoramas.org/dem3.html * Ага, ещё один источник: карты для OziExplorer. Тут скрипт для их конвертации в GeoTiff: http://sourceforge.net/projects/ozi2geotiff PKGBUILD’а для ArchLinux нету, но у меня пока и потребности конвертировать так же нет :) Как я заметил, архивов для скачивания нет, скрипт есть только в SVN:svn co https://ozi2geotiff.svn.sourceforge.net/svnroot/ozi2geotiff ozi2geotiff * Одним из источником карт назван проект http://www.openstreetmap.org.

Ссылки по теме:

  • OpenEV - программа анализа и просмотра растровых и векторных геоданных (фотоснимки, спутниковые снимки и т.п.)
  • mapview - просмотр карт с terraserver
  • GRASS/Qt - интерфейс на Qt для GIS GRASS
  • XRMAP, альтернативный сайт - The Xrmap program provides a user-friendly X client for generating images of the Earth and manipulating the CIA World data bank II global vector information (a huge geodata set of about 45 MB).
  • CVLView - отображение данных, сохраненных в pfs-файлах. PFSTools может быть интегрирована с Octave и Mathlab.

Oct 21, 2008 - 2 minute read - Comments - linux

Автоподключение PPPoE. Переподключение при разрыве.

Запостил как ответ на форуме русского сообщества ArchLinux: http://archlinux.org.ru/forum/viewtopic.php?f=8&t=922&p=6580#p6580

Сохраню и для себя :)

Итак, стоят пакеты rp-pppoe и ppp. Дальше.

С переподключением при обрыве, имхо, только завести pppoe через daemontools:

http://aur.archlinux.org/packages.php?ID=16966

ну дальше читать документацию как добавлять сервисы. Если кратко, для ‘pppoe’, то так: * создаём директорию /etc/ppp-internet * создаём файл /etc/ppp-internet/run с следующим содержимым: ```bash #!/bin/bash

тут укажи сетевую которая у тебя подключена

ifconfig eth0 up

nodetach - обязательно. за подробностями в документацию.

exec pppd nodetach call dsl-provider

  * делаем его исполняемым: chmod +x /etc/ppp-internet/run

Потом создай этот самый dsl-provider, файл /etc/ppp/peers/dsl-provider с примерно следующим содержимым:

plugin rp-pppoe.so

network interface

eth0

login name

name “pppoe-login”

use assigned DNS

usepeerdns

add default route to connection

defaultroute hide-password noauth

create interface with name ppp999 (in my case others users from LAN have access to Internet via VPN for accounting purposes)

unit 999 ```

В конфиге никоим образом не должно быть опции “persist”. Логин/пароль должны быть прописаны в /etc/pap-secrets или /etc/chap-secrets

ну и последний пасс:

ln -s /etc/ppp-internet /service/

управлять процессами daemontools можно при помощи команды svc

UPD:

Ссылки по теме: * PPPoe Setup with pppd * PPPoe Setup with pppd на Русском * Использование runit для своих сервисов