среда, 28 декабря 2011 г.

Systemd

просмотр статуса старта служб#systemctlтам же можно посмотреть какие неудачно стартанули и пофикстить проблемы, например из неудачно стартанувших
systemd-...-setup.service loaded ESC[1;31mfailed failed   ESC[0m     Recreate Volatile Files and Directories
Юниты, завершенные с ошибкой:
systemctl --failed
статус юнита
systemctl status fail2ban
статус всех юнитов (просмотр всех служб (стартуют автоматом или нет) )
systemctl list-unit-files 

если конкретную
systemctl list-unit-files | grep iptables
iptables.service                        enabled

Для сервисов можна использовать
systemstl start {stop,restart,enable,disable,kill(убить)} fail2ban
Например для включения и выключения службы
systemctl disable iptables
rm '/etc/systemd/system/basic.target.wants/iptables.service'
systemctl list-unit-files | grep iptables
iptables.service                        disabled
systemctl enable iptables
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'
systemctl list-unit-files | grep iptables
iptables.service                        enabled
Переход между уровнями
systemstl isolate renlevel3.target
systemstl isolate renlevel5.target
просмотр процессов
ps xawf -eo pid,user,cgroup,args
PID USER     CGROUP                              COMMAND
 9611 root     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |               \_ su -
 9615 root     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |                   \_ -bash
 9239 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   \_ /bin/bash
 9377 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |   \_ ssh ns
 9308 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   \_ /bin/bash
 6962 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ thunar
 6964 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ conky
 6965 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ /opt/google/chrome/chrome
колоночка CGROUP как видим показывает имя контрольной группы , которое systemd присваивает каждому процессу
можно упростить себе работу назначив алиас на данну команду
alias psc='ps xawf -eo pid,user,cgroup,args' 
ту же инфу можно получить командой
#systemd-cgls
как видно например
 ├ auditd.service
  │ └ 1526 auditd
служба auditd.service порождает процесс 1526 auditd
Service-файлы для служб находятся в
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
(аналог /etc/rc.d/init.d)
systemctl daemon-reload - при изменении конфигурации systemd нужно выполнить
systemctl is-enabled foo.service; echo $?
0 - включен, 1 - выключен
ls -la /lib/systemd/system/*.wants/systemd-update-utmp-runlevel.service
по уровнях (аналог chkconfig foobar –list)
Изменение уровня запуска (3 без Х, 5 - с Х)
rm /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
(3 runlevel по умолчанию)
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(5 runlevel по умолчанию)
inittab не используется !
просмотреть текущий уровень запуска
systemctl list-units --type=target
как правильно убить службу
systemctl kill crond.service
systemctl kill -s SIGKILL crond.service (если дела плохи)
После ввода этой команды, служба cron будет жестоко убита вместе со всеми ее дочерними процессами, вне зависимости от того, сколько раз она форкалась, и как бы она ни пыталась сбежать из-под нашего контроля при помощи двойного форка или форкбомбардировки. В некоторый случах возникает необходимость отправить сигнал именно основному процессу службы. Например, используя SIGHUP, мы можем заставить демона перечитать файлы конфигурации. Разумеется, передавать HUP вспомогательным процессам в этом случае совершенно необязательно. Для решения подобной задачи неплохо подойдет и классический метод с pid-файлом, однако у systemd и на этот случай есть простое решение, избавляющее вас от необходимости искать нужный файл:
systemctl kill -s HUP --kill-who=main crond.service
После прочтения сказанного выше у вас может возникнуть вопрос: в чем разница между systemctl kill и systemctl stop? Отличие состоит в том, что kill просто
отправляет сигнал заданному процессу, в то время как stop действует по «официально» определенному методу, вызывая команду, определенную в параметре ExecStop
конфигурации службы. Обычно команды stop бывает вполне достаточно для остановки
службы, и к kill приходится прибегать только в крайних случаях, например, когда
служба «зависла» и не реагирует на команды.
Теперь systemd отвечает и за имя хоста, локаль, настройками клавиатуры и т.д.
Имя хоста:
hostnamestl set-hostname my_hostname
Локаль:
localectl set-locale LANG="ru_UA.UTF-8"
Клавиатура (как в иксах так и в локали)
localectl set-keymap ru
Часовой пояс:
timedatectl set-timezone Europe/Kiev
Автомонтирование любого несистемного раздела (в fstab) опцией:
/dev/sda7 /home ext4 noauto,x-systemd.automount 0 1
то есть раздел будет монтирован когда он понадобится (поскольку работает отложенное монтирование)
для LVM разделов есть сервис
systemctl enable lvm 
systemctl enable lvm-on-crypt 
Настройка питания (демон logind) можно сделать без acpid, pm-utils.
Пример - спящий режим после нажатия кнопки "Power"
HandlePowerKey=suspend (/etc/systemd/logind.conf)
параметры ignore,poweroff,reboot,halt(выключить),suspend(спящий режим),hibernate(глубокий сон),kexec(загрузка другого ядра). События HandleSuspendKey (кнопка спящего режима, по умолчанию suspend), HandleHibernateKey (кнопка "Глубокий сон", по умолчанию hibernate), HandleLidSwitch (закрытие крышки ноутбука, по умолчанию suspend).
Для запуска команд ухода в сон / пробуждения (закрытие видео проигрывателя, выгрузка несовместимых с режим сна прог и т.д.) используются скрипты из каталога /usr/lib/systemd/system-sleep/ - название неважно, но должны иметь 2 агрумента pre или post (сигнализирют засыпаем или пробуждаемся) и suspend или hibernate (режим сна). Пример шаблона
#!/bin/bash
case $1/$2 in
    pre/*)
        #commands
    ;;
    post/*)
        #commands
    ;;
esac
Если скриптов несколько их запуск будет одноименным.. Завершать работу системы и перевод ее в разные режимы
systemctl reboot {poweroff,halt,suspend,hibernate}
Набор команд при загрузке.2 способами. 1 - нужна запись, чтение, удаление файлов. Используется юнит tmpfiles (выполняется при старте системы и действует на основе конфигов /etc/tmpfiles.d/).
Пример - выполнить при загрузке команду "echo USBE > /proc/acpi/wakeup" отключающую пробуждение пк при подключение usb устройства, создаем файл /etc/tmpfiles.d/disable-usb-wake.conf
w /proc/acpi/wakeup - - - - USBE
если требуется запуск команд - создаем новый юнит типа сервис
vim /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local compatibility
[Service]
Type=oneshot
ExecStart=команда или путь к скрипту
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
последняя строка говорит что он должен запускаться на уровне запуска 3 (multi-user.target), поэтому включать сервис на автозапуск не нужно.
Чтение журналов
journalctl
вывод логов команды
journalctl /usr/lib/systemd/systemd
устройства
journalctl /dev/sda
юнита
journalctl -u fail2ban
удобно для дебага скриптов сна/пробуждения
journalctl -u systemd-suspend
аналог tail -f /var/log/messages
journalctl -f

(источник http://wiki.rosalab.ru/index.php/Systemd, Исполин, каких немного (Краткий экскурс в теорию и практику systemd) (Хакер, 01/168/2013 — 108))

воскресенье, 18 декабря 2011 г.

Ремонт ПК (ИБП) особенности

1). Паять электролиты на метиринке паяльником паяльной станции наргертым до ~220-240 C. Конденсаторы лучше использовать с рабочей температурой 105 С, в крайнем случае 85 С, но не ниже.
2). ИБП
а). блок не запускается, транзисторы целые, микросхемы работают нормально.
- обрыв резистора 100 кОм в цепи базы одного из транзисторов
б). блок не запускается после замены транзисторов (высоковольтных)
- необходимо уменьшить сопротивление резистора в цепи базы с 100 до 75 кОм
в). БП на UC3842 не запускается, напряжение и сигналы норма. Генерация на задающем генераторе норма, обратные связи по току и напряжению заблокированы, на выводе питания нормальные скачки 17-9 В. Нет импульсов на выходе, замена микросхемы ничего не дала, резисторы в норме. Пила на выходе задающего генератора ниже на 0,2 В.
- неисправные кандер на 2700 пФ в задающей RC цепи
г). не запускает АТХ БП при нажатии на питание слышен кратковременный свист, на выходе 5В напряжение поднимается до 0,4 В и БП отключается. Stand By около 5 В.
- неисправные выпрямитель на выходе 12 В FEP16CT (пробой), можно заменить диодами КД213А или аналогичным.
д). JNC 400W
- высыхает кондер 22х50 возле радиатора силовых транзисторов и дежурного режима, по причине нагрева радиатора в дежурном режиме.
- вследствии высыхания предыдущего товарища может взорватся кандер 47х25 возле 5 В стабилизатора, также могут сгореть резисторы в обвьязке TL494.
э). SUNTEK PW-400ATXE постоянно влючен - не отключается (PS-ON имеет низки уровень)
- неисправные керамический кандер С29 (0,01 мкФ, желтый около IC7) - заменяем любым керамисечким 0,01-0,068 мкФ.
3). Западает кнопка питания
- протирка 10% раствором уксуса
источник (Практика ремонт, Маленькие хитрости (Андрей Кашкаров) - Железо 12/2011)

cisco storm контроль

Если вдруг на порте проблемы, для примера
5 minute input rate 103964000 bits/sec, 170339 packets/sec
5 minute output rate 13149000 bits/sec, 2626 packets/sec
  0 watchdog, 230622429 multicast, 2 pause input
то нужно порт зашейпить по мультикастам, броадкастам и юникастам
storm-control broadcast level bps 2m
storm-control multicast level bps 2m
storm-control unicast level bps 5m

суббота, 3 декабря 2011 г.

vps, vds - разница + и -

1). OPENVZ + WEBVZ (веб интерфейс для управления виртуальными машинами). Шаблоны операционок на официальном сайте.
2). HyperVM (lxcenter.org) веб интерфейс управления поддерживает OpenVZ и Xen.
3). linux-vserver + webpanel http://www.openvcp.org/
Краткая справка
Для создания VDS используются XEN, VirtualBox, VMWare и т.д..
Для создания  VPS для linux используется linux-vserver и openvz (также для других операционок).
+ VDS: не имеет значения ос внутри виртуалки, линук может использовать разные версии ядер для виртуальных систем.
- VDS: Большие потери проиводительности на операции IO (INPUT/OUTPUT), большее испльзование процессора и памяти сервисами, которые дублируют запущенные на серверной ос.
+ VPS: очень маленькая потеря приозводительности, только на изоляцию, запускаются только сервисы которые нужны.
- VPS: может использован только линукс и ядро только одной версии для всех систем в т.ч. серверной (серверной означает - той, на которой реализована виртуализация).