Friday, February 20, 2009

Pidgin migration pretty simple

Мигрировал со старого компа на новый и переносил настройки пиджина..
scp -r bigbro:.purple .
"Ё-моё, и всего-то!" - промелькнуло у меня в голове :)

P.s: bigbro прописан в .ssh/config, конечно же ;)

Tuesday, February 17, 2009

7z backup script

Скрипт для удобного бэкапирования

#!/bin/bash

ARCHNAME=server-shares
DIRS="/home/shares/work /home/shares/iso"
BACKUPDIR=/backups

NOW=`date +%d-%b`
/usr/bin/tar -cf - $DIRS | 7za a -si $BACKUPDIR/$ARCHNAME-$NOW.tar.7z


Потом кинуть куда-нибудь типа /etc/cron.monthly и радоваться :)

Thursday, February 12, 2009

Теория относительности на пальцах

45 минут как школьник - нереально длинный промежуток времени
45 минут как учитель - "Блин!! ВСЕГО 45???"

Tuesday, February 10, 2009

nice time

$ date -d@1234567890
Sat Feb 14 02:31:30 MSK 2009

В это время мы с другом играли в battle for wesnoth :) Славная была битва

nut apc smartups sc1000 com-usb и Zenwalk 5.2

Фух, задолбался его настраивать. По горячим следам пишу этот пост. Воткнул упсу, читал, гуглил.. И так далее. Краткая выжимка:

Втыкаем упсу, делаем lsusb, читаем вывод:
$ lsusb
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


Если повезёт, то /dev/ttyUSB0 (или не 0, смотря что уже втыкали) появится в вашей системе. Мне повезло меньше, зато поплясал с бубном. Во-первых, эта сука почему-то хоть и писала в dmesg про /dev/ttyUSB0 цеплялась на /dev/tts/USB0, чем обильно попарила мне мозг старым добрым "Not a typewriter", ныне "inapropriate ioctl for device". Когда же успешный порт был найден (почти чудом, кстати), мой конфиг ups.conf выглядел так:
[apc]
driver = apcsmart
port = /dev/tts/USB0
cable = "940-0272"
desc = "APC Back-UPS 1000SC"


940-0272 это кабель com-usb, который я и подключал к девайсу.

upsd больше не поддерживает Access Control List и вместо этого надо правильно указывать директиву LISTEN в файле upsd.conf:
LISTEN 127.0.0.1 3493


Другие параметры можно не трогать, разве что я MAXCONN выставил в 24 (просто убрав 10 из числа 1024)
важная строка в upsmon.conf:
MONITOR apc@localhost 1 monuser password master


Кстати, убедитесь, что в /usr/local/ups/etc/* у вас нет world readable документов, на всякий случай. И world writable тем более, ибо SHUTDOWNCMD в upsmon.conf может кто-то заменить на что-то неприятное и тогда всё, плакал сервак.

Далее, мне понадобилось накатать примерно такой /etc/rc.d/rc.nut (я почему-то не нашёл ничего подобного в тех краях, куда встал nut).

#!/bin/sh
# Start/stop/restart the ups nut daemon:

# made by cra on 10 feb 2009

nut_start() {
# start driver
/usr/local/ups/bin/drvctl start

# now start daemon
/usr/local/sbin/upsd
}

nut_stop() {
kill `cat /var/state/ups/upsd.pid`
/usr/local/ups/bin/drvctl stop
}

nut_restart() {
if [ -r /var/state/ups/upsd.pid ]; then
echo "Stopping daemon and driver, this might take a while"
nut_stop
else
echo "There does not appear to be a parent instance of upsd running."
exit 1
fi
sleep 2
nut_start
}

case "$1" in
'start')
nut_start
;;
'stop')
nut_stop
;;
'restart')
nut_restart
;;
*)
echo "usage $0 start|stop|restart"
esac

Всё, можно делать service start ups и смотреть вывод /usr/local/ups/bin/upsc apc@localhost

После этого можно настроить ремотную тулзу для мониторинга состояния упски, или можно настроить нагиос. Проверяем работоспособность плагина: $ /usr/local/nagios/libexec/check_ups -H localhost -u apc
UPS OK - Status=Online Utility=218.0V Batt=100.0% Load=11.7% |voltage=218000mV;;;0 battery=100%;;;0;100 load=11%;;;0;100


Чтобы это было в нагиосе, надо добавить в /usr/local/nagios/etc/objects/commands.cfg следующий кусочек:
define command{
command_name check_ups
command_line $USER1$/check_ups $ARG1$
}


в конфиге нагиоса на нужном сервере тогда будет что-то в духе check_ups!-H localhost -u apc -w 80 -c 10
Либо, если использовать один ups, то можно все параметры прописать сразу в комманде (или хотя бы стандартный нагиосовский -H $HOSTNAMEADDRESS$) и в конфиге писать просто check_ups. Теперь, как сказал коллега "если придёт письмо о варнинге, бежим за ключом от серверной".

UPD: Оппа.. Проверка показала, что это не работает - хотя локально /usr/local/nagios/libexec/check_ups -H localhost -u apc даёт варнинг, когда шнурок отключён, нагиос считает, что всё хорошо :( Это я неправильно настроил кусок нагиоса.

Monday, February 9, 2009

bash minitip

Раньше, когда я переходил в какую-то директорию и мне надо было потом назад, я использовал cd $OLDPWD, но оказалось, что всё намного проще и можно использовать просто "cd -". Мелочь, а приятно