Linux
Виртуализация
Стандарты
- RFC3164 Протокол BSD Syslog
Wheezy
- компиляция из исходников:
make mkdir ./complite make install checkinstall make uninstall
Как собрать бинарный deb пакет: подробное HowTo
Samba или работа в сети с Windows
- узнать имя компьютера:
# nmblookup -A 192.168.0.111 Looking up status of 192.168.0.230 BEGINER <20> - B <ACTIVE> MAC Address = 90-2B-34-41-EF-95
Удаленное управление пользователями в консоли:
ssh remotehost
ps -aux | grep bash
Получаешь примерно такую картину:
root 2043 0.0 0.7 4892 1644 tty1 S 00:24 0:00 -bash root 2441 0.0 0.0 4932 8 pts/1 S 00:31 0:00 /bin/bash root 2490 0.0 0.0 4932 4 pts/2 S 00:33 0:00 /bin/bash root 2497 0.0 0.0 4936 4 pts/3 S 00:33 0:00 /bin/bash root 2511 0.0 0.4 4936 1024 pts/4 S 00:35 0:00 /bin/bash root 7940 0.0 0.7 4936 1672 pts/5 S 05:09 0:00 -bash root 9275 0.0 0.7 4932 1664 pts/6 S 08:12 0:00 -bash root 12301 0.2 0.7 4932 1664 pts/7 S 21:44 0:00 -bash root 12377 0.0 0.2 3780 532 pts/7 S 21:46 0:00 grep bash
Теперь
kill -9 Nr.prozessa
Только смотри свой процесс не убей... :)
Как определить какая программа слушает порт?
netstat -nap|grep 8080
Запуск программ в фоне
top&
или
nohup top &
Команды Linux
Решение частых проблем
[1]http://www.opennet.ru/base/sys/bash_tips.txt.html
Потоковый редактор SED
[2]http://linuxgeeks.ru/sed.htm
Неплохая шпаргалка по командам Linux
Еще одна хорошая шпаргалка с примерами
Полезный портал с примерами
Запуск Xorg приложений из ssh
ssh -X user@host.ru имя программы например iceweasel
Автозапуск приложений из xorg
ставим icewm
в /etc/rc.local вставляем
su user -c "startx"
А в USER$/icewm/autostart пишешь свою программу (/bin/bash)
Linux low level format - LLFormat
Пример низкоуровнего форматирования носителя:
dd if=/dev/zero of=/dev/sdX
Снятие и Восстановление загрузочной области утилитой dd
команда снятия загрузочной области:
dd if=/dev/sda of=bootsect.bin bs=512 count=1
восстановление загрузчика:
dd of=/dev/sda if=bootsect.bin bs=512 count=1
Подавление всех сообщений в том числе и ошибок
$ ls >myfile.txt 2>myfile.err
или
$ ls 2>/dev/null
At или Выполнение, останов и повторный запуск процессов
Создаем сервер USB Over IP на базе Linux
Довольно долго мне приходилось сталкиваться с ситуацией, при которой мне нужно было продолжать использовать физический сервер, хотя почти вся инфраструктура виртуализирована. Причиной этому было отсутствие подддержки USB устройств в самых разнообразных платформах виртуализации. В частности я использую Xen, а на сервере, который я хотел бы виртуализировать должен быть подключен USB ключ.
Конечно можно использовать аппратное оборудование, например USBoverIP, однако оно стоит значительных денег. И вот наконец решение найдено. Я обнаружил отличный бесплатный проект , доступный по этому линку - http://usbip.sourcefrge.net/
С помощью него можно преврать Linux систему в USB сервер, обслуживающий USB девайсы через IP для клиентов как под управление Linux, так и Windows.
Настройки сервера
1- Скачайте последний пакет по ссылке http://downloads.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip?use_mirror=ignum
Я тестировал все под Ubuntu Karmic, поэтому мне необходимо было выполнить следующую команду:
usbip:~$ sudo aptitude install usbip
Затем необходимо загрузить следующие модули для возможности контролировать USB порты.
usbip:~$ sudo modprobe usbip usbip:~$ sudo modprobe usbip_common_mod
Теперь запустим usbip в качестве системного демона:
usbip:~$ usbipd -D Bind usbip.ko to a usb device to be exportable! usbip:~$
Это означает что все идет по плану и нам необходиом выбрать порт, который будет расшариваться.
1- Подключите USB устройство к компьютеру
2- Выполните команду
lsusb
Для поиска соответствующего индентификатора Vendor/Device ID, который имеет следующую форму:
Bus XXX Device YYY: ID VendorID:DeviceID Know that to find your favourite hardware ID, you can locate its possition on the BUS. Just match the ID with the result of usbip server check:
usbip:~$ sudo usbip_bind_driver --list busid 1-6 (0c45:63ee) 1-6:1.0 - > uvcvideo 1-6:1.1 - > uvcvideo
Из этой команды нам становиться известне bus-ID, указывающий на USB устройство. В данном случае это "1-6".
Теперь подключаем устройство к серверу:
usbip:~$ sudo usbip_bind_driver --usbip 1-6
После выполнения данной команды система будет передавать данные о USB устройстве с вашей системы удаленным клиентам.
Настройки клиентов
- Клиент MS Windows
Скачайте zip версию клиента по ссылке http://ignum.dl.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip
Распакуйте её и выполните два простых шага.
Первое:
В архиве есть файл "bus.inf", который вам необходимо установить как "Generic system device" в своей системе.
Второе:
Выполните следующую команду из командной строки:
path-to-usbip:> usbip.exe -l <server-ip>
В результате выполнения этой команды вы увидите bus-ID, найденные на сервере.
Теперь подключите устройство следующей командой:
path-to-usbip:> usbip.exe -a <server-ip> USB-ID ** USB-ID в нашем случае 1-6.
Все!!! Вы увидите новое USB устройство, обнаруженное вашей системой.
- Клиент Gnu/Linux
В качестве клиента я тестировал дистрибутив Ubuntu Karmic
Подобно настройке серверной части необходимо выполнить команду:
$ sudo apt-get install usbip
Загрузите модуль "vhci-hcd":
$ sudo modprobe vhci-hcd
Теперь вы можете опросить сервер на наличие расшаренных USB устройств:
$ sudo usbip -l <server-ip>
А потом и подключить нужное устройство следующей командой:
$ sudo usbip -a <server-ip> X-Y
Настройка dns сервера
устанавливаем необходимые пакеты:
apt-get install resolvconf
только после этого ставим bind9 во избежание конфликтов...
apt-get install bind9
теперь сразу прописываем необходимые настройки для правильной работы служб:
editor /etc/default/bind9
изменяем параметр на указанный ниже:
RESOLVCONF=yes
дальше изменяем параметр dhcpclient
editor /etc/dhcp/dhclient.conf
добавляем:
prepend domain-name-servers 127.0.0.1;
перезапускаем службы:
/etc/init.d/bind9 restart ifdown eth0 ifup eth0
для внутренней сети в настройках /etc/network/interfaces
пропишите dns-nameservers 127.0.0.1
пример:
auto eth0 iface eth0 inet static address 10.10.1.1 netmask 255.255.255.0 network 10.10.1.0 broadcast 10.10.1.255 dns-nameservers 127.0.0.1 dns-search home.local
Восстановление удаленных файлов на ext3/ext4
Команды проверки наличия сети
для всех сетевых карт:
ip link
или
mii-tool
опреление настроек сети:
ifconfig route
Утилиты контроля состояния трафика и не только для сервера
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).
top
Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.
atop
Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.
В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).
Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
htop
В отличие от atop, htop не собирает статистику и просто показывает текущее состояние. Второе яркое отличие — нортоноподобная панелька с подсказками кнопок снизу и возможность «навигации» по списку процессов.
Поддерживает выделение процессов и выполнения над ними групповых операций (впрочем, с форк бомбой им не справиться).
Общей статистике по системе показыват мало (зато с шкалой а-ля прогресс-бар), зато имеет обширнейшие инструменты для анализа процессов, включая баловство с скедулингом (приоритеты, affinity), просмотр списка открытых файлов, strace и массу мелких, но приятных фич, таких как контекстный поиск по имени процесса, режим «слежения» за процессом, быстрые операции с процессом и т.д.
iotop
Специализированная утилита для анализа потребления дисковой полосы. К сожалению, не показывает иопсы (это вообще возможно?) Благодаря показу kernel threads способен указать на kcopy/swapper/kflush как источник хруста винта (чего не может atop). Заодно показывает общую загруженность IO системы в Мб/с (чего так же не может atop). Довольно быстрый.
iftop
Опять же, специализированная утилита, позволяющая наблюдать за трафиком в реальном времени. Требует очень рутовых прав и pcap, т.к. работает почти аналогичо tcpdump'у. Показывает загруженность интерфейса (поддерживается только один интерфейс в одной копии), направления трафика и интенсивность трафика.
На средне-загруженном сервере, который внезапно начал жрать инет позволяет очень быстро найти направление, в которое идёт больше всего трафика (в любую сторону). К сожалению, не показывает распределение трафика по процессам.
powertop
Специализированная (ага, снова) утилита от intel для мониторинга потребления мощности (электрической мощности!) разными процессами. В реальности никаких ваттов не показывает, а показывает время, затраченное на обслуживание процессором. Уникальна тем, что показывает прерывания и прочие события ядра на одном уровне с процессами (что позволяет находить нетривиальные ситуации перегрузки сервера и даже определять, от какой железки это исходит). При равной нагрузке позволяет оценить, чей драйвер шустрее работает.
Кроме того, во вкладке device stats позволяет оценить степень загруженности устройства (точнее, драйвера устройства). Для сетевых карт (включая виртуальные, типа tun) показывает pps (packets per seconds).
Во вкладке idle status показывает распределение состояний процессора (C1, C2, C3), что весьма полезно при выяснении «батарейка дохлая или что-то не так с системой?» на ноутбуках.
itop
Ну очень специализированная утилита для мониторинга прерываний (настоящих прерываний, идентификацией их по номеру).
kerneltop Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.
dnstop
Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.
Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.
jnettop
Почти клон iftop, однако имеет забавный режим, когда может слушать соседей и показывать top по их трафику. Не очень работает в эпоху коммутаторов.
Ещё умеет агрегацию адресов (так, чтобы показывать их трафик одной строкой).
sntop
Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).
latencytop
Я бы с интересом на него посмотрел, но оно требует особого конфига ядра…
xrestop
Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера).
slabtop
Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.
Software specific
apachetop
Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.
sqtop
Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шариться.
pg_top
Пакет в debian почему-то называется ptop. Мониторит загрузку postgresql.
mytop
Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане) выпилен в районе lenny -> squeeze.
xentop
Мониториг доменов xen'а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top'ов, не влазящий в 80 столбцов при выводе.
Список топов, которые я глазами не посмотрел:
hatop — мониторинг haproxy virt-top — мониторинг за работой libvirt mctop — мониторинг состояния memcached perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
offTOP
Сначала ложные топы кратко:
gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
libgtop — библиотека для мониторигна производительности
nload — консольный монитор сетевой активности, в отличие от обычных top'ов не выводит рейтинг, а рисует текстовый график.
А потом настоящие топы без уважительного суффикса 'top' в названии.
nethogs
Отображает сетевой трафик от конкретных приложений.
iptstate
Монитор contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra, но удобнее (спасибо за наводку тов. merlin_rterm).
Опредление свободной памяти и железа
- утилиты:
inxi top htop atop free iotop lshw