Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

среда, 1 июля 2009 г.

SubVersions

Поднял сервер:
Slackware + Apache 2.0 + PHP 5.0.1 + MySQL 4.12 + PHPMyAdmin + SubVersions 1.5.4.
Возни было много. Куча пересборок, перенастроек...

Тут - краткая инфа по установке и началу работы с SVN.
Инсталлировалось с дистрибутивом SlackWare.
Для его работы через http нужно пересобрать Apache c ключами:
--enable-dav --enable-dav-fs --enable-dav-lock


mkdir /usr/local/www/svnrep
svnadmin create /usr/local/www/svnrep/project
chown -R www:www /usr/local/www/svnrep

Добавляем пароли и пользователей:
htpasswd /usr/local/etc/svn.passwd <username>


Вносим в настройку Apache соответствующий блок

<Location>
DAV svn
SVNParentPath /usr/local/www/svnrep
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/etc/svn.passwd
Require valid-user
</Location>


Перезапускаем Apache (aka httpd)
Создание нового проекта:

svn co http://server.net/svn/project/ <project>


Вот тут есть бесплатная книга по SVN.

вторник, 23 июня 2009 г.

Запасной/дублирующий DHCP-сервер

Поистине, безгранично число опций настройки DHCP-сервера ISC - dhcpd. Сколько не копаю интернет, нахожу все новые и новые опции конфигурации.
Очередная опция - для поднятия дублирующего (запасного DHCP-сервера).

min-secs <количество секунд (запросов клиента), после которого сервер отзовется>

Эта опция позволяет в сети поднять сервер, который будет отзываться после определенного количества запросов клиента - когда основной сервер не отозвался. У себя я поставил эту опцию в 3 секунды. В примере в man dhcpd указывается число 2.

вторник, 12 мая 2009 г.

Выход в инет через трех провайдеров

Краткая инструкция по подключению сети к интернет через трех провайдеров.

среда, 29 апреля 2009 г.

Форвард RDP-трафика внутри сети

Понадобилось пересылать трафик с одного роутера на другой. Оба роутера в одной подсети. Но RDP-трафик идет только через один из них по определенному каналу. Сработали следующие настройки:

#!/bin/bash

ip=/sbin/ip
iptables=/usr/sbin/iptables
devLOCAL=eth0


$iptables -t mangle -I PREROUTING -p tcp --dport 3389 -j MARK --set-mark 0xAB
echo 202 rdp.tbl >> /etc/iproute2/rt_tables
$ip rule add fwmark 0xAB table rdp.tbl
$ip route add 127.0.0.0/8 dev lo table rdp.tbl
$ip route add 192.168.0.0/24 dev $devLOCAL table rdp.tbl
$ip route add default via 192.168.0.1 table rdp.tbl


То есть пакеты для порта 3389 маркируются меткой 0xAB. Для них создается таблица rdp.tbl, маршрут по умолчанию для которой установлен на роутер 192.168.0.1. На роутере 192.168.0.1 аналогичным образом построен форвард этих пакетов на определенный внешний канал.

понедельник, 27 апреля 2009 г.

Часто используемые команды Linux

Часто используемые команды Linux - справочник

среда, 15 апреля 2009 г.

Linux. Восстановление данных

На Хабре - небольшая заметка про восстановление удаленных файлов под Linux. В комментариях дают еще несколько советов.

Ключевые тезисы:
1. scalpel
2. photorec
3. ext3grep
4. testdisk
5. magicrescue

Несколько заметок

Несколько заметок, взятых из блога GuruAdmin:

1. 10 наиболее часто используемых команд:
Как вы знаете, когда вы вводите любую команду в терминале, она сохраняется в истории. Поэтому, вы можете посмотреть списко самых часто используемых команд следующей конструкцией:

history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr

Вы увидите примерно следующий результат:
430 cd
255 ls
142 sudo
16 less
50 apt-cache
14 rm
13 chmod
12 vim
12 history
12 grep

2. 4 способа определить кто залогинен в Linux
1. w - список пользователей и их процессов
2. who - список пользователей и их адресов
3. whoami - мой логин
4. last - история логинов пользователей.

среда, 8 апреля 2009 г.

Linux. Диалоговые окна из консоли

Наткнулся на командочку zenity, которая позволяет построить диалоговое окно и передать выбранные в нем параметры по конвееру. Например:
zenity --list --title "VNC, servers list" --text "VNC, servers list" --column "Server names" server1 server2 server3 server4 server5 | xargs -r -l vncviewer.

пятница, 27 марта 2009 г.

Удалить все файлы, кроме N самых свежих

Коротенькая строчка для очистки директории от старых файлов, оставляя только указанное количество самых свежих:


ls -rtpA --format=single-column | grep -v \/ | head -n -4 | while read var; do rm "$var"; done


Здесь 4 - количество оставляемых файлов. Директории и резервные копии файлов (~) игнорируются. В том числе обрабатываются файлы с пробелами в именах. Естественно, желательно в ls добавить рабочую директорию.

четверг, 26 марта 2009 г.

Swatch. Установка из исходников

Утилита Swatch (точнее, перловый скрипт) используется для наблюдением за лог-файлами формата syslog. После запуска он наблюдает за указанным лог-файлом и примеряет на него указанные регулярки. При совпадении swatch выполняет указанные действия.

Инсталляция:

  1. Скачиваем исходники.
  2. Распаковываем.
  3. Выполняем последовательность:
    perl Makefile.PL. Этот скрипт проверяет наличие в системе необходимых для программы модулей перла. Если какой-то из них не найден, выводится что-то типа
    Warning: prerequisite Date::Calc 0 not found at (eval 1) line 219. В этом случае необходимо выполнить команду  
    perl -MCPAN -e "install Date::Calc"
    (указав соответствующий модуль) для установки недостающего модуля.
    make
    make test
    make install
    make realclean
  4. Создаем файл /etc/swatch/messages.conf, из которого swatch будет брать регулярные выражения и команды для выполнения. Примерный формат таков:

    watchfor /SPAMMER/
    mail addresses=user\@domain:user\@domain,subject=Here\ is\ NewSpammer

    watchfor /sshd.accepted/
    mail addresses=user\@domain:user\@domain,subject=server\ user\ logged

  5. Добавляем строку запуска при старте системы в, например, /etc/rc.d/rc.local. Строка примерно такого вида:

    /usr/bin/swatch -c /etc/swatch/messages.conf -t /var/log/messages --daemon --pid-file /var/run/swatch.pid --script-dir /var/

среда, 25 марта 2009 г.

*nix. Внешний вид командной строки

Сменить внешний вид командной строки можно установкой переменной окружения prompt:
set prompt = "`id -un`@`hostname`:(`pwd`)#"

, например

Sendmail. Отправка почты через внешний SMTP-сервер

Для отправки всей почты через внешний SMTP-сервер нужно прописать:
в sendmail.cf: DSesmtp:[relay.somehost.ru]

Для отправки через резервны SMTP (в случае ошибки отправки штатным путем)
define(`SMART_HOST',`relay.somehost.ru')dnl

FEATURE(`mailertable', `hash /etc/mail/mailertable')dnl
/etc/mail/mailertable
domain1 esmtp:relay1.somehost.ru
domain2 smtp:[relay2.somehost.ru]

пятница, 20 марта 2009 г.

Проверка свободного места на FTP-сервере

Один из наших хостеров предоставляет место под резервные копии сервера на своем локальном FTP-сервере. В корне фтп-директории нашей учетки лежит файл quota.txt,в котором записаны занятый объем и доступный объем на сервере. Написал небольшой скриптец, который будучи запускаем по крону проверяет свободное место и отсылает сообщение в случае его недостаточности:




# //** 2009-03-20 17-19-21 Rett Pop [+]:
FTPPATH="ftp://user:pass@ftpserver:/quota.txt"
OUTFILE="/tmp/quota.txt"
WGET=/usr/local/bin/wget
AWK=/usr/bin/awk
GREP=/usr/bin/grep
CAT=/bin/cat
MAILER=/usr/bin/mail
MIN_MB=1000000 #in kilobytes
mailto="admin's email"
SRV_NAME="our server name"

#First downloads quota file
echo $WGET -O $OUTFILE $FTPPATH
if $WGET -O $OUTFILE $FTPPATH
then
DISK_AVAIL=`$CAT $OUTFILE | $AWK '{print $2-$1}'`
if [ $DISK_AVAIL -lt $MIN_MB ];then
echo "$SRV_NAME. Please clean up $SRV_NAME - $DISK_AVAIL KBytes left" > $MAILFILE
$CAT $MAILFILE | $MAILER -s "$SRV_NAME. Please clean up - $DISK_AVAIL KBytes left" $mailto
fi
else
#Sends alert about quotas file retrieve
echo $MAILER -s "$SRV_NAME. Error getting quotas file" $mailto
echo "$SRV_NAME. Error getting quotas file" | $MAILER -s "$SRV_NAME. Error getting quotas file" $mailto
fi

# Removes quotas file for actual information
rm $OUTFILE

среда, 18 марта 2009 г.

Ubuntu 8.10. Пропал звук

После обновления системы Ubuntu пропал звук.Один из вариантов описан здесь:

  1. Остановить сервер pulseaudio.
  2. Запустить/перезапустить сервер Alsa.
  3. В Система/Настройки/Звук устройствами поставитьсоответствующие интерфейсы от Alsa.

вторник, 17 марта 2009 г.

Linux. Flip-Flop - смена MAC-адресов у сетевых интерфейсов

Настроил в сети отслеживание соответствия IP-адресов MAC-адресам посредством Slackware Linux и ARPWatch. Начали сыпаться сообщения о смене MAC-адреса одним из сетевых интерфейсов машины под Linux-ом. Выяснил, что:

  1. Оба инрефеса включены в одну сеть.
  2. При опросе IP-адресов в сети Linux отсылает отвечает от той сетевой карты, которая первая получила этот запрос. То есть система видит, что IP относится к ней, и отвечает с того интерфейса, на который был принят пакет проверки.
  3. ARPWatch репортует о смене MAC-адреса таким-то IP-адресом.

Отключается это поднятием флага arp_filet в /proc/sys/net/ip4v/conf/<соотв. интерфейс>.

понедельник, 16 марта 2009 г.

Arpwatch. Slackware. Сборка из исходников

Скачал с оффсайта исходники ArpWatch (утилита контроля за соответствием MAC-адресов IP-адресам в сети). Сборка и инсталляция прошли нормально. Но упоминаемые в сети ключи -s (отправка почты на указанные e-mail вместо root-а), -u (испльзование привилегий указанного пользователя вместо root-а) и еще несколькие в программе отсутствуют. На Sysadmins.SU Подсказали место, где лежат патчи, которые добавляют эти функции в программы.

Финальная строка запуска получилась такая:
arpwatch -i eth3 -n 192.168.0.0/24 -n 192.168.2.0/24 -e &

Пока только не разобрался куда же записываются логи программы...

воскресенье, 8 февраля 2009 г.

Terminal Server via Linux

Здесь - Небольшая ветка по поводу терминального сервера под Linux

среда, 21 января 2009 г.

Ubuntu + HDD на ноуте

С OpenNET:

В 2007 году было опубликовано сообщение о повышенном износе жестких дисков ноутбуков, работающих под управлением Ubuntu Linux. Проблема вызвана излишне частым перевод жесткого диска в спящий режим, по умолчанию применяющийся в Ubuntu при работе ноутбука от батареи при активном "ENABLE_LAPTOP_MODE" режиме в /etc/default/acpi-support или /etc/default/laptop-mode, что значительно сокращает срок службы жесткого диска. 

Несмотря на многочисленные жалобы в скрипте /etc/acpi/power.sh по прежнему присутствует вызов "$HDPARM -B 1" (1 - самый агрессивный режим экономии энергии, для выключения засыпания рекомендуется установить 255, но при возвращении ноутбука из спящего режима значение уровня APM все равно автоматически устанавливается в 128). При текущих установках, за 100 часов работы с ноутбуком жесткий диск переводился в спящий режим 7000 раз (ресурс диска - 600000), т.е. почти раз в минуту. 

Несколько дней назад в тестовый репозиторий 'proposed' для выпусков 9.04, 8.10 и 8.04 помещена исправленная версия пакета acpi-support, в случае одобрения исправления будут интегрированы в основной дистрибутив. 

Оценить число выключений диска можно установив пакет smartmontools и выполнив команду "smartctl -d ata -a /dev/sda| grep Load_Cycle_Count". Для проверки активности агрессивного засыпания диска нужно выполнить: hdparm -I /dev/sda| grep 'Advanced power management level'.

пятница, 16 января 2009 г.

Однострочники

Исходник.

Мелкая дописка в файл меню midhight commander. проста как валенок, но обычно руки не доходят 


6 move to .bak
mv %f %f.bak

7 copy to .bak
cp -pr %f %f.bak

8 copy from .bak

cp -prf %f $(basename %f .bak)

scp: file(s) copying
ещё не могу не отметить scp
заметил что некоторые люди как то про ето не в курсе бывают как это ни странно)
перекачать файл с одной машины на другую просто (аутентификация по ключам ессно настроена) (под виндовсом ссш можно собрать cygwin'ом)
штука в том что можно как скачать так и закачать находясь при этом на 3ей машине):
Код
scp [user@sourcehost:]/path/to/sourcefile [user@desthost:]/path/to/destfile



ssh and socks
а ещё это чудо юдо можно зарулить через соксовый прокси

http://www.taiyo.co.jp/~gotoh/ssh/connect.c

- скачать
скомпилить как в нём указанно

в ssh_config пишем
Код
ProxyCommand /usr/local/bin/sconnect -5 -S proxy:port %h %p

далее пользуемся как обычно - прозрачно работает через проксю

Однострочники

Взято с Sysadmins.SU.

используя cинтаксис:
$ ssh user@host commandможно выполнить на удаленном хосте что угодно. несколько маленьких, но полезных примеров. все взяты из жизни. во всех случаях подразумевается аутентификация по ключам и наличие у юзера беспарольного sudo, либо соответствующих прав в ФС. 

1. мы не используем централизованное хранилище учеток. нужно добавить пользователя сразу на N серверов

Код

for HOST in `cat listofhost.txt`
do
ssh user@$HOST 'sudo pw useradd vasya'
done
где listofhost.txt - файл со списком хостов.

2. удаленный бэкап 

tar -cf - storage | ssh backup-server.domain.local dd of=/storage/backup/backup.tar

3. удаленное изменение конфигурационных файлов ( в данном случае - дописываем суффикс в search list resolv.conf):

Код
ssh server.domain.local "sudo perl -pi'.bak' -e 's/^(search\s+)(.+)$/\$1\$2 net.local/;' /etc/resolv.conf"