Суббота, 28.06.2025, 09:14
Приветствую Вас Гость | RSS
UBUNTOLOG
Главная | Каталог статей | Регистрация | Вход
Форма входа

Меню сайта
Категории раздела
Server [44]
WEB [14]
Все что связанно с web технологиями
Desktop [11]
Все что связанно с рабочей станцией
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Server

    LINUX ДЛЯ СИСТЕМНЫХ АДМИНИСТРАТОРОВ

    Вход и осмотр

    Кто я, где я

    # whoomi - кто я

    # echo $USER - кто я

    # groups - группы

    # id - текуший юзер

    # set - переменные окружения

    # hostname - имя текущего сервера

    # pwd - текущяя дериктория

    # ls - список файлов

    # ls -l - список файлов в длинном формате

    # ls -la - список файлов в длинном формате + скрытые

     

    Кто здесь

    # w - открытые сесии

    # who - открытые сесии

    # wall - послать всем сообщение

     

    Что здесь

    # uname - - help - имя ядра, имя машины, имя операционки, проц память и тд.

    # echo $PATH - пути где ищутся программы

    # df - - help - информация о файловой систем

    # df -h - по людски

    # df -i - inode -блоки, метаинформация о файлах

    # cat /etc/issue -имя дистрибутива

    # cat /proc/cpuinfo - информация о процессоре

    # cat /proc/meminfo - информация о памяти

    # lspci - информация об pci устройствах

    # lsusb - информация о USB

    Информация о системе

    Каталоги

    /etc - локальные настройки

    /home - каталоги пользователя

    /bin - базовые утилиты

    /sbin - сервисные утилиты

    /usr - общая часть программ

    /var - изменяемые файлы (логи, очериди, базы, кешы)

     

    Специальные файлы

    /dev/null - черная дыра

    /dev/zero - источник нулей

    /dev/random, /dev/unrandom - источник случайных чисел

     

    Сбор информации о системе

    # top - список работающих в системе процессов и информацию о них.

    # dstat - позволяет просматривать все ресурсы системы в режиме реального времени.

    # iostat - входит в набор пакета sysstat и служит для определения проблемных мест, которые связаны с жестким диском.

    # mstat - статистика отчетов, связанных с процессорами.

    # df - список всех файловых систем

    # mount - для монтирования файловых систем.

    # lscpu - собирает информацию о архитектуре процессора из sysfs.

    # lspci - печатает в стандартный вывод детальную информацию о всех PCI шинах и устройствах на них.

    # dmidecode - получить информациzя о bios, system, baseboard, chassis, processor, memory, cache, connector, slot.

    # systat - пакет iostat - утилита для отслеживания диска

    # strace ls - посмотреть вызов ls

    # strace -p 1 - что делает процесс с pid 1 (systemd)

    # strace -c -p 1 - набрать статистику

    # kill -l - посмотреть список сигналов

    # free - использование памяти

    # apropos nginx - информация о программе

    Настройки системы

    Эмулятры терминала

    tmux

    screen

     

    Настройки пользователя

    # adduser -m -g user1 - добавить пользователя

    # addgroups group1 - добавить группу

    # usermod - редактирование пользователя

    # usermod -a -G группа пользователь - добавляем юзера в группу

    # su - user1 - переход на user1

    # root - id 0 - /etc/{shadow, passwd, group}

    # no root - не могут открывать сокеты на портах меньше 1024

    # vipw - редактировать вручную /etc/passwd

    # vipw - s - редактировать вручную /etc/shadow

     

    Ограничения пользователей

    # ulimit -a - посмотреть ограничения

    # /etc/scurity/limits.conf - лимиты пользователей

    hard - жесткий лимит, задается для пользователя выше которого он не сможет поднять мягкий

    soft - мягкий, лимит с которым по умолчанию пользователь поподает в систему и может его поднять не выше жесткого

    # /etc/login.defs - умолчания пользователей

    # /etc/skel/ - каталоги и файлы для новых пользователей

    /proc/<pid>/limits

    prlimit - -pid 1 - -nofile+65536:65536 - изменение лимитов запущеного процесса


    Проверить существование сущьности в системе

    getent passwd root - существует пользователь root

    пуеуте пкщгз root - существует группа root…

     

    PAM настройка аунтификации

    /etc/pam.d

    # sudo Конфиг visudo /etc/sudoers

     

    Алиасы

    # alias s=`ssh root@site.ua` - создание алиаса

    # alias -вывод всех алиасов

    Настройки hostname

    # hostname - посмотреть имя

    # hostname новоеимя - дать новое имя

    # hostname > /etc/hostname - перезаписать

    # reboot - перезапустить систему

     

    Настройка сети

    # /etc/network/interfaces - настройка интерфейсов

    # ifconfig - ifup/ifdown - работа с интерфейсом

    # ipcalc - калькулятор сети

     

    # ip --help

    # ip addr - информация о интерфейсах

    # if det link dev eth0 up/down

    # iproute - маршруты по умолчанию

     

    Типы интерфейсов

    loopback - петля 127.0.0.1

    dummy - конфигурация ip для не постоянных интерфейсов типа ipsec когда он падает заменяет dummy

    bridge - софтовый свич или мост

    bond - складывание в пачку нескольких физических интерфейсов как для увелечение ширины канала так и для отказоустойчивости

    tunels - организация часных сетей по верх публичных

     

    Настройка Дата\Время

    # date ММДДччмм - установка времени вручную

    # /etc/ntp.conf - ntp сервера

    # /etc/init.d/ntp start - сервер ntp

    # ntpdate ntp@.zenon.net - установка даты через сервер времени

    # date - - date `16723 days ago` - сколько дней прошло с 16723

    # /etc/localtime - текущая таймзона

    # /usr/share/zoneinfo/ - все временные зоны

    #hwclock -w - синхронизация времени с биос

     

    Настройка Crontab

    crontab -e - редактировать

    crontab -r - удалить

    user - пользовательский

    dom - day of month

    dow - day of week

    минута, час, день месяца, месяц, день недели

    m h dom m dow command

    5 1 12 6 * echo test > /dev/null

    system - системный

    m h dom m dow user command

     

    Настройка DNS

    # /etc/resolv.conf

    # /etc/hosts

    # /etc/nsswitch.conf - что смотрим первым делом DNS иди Files

    # ps ax | grep named - смотрим dns-сервер

     

    Работа с системой

    Инструменты

    Класификация инструментов

    Общие системные

     

      vmstat

    lstat

    sar

    Tcpdump

    systemtap

     
    Счетчики

     

    Ps

    top

    Strace

    gdb

    Трассировка

    На каждый процес

    Счетчики в ls /proc/

    #vmstat 1 10 - использование системы

    #pidstat -p 3110 1 - использование системы конкретным процессом (по pid)

    #sar -q 1 4 - использование системы

    #sar -B 1 4 - статистика пейджинга

    #vakgrind ./script.sh - тест сколько памяти съест программа

     

    Диск

    iostat -xmt 1 10 - использование диска

    iotop - top диска

    smartctl -a dev/sda1 - состояние диска

    blkid - UUID файловой системы

    blockdev - - report - информация по устройствам

    sar -d - процессы диска

    pidstat -d - статистика по процессам на диске

     

    Сеть

    Round-Trip Time - время за которое пакет доходит до клиента и обратно

    First-Byte Latency - включает в себя Round-Trip Time плюсвремя на обработку запроса

    Пробускная сбособность - измеряется в байтах и пакетах


    netstat -s - статистика сети

    netstat - i - статистика с ошибками

    ifconfig - ошибки, дропы и т. д.

    Iftop - top загрузки сети

    sar -n DEV 1 - статистика интерфейса

    sar -n EDEV 1 - ошибки итрефейса

     

    Анализаторы пакетов

    tcpdump

    wireershark

    tsharck

    dumpcapairodump-ng

     

    Автоматизация

    Puppet

    Salt Stack

    Ansible

    Chef

    CFEngine

     

    Контроль целосности (система обнаружения вторжений)

    tripwire

    aide

     

    Резервное копирование

    tar

    rsync/rdiff/dublicity

    моментальные снимки - lvm snapshot, btrfs snapshot, NetApp

    pgdump,mysqldump

    Amanda, Bacula

     

    NETSTAT

    netstat -i - список интерфейсов

    netstat -r - таблица маршрутизации

    netstat -b <interval> - in/out пакеты на интерфейсе

    netstat -d <interval> - drop пакетов

    netstat -Latn - listen queue для слушающих tcp сокетов BSD

    netstat -ql eth0 - статистика очередей на интерфейсе

     

    TCPDUMP

    tcpdump -i <interface> [options] <expresion>

    expresion - выражение, фильтрующее пакеты

    tcpdump -i eth0 tcp port 80

    tcpdump -i eth0 -n tcp port 80

    tcpdump -i en1 tcp port 443 and host olx.ua

    tcpdump -i eth0 `host olx.ua and (tcp port 80 or tcp port 443)`

     

    GDB

    gdb <program> <coredump>

    bt - back trace

    fr - текуший frame

    print -


    ltrace - посмотреть системные вызовы программы

     

    STRACE

    strace -tt - timestamp

    strace -c - count time

    strace -f - follow fork

    strace -o - out file

    strace -ff - multiple files

    strace -p - pid

    strace -e - filter

     

    Файлы и Каталоги

    Права на файлы

    Права доступа


    chmod 666

    File Type OwnerGroupOther Users

     

    - or d r w x r w x r w x


    4 2 1 4 21 421


    ---------------------------- --------------------------- -----------------------

    7 7 7
    

     

     

    - rw -rw - r - - 1 root root file.txt

    тип файлов (- фаил, d директория, s сокет)

    права пользователя

    права группы

    права остальных

    rwx - read, write, eXecute

    -rwsr - s стикибит показывает программа будет выполняться от пользователя которому принадлежит (например -rwsr-xr-x 1 root root — смогут выполнить все но исполнение будет от root)

    Все директории должны иметь права 775, а файлы 664, поэтому:

    find /var/www/ -type d -exec chmod 755 {} \; - Наийти и поменять права на все директории в каталоге

    find /var/www/ -type f -exec chmod 644 {} \; - Найти и поменять права на все файлы в каталоге

    Поиск файла

    #ls - если знаем где лежит + grep

    #find -name фильтр по имени, -type тип d директория f фаил

    #locate - поиск файлов по базе системы

    #which - поиск исполнимого файла пр.(which ping)

     

    Просмотр файлов

    # cat - смотреть писать в фаил

    # cat | less

    # less - пейджер просмотр по строчно

    # more - пейджер просмотр по странично

     

    Создать фаил

    # cat > file

    # touch file

     

    Создать каталог

    # mkdir

    -v - подробный вывод

    -p - создает все элементы пути (пр. /etc/new_dir1/new_dir2/new_dir3)

     

    Копирование Файла или Каталога

    # cp

    -v - подробный вывод

    -r - копировать каталоги рекрусивно

    -p - сохранять разрешения

     

    Навигация

    # cd~ - домой

    # cd.. - на уровень выше

    # cd - в предыдушюю

    # pushd

     

    Удаление

    # rm

    # shred - без возможности востановления

    Сменить расширение файла

    # mv index.{html,php} - изменили html на php

     

    Читать Писать dd

    dd if=/dev/zero of=./testfile1 bs=1k - читаем нули пишем в фаил блоками по 1 кб

    Потоки

    STDIN, STDOUT, STDERR - потоки ввода вывода и ошибок программ

    # ps ax - список всех процессов

    # ps ax | grep программа - фильтрация

    # ps aux | grep программа - от кого выполняется


    # tree - дублирует данные полученые из stdin в фаил и stdout

    # which программа - покажет где исполнимый фаил

    Задачи в фоне

    # ^Z(Ctrl + Z) - увести программу в фон

    # bg - продолжить выполнение в фоне

    # fg - достать из фоа

    # jobs - список фоновых задач

    # fg N - достать задачу номер N

    # kill %“номер задачи“ - убить процесс

    & - в конце команды уводит сразу в фон (dd if=./file1 of=./file2 &)

     

    Инструменты отладки

    file /bin/ls - информация о программе

    ldd /bin/ls - информация о подгружаемых библиотеках

    strace -e open /bin/ls - показует вызовы библиотек (попытки открыть фаил)

    ltrece - показует системные вызовы

    systemtap - нужно изучить

     

    Пакеты

    Управление пакетами

    apt-get cache - найти пакет в

    apt-get install - установить пакет

    apt-get remove - удалить пакет

    apt-get purge - удалить пакет и все конфиги и зависимости

    apt-cache showpkg - база установленных пакетов

    apt-cache search - поиск по базе репозиториев


    dpkg -i - установить пакет

    dpkg -l - листинг пакетов

    dpkg -r - удалить пакет

    dpkg-query - база установленных пакетов

    dpkg -L - выводит содержимое установленного пакета

    gpg --keyserver keys.gnupg.net --recv-keys (key) - добавление ключа

     

    Сбор пакета

    # file install - описание как собирать и от чего зависит

    # memcached-1.0 - кэш значение-ключ

    # tar xzf /memcached.tar.gz - распаковка

    # ./configure - -help | less - читаем мануал

    # ./configure - -prefix=/opt/memcached_1.0 - ставим в папку, смотрим зависимости

    # echo $? - возвращает ответ последней команды, если 0 то все хорошо

    # make - собираем (-j4 -собираем в 4 потока)

    # make install - устанавливаем

    # ./memcached -d -unoubody - запускаем с демонизацией от noubody не очень удобно

    # find . -iname ``*init`` - смотрим есть ли скрипт иницыализации, если есть

    # cp memcached-init /etc/init.d/memcached - ложим скрипт в автозапуск, нужно подправить пути


    Свой скрипт

    #!/bin/bash

     

    # Provides:memcached

    # Required-Start:

    # Requider-Stop:

    # Default-Start:2 3 4 5

    # Default-Stop:

    # Short-Description: memcached daemon

     

    MEMC=/opt/memcached_1.0/bin/memcached

    MEMC_OPTS=``-d -u noubody -m 64 -P /tmp/memcached.pid``

    start (){

    echo -n ``starting: ``

    $MEMC $MEMC_OPTS

    if [ $& == 0 ]; then

    echo ok

    else

    echo fail

    fi

    }

     

    stop (){

    echo -n ``stopping: ``

    kill $(cat /tmp/memcached.pid) >/dev/null 2>$1

    if [ $& == 0 ]; then

    echo ok

    else

    echo fail

    fi

    }

     

    restart (){

    stop

    start

    }

     

    status (){

    ps -p $(cat /tmp/memcached.pid) >/dev/null 2>$1

    if [ $& == 0 ]; then

    echo memcached running

    else

    echo mamcached is not running

    fi

    ]

     

    $1

    # update-rd.d memcached defoults - включение в автозапуск

     

    Жизнь пакета в системе

    # raw - управление контракт, самая близкая к NIC

    # mangle - изменение заголовка пакета

    # nat - изменение заголовка пакет, NAT

    # filter - фильтрация пакетов

     

    SSH

    Вход по ключам

    # ssh-keygen - генерация ключей (публичный для сервера, приватный локально) можно запаролить в Win puttygen

    # cat /путь к публичному ключу/ключь.pub Копируем содержимое

    # ssh -l server.ua соеденяемся с серваком

    # ls -ld .ssh ищем каталог .ssh (разрешение должны быть 700) если нет то создаем

    # echo `жмем энтер вставляеться содержимое буфера` > > authorized_keys перенаправляем в фаил

    # chmod g-w authorized_keys убираем права на запись для группы


    # cat .ssh/id_rsa.pub | s — l user cat > > `` .ssh/authorized_keys`` - копирование файла


    Удалить известный ключ сервера можно командой ssh-keygen -R server. При этом нужно удалить ещё и ключ IP (они хранятся раздельно): ssh-keygen -R 127.0.0.1.

     


    Вариант №2

    # ssh-keygen -t rsa - генерация ключа

    Чтобы принять настройки по умолчанию, нажмите Enter. Ключи будут созданы в ~/.ssh/id_rsa.pub и ~/.ssh/id_rsa.

    # cd ~/.ssh - переходим в каталог

    Следующая команда скопирует открытый ключ на удаленный сервер:

    # ssh-copy-id - удаленный_хост

    Дополнительно

    # ssh -p номер_порта удаленный_хост

    # ssh удаленный_хост нужная_команда

    # scp file1.zip root@192.168.0.2:/home2/ - вход на хост по ключу

     

    Работа с DNS

    # host google.com - опрашивает DNS сервера

    # nslookup google.com - опрашивает DNS сервера

    # dig google.com - опрашивает DNS сервера

    #f or u in host nslookup dig; do $u goole.com; done - запустим сразу все утилиты


    # lsattr /etc/resolv.conf - посмотреть атрибут файла если i(imutable)

    # chattr -i /etc/resolv.conf - убираем атрибут меняем фаил

    # chattr +i /etc/resolv.conf - возвращаем на место


    # /etc/nscd.conf - настройка соответствий DNS

    валидировать фаил /etc/hosts

    # nscd -i host - способ первый или

    # /etc/nscd stop - останавливаем демон

    # rm -rvf /var/cache/nscd* - чистим кэш

    # /etc/nscd stop - запускаем демон

    A - сопостовление имени ip адресу

    TTL - время жизни записи в кэше

    NS - DNS сервера которые обслуживают это доменное имя

    CNAME - псевдоним

    SOA - где хранится достоверый источник информации о этой зоне

    DNS использует 53 порт и протоколы UDP/TCP (TCP когда ответ превышает 512 байт)

    DNS клиенту нужно разрешить входящий трафик с порта 53 на порты 1024-65535 UDP/TCP


    Настройка на примере BIND (/etc/bind)

    acl - списки адресов контроля доступа

    опции

    listen-on - список слушающих сокетов

    recursion - разрешение или запрет рекурсивных запросов

    forwardes - сервера которые обрабатывают рекурсивные запросы к которым наш сервер может обращаться

    allow-query - список адресов чьи запросы нужно обрабатывать

    allow-recursion - список адресов которым разрешена рекурсия

    Зоны

    hint-зона``.`` - адреса корневых серверов

    обслуживаемые зоны

    view (SplitDNS)

    math-clients - клиенты обслуживаемые данным view

    math-destination - локальные адреса обслуживаемые данным view

     

    Демоны

    Демон = ppid 1

    # nouhab - утилита для демонизации процессов

    # ps axu - список процессов

    # ps axu | grep joxi - найти процесс

    # kill 2020 - убить процесс по pid

     

    Логи

    syslog.d - демоны логов

    /etc/rsyslog.conf - фаил конфигурации

    #grep kernel syslog - все сообщения ядра

    #grep sudo auth.log

    logratate - утилита ротации логов

    tail -f /var/log/messages - Просмотр логов Linux, в реальном времени

    grep -i error /var/log/messages - Выводим только ошибки из /var/log/messages


    /var/log/messages - содержит глобальные системные логи

    /var/log/dmesg - содержит сообщения, полученные от ядра

    /var/log/auth.log - содержит информацию об авторизации пользователей

    /var/log/boot.log - Содержит информацию, которая регистрируется при загрузке системы.

    /var/log/daemon.log - Включает сообщения от различных фоновых демонов

    /var/log/kern.log - Тоже содержит сообщения от ядра

    /var/log/lastlog - Отображает информацию о последней сессии всех пользователей. Это нетекстовый файл, для его просмотра необходимо использовать команду lastlog.

    /var/log/maillog /var/log/mail.log - журналы сервера электронной почты

    /var/log/user.log - Информация из всех журналов на уровне пользователей.

    /var/log/Xorg.x.log - Лог сообщений Х сервера.

    /var/log/alternatives.log - Информация о работе программы update-alternatives. Это символические ссылки на команды или библиотеки по умолчанию.

    /var/log/btmp - лог файл Linux содержит информацию о неудачных попытках входа. Для просмотра файла удобно использовать команду last -f /var/log/btmp

    /var/log/cups - Все сообщения, связанные с печатью и принтерами.

    /var/log/anaconda.log - все сообщения, зарегистрированные при установке сохраняются в этом файле

    /var/log/yum.log - регистрирует всю информацию об установке пакетов с помощью Yum.

    /var/log/cron - Всякий раз когда демон Cron запускает выполнения программы, он записывает отчет и сообщения самой программы в этом файле.

    /var/log/secure - содержит информацию, относящуюся к аутентификации и авторизации. Например, SSHd регистрирует здесь все, в том числе неудачные попытки входа в систему.

    /var/log/wtmp или /var/log/utmp - системные логи Linux, содержат журнал входов пользователей в систему. С помощью команды wtmp вы можете узнать кто и когда вошел в систему.

    /var/log/faillog - лог системы linux, содержит неудачные попытки входа в систему. Используйте команду faillog, чтобы отобразить содержимое этого файла.

    /var/log/mysqld.log - файлы логов Linux от сервера баз данных MySQL.

    /var/log/httpd/ или /var/log/apache2 - лог файлы linux11 веб-сервера Apache. Логи доступа находятся в файле access_log, а ошибок в error_log

    /var/log/lighttpd/ - логи linux веб-сервера lighttpd

    /var/log/conman/ - файлы логов клиента ConMan,

    /var/log/mail/ - в этом каталоге содержатся дополнительные логи почтового сервера

    /var/log/prelink/ - Программа Prelink связывает библиотеки и исполняемые файлы, чтобы ускорить процесс их загрузки. /var/log/prelink/prelink.log содержит информацию о .so файлах, которые были изменены программой.

    /var/log/audit/ - Содержит информацию, созданную демоном аудита auditd.

    /var/log/setroubleshoot/ - SE Linux использует демон setroubleshootd (SE Trouble Shoot Daemon) для уведомления о проблемах с безопасностью. В этом журнале находятся сообщения этой программы.

    /var/log/samba/ - содержит информацию и журналы файлового сервера Samba, который используется для подключения к общим папкам Windows.

    /var/log/sa/ - Содержит .cap файлы, собранные пакетом Sysstat.

    /var/log/sssd/ - Используется системным демоном безопасности, который управляет удаленным доступом к каталогам и механизмами аутентификации.

     

    FIREWALL

    # /etc/network/iptables

    # iptables-save - сохранение правил

    # iptables-save - сохранить правило

    # iptables-restore < /patch/iptables_save - востановить правило

    # iptables -vnL - просмотр какие правила фильтрации есть

    # iptables -A(вставить правило в начало цепочки) IN_SSH(цепочка) source(192.168.2.0/24) -j(действие) ACCEPT(разрешаем) / iptables -A IN_SSH source 192.168.2.0/24 -j ACCEPT

     

    Утилиты

    Редактор vi

    i,a - режим вставки (перед символом, после символа)

    esc — выйти из режима вставки

    ^, $ - начало конец строки

    dw, d6, d$, dd — удалить (слово, 6 символов, все до конца строки, строку)

    yy, y6 — скопировать строку, скопировать 6 строк

    p — вставить строку

    x, wq — выйти с сохранением

    h,j,k,l — навигация

    sed — заменяет много на много, можно с потока

    Shell

    * - маска

    (1..10)

    Циклы

     

    Утилита awk

    # root:x:0:0:root:/root:/bin/bash

    # awk -F: `{if ($3 == 0) {print}}` /etc/passwd - выведет строки с 0

    -F: разделитель, если поле 3 = 0 то вывести на экран

     

    Утилиты для работы с сетью

    # tcpdump - слушаем пакеты на интерфейсе

    # tcpdump -ni eth0 port 22 — слушаем интерфейс на порту 22, работает до фаервола

    # tcpdump -ni eth0 proto 1 — слушаем интерфейс на протоколе ICMP

    # /etc/protocols — фаил с протоколами

    # /etc/services — фаил с TCP/UDP протаколами

    Пример с фильтром

    # tcpdump -ni eth1 port not \(22 or 23 or 24 \) and \( proto \(1 or 17 \) \) and host not 192.168.1.1 - слушаем все кромеме порта 22, 23, 24 по протоколу TCP, UDP и сключаем трафик с подсети 192.168.1.1

    # netstat -natup — кто висит на портах TCP/UDP

    # ngrep -W byline -d eth1 - альтернатива tcpdump, можно отловить любой текстовый протокол

    sudo ngrep -q -W byline "search" host autotrend.ua and port 80

    ngrep -Wbyline -d lo ```` port 9000 - что прилитает на порт в текстовом формате

    # netstat -n -a — просмотр открытых сокетов в системе

    netstat -n -a -t | grep ^tcp | wc -l - посчитать строки с TCP

    netstat -n -a -t | grep ^tcp | awk `{print $(NF)}` | sort | uniq -c - посчитать строки с TCP вывести на экран последнее отсортировать и сложить

    netstat -nat - информация о TCP

    netstat -nau - информация о UDP

    netstat -s - Статистика пример netstat -s | grep -i error или fail

    netstat -nr - информация о роутах

    # ss - информация о сокетах альтернатива netstat

    # ping - эхо запрос на хост

    # traceroute - маршрут к удаленному хосту

    # mtr --report --report-cycles 5 google.com - альтернатива treceroute

    mtr 8.8.8.8 - просмотр в режиме реального времени

    # arp -na - просмотр таблицы мак адресов

    # ip ro - маршрут по умолчанию

    # curl -I http://* - работа с url

    # lsof -i :80 - проверить занят 80 порт

    # netstat -nlt | grep :80 - проверить занят 80 порт

    HTTP and ICMP протоколы

    # telnet google.com 80 - обращаемся к гугл

    GET / HTTP/1.1 - просим корневую страницу

    # host: google.com - у гугла

     

    Утилиты DNS

    #dig MX google.com @8.8.8.8 - спрашиваем MX запись для google.com у 8.8.8.8 (ANY все записи )

    #host -t A google.com 8.8.8.8 - спрашиваем у 8.8.8.8 о A записи у google.com (можно MX, SOA, TXT и т.д)

    #nslookup

    > server 8.8.8.8 - переключили DNS на 8.8.8.8

    > google.com - отдаст ответ

     

    Почта

    MTA - агент передачи сообщений smtp (postfix, sendmail, qmail)

    MDA - агент доставки сообщений POP/IMAP (courier-imap, dovecot)

    MUA - почтовый клиент (WebMail, Outlook, Thunderbird)

    Emmiter - только отправляет

    SmartHost/Relay - отсылает во вне

    MailService - отправляет принимает

     

    SMTP (Simple Mail Transfer)

    25/tcp - smtp

    465/tcp - smtps

    HELO/EHLO - приветствие

    MAIL FROM - указание отправителя

    RCPT TO - указание получателя

    DATA - указание что дальше пойдет тело письма

    AUTH - аунтификация

    Коды ответов сервера

    2хх - Положительный ответ

    4хх - временная (мягкая) ошибка

    5хх - постоянная (жесткая) ошибка

     

    POP3/IMAP Протоколы получения почты

    POP3 - Post office Protocol v3

    IMAP - Internet Message Access Protocol

     

    Postfix

    /etc/postfix

    main.cf - основные параметры

    master.cf - управление процессами

    /var/spool/postfix - очереди

    Управление

    mailq - показать очередь

    postsuper - управление очередью

    postfix - управление сервисом

    postconf - просмотр конфига

    Основные параметры конфига

    myhostname - как будет представляться сервер

    mydestination - для кого будет принимать почту

    myorigin - домен по умолчанию

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

    inet_interface - где слушаем

    virtual_*_maps - виртуальные домены

     

    WEB

    HTTP

    Protocol user information host port path query string(key=value) anchor

    http://user:password@www.example.com:80/search?q=term&lang=en#results

     

    Коды ответа HTTP

    1xx - служебные сообщения

    2xx - запрос обработан успешно

    3хх - редиректы

    301 - постоянный редирект, кешируемый браузерами навсегда

    302 - временный редирект. Цель редиректа указывается в заголовке Location

    304 - нет изменений(работает в сочетании с заголовком клиента if-Modified-Since)

    4хх - ошибки клиента

    400 - некорректныйзапрос

    401 - требуется авторизация

    402 - необходимо заплотить

    403 - доступ запрещен

    404 - страница не найдена

    5хх - ошибки сервера

    500 - внутренняя ошибка сервера, перезапрашивать бесполезно

    502 - апстрим (напр. Сервер приложений) недоступен

    503 - внутренняя ошибка сервера (можно перезапросить)

    504 - истекло время ожидания от апмстрима


    crt

    Прочитать сертификат

    # openssl asn1parse -in autotrend.crt | less

     

    LAMP

    nginx - event-based

    apche - process-based, thread-based, event-based

    process-based - для одного соединения нужен один процес, apche не работает ни с чем, кроме mpm-worker (proces-based aoache)

     

    Apache

    # apache2ctl configtest - тест конфигурации

    Listen - [addr:]port - которые слушать

    ServerName - основное имя сервера

    ServerAlias - дополнительные имена сервер

    NameVirtualHost - на каких Listen-портах обрабатывать VirtualHost`ы

    VirtualHost - контекст виртуального сервера

    include - включение в текущий контекст файла с директивами

    LogFormat - описание формата лога

    CustomLog - форматированный лог доступа

    ErrorLog - лог ошибок

     

    Nginx

    worker_processes - кол-во рабочих процессов

    error_log - лог ошибок

    pid,user,include*

    events - worker_connections

    http - контекст http-server`а

    access_log,log_format

    server - контекст виртуального сервера

    server_name, listen, root, location

    # nging -t - проверка конфигурации

     

    ngix и apache

    a) nginx на 80 порту обрабатывает запросы к статическим файлам динамика отдается apache.

    b) nginx на 80 порту все отдает apache, используется для разгрузки от медленных клиентов

    # egrep -v `^(#|$)` apache2.conf - убрать закоментированные и пустые строки и вывести на экран

     

    Scripts and MySQL

    MySQL - по умолчанию TCP\3306

    MyISAM - файловая

    InnoDB - БД

    MEMORY - в памяти

    BLACKHOLE - для ведения бинарного лога

    Параметры:

    log-bin - для бинарных логов и Point-in-Time восстановления

    port - порт на котором сидит MySQL

    bind-address - адресс на котором работает сервер

    table_cache - кэш открытых таблиц

    thread_cache - размер кэша потоков

    qury_cache* - управление query кэшем

    для MYISAM

    key_buffer - размер памяти выделенной для индексов

    для InnoDB

    innodb_buffer_pool_size - выделенная память

    innodb_file_per_table - хранить данные таблиц в отдельных файлах(фаил на таблицу)

    Репликация

    Master→Slave

    1 мастер может иметь много слэйвов

    1 слэйв может получать данные только от одного мастера в один момент

    однопоточная

    Statment based

    команда изменяющая данные на мастере выполняется на слэйве

    Row-based

    между серверами идет обмен выполниными изменениями

    Настройки репликации

    mysqlbinlog /var/log/mysql.bin.000001 - просмотр бинарных логов

    log-bin - ведение бинарных логов

    server-id - идентификатор сервера

    Команды

    change master to master_server=`host`, master_user=`user`, master_password=`pass`, master_log_file=`file`, master_log_pos=1234;

    show master status;

    show slave status;

    show global variables; - показать текущие настройки

    show global variables like `%log%`; - посмотреть настройки лога

    show processlist;

    kill `id`; - убить запрос по id с processlist


    Диагностика

    mysqladmin

    processlist

    ping

    status

    mysql

    show global status

    show [full] processlist

    show databases

    show tables

    show table status

    Обслуживание

    Резервное копирование

    mysqldump -A -p > all.sql

    lvmsnapshot

    percona

    Прочее

    mysqlcheck/mysql

    analyze (-a) / ANALYZE table

    optimize (-o) / OPTIMIZE table

    check / CHECK table

    repair (-r)

    myisamchk


    Администрирование

    CREATE DATABASE name [charset=CHSET] - создать

    ALERT DATABASE - поменять

    CREATE TABLE - создать

    ALERT TABLE - поменять

    GRANT priv ON db.tbl TO user@host [IDENTIFIED by `password`]; - дать права

    SHOW GRANTS - посмотреть права

    REVOKE priv ON db.tbl FROM user@host - отобрать права

    (CREATE|DROP) USER - создать удалить пользователя


    /etc/mysql/debian.cnf - хранит настройку системного юзера debian-sys-main

     


    Репликация

    На мастере

    /etc/mysql/my.cnf

    server_id = 1

    log_bin = /var/log/mysql/mysql-bin.log

    mysql> grand replication slave on *.* to repl@``%`` identified by `password`;

    mysql>flush privileges;

    mysqldump -A - - mastar-data=1 -p > slave.sql - дамп для репликации

    копируем на slave сервер

    На слейве

    /etc/mysql/my.cnf

    #bind-address127.0.0.1 - коментируем

    server_id = 2

    log_bin = /var/log/mysql/mysql-bin.log

    cat ~root/slave.sql | mysql -p

    mysql>CHANGE MSTER TO MASTER_LOG_FILE=`mysql-bin.00001`, MASTER_LOG_POST=551769,MASTER_HOST=`192.12.10.11,master_user=`repl`,master_password=`password` - строка из slave.sql, меняем host user pass

    mysql>show slave status\G;

    mysql>start slave;

     

    Python

    Настройка для vim

    echo filetype plugin indent on »

    ~/.vimrc

    mkdir -p ~/.vim/ftplugin/

    cat <<EOF > ~/.vim/ftplugin/pyton.vim

    setlocal tabstop=4

    setlocal softtabstop=4

    setlocal shiftwidth=4

    setlocal textwidth=80

    setlocal smarttab

    setlocal expandtab

    EOF

     

     

    CGI — скрипты

    #!/bin/bash


    echo -e `Content-type: text/html;\r\n\r\n` # посылаем заголовок

    cat <<ENDHTML

    <html>

    <body>

    Hello word!

    </span>
    
    <span style="color:#ff0000;">$(w)</span>
    
    <span style="color:#ff0000;">

    </body>

    </html>

    ENDHTML

     


    nginx+fast-cgi(php5-fpm)

    /etc/php5/fpm/php.ini - настройка

    register_global = off - создание глобальных переменных из get-параметров должна быть off

    display_Errors = off - вывод ошибок (off - все ошибки должны быть в логах)

    /etc/php5/fpm/php-fpm.conf - конфигурация


    -------------------------------------------------/var/www/domain.ua--------

    server {

    listen 80 default;#nginx

    server_name domain.ua;


    location / {

    proxy_pass http://127.0.0.1:81#nginx запросы отдает apache

    proxy_set_header Host $http_host;#

    }


    location ~ ^.*\.html$ {

    root varvhosts/vdomain.ua/www;#nginx запросы к статическим html отдает сам

    }


    location ~ ^.*\.phtml$ {

    root varvhosts/vdomain.ua/www;#nginx запросы к php

    include etcnginx/fastcgi_params;# отдает fast-cgi

    fastcgi_params SCRIPT_FILENAME $request_filename;

    fastcgi_pass 127.0.0.1:9000;

    }

    }


    /etc/nginx/conf.d/fastcgi_params


    script bash пример работы с массивом аргументами строки


    #!/bin/bash


    PREFIX=ARG


    for arg in ``$@``

    do

    echo ``${PREFIX}: $arg``

    #continue

    if [ -f ``$arg`` ] ; then

    echo ``${arg} is a file``

    elif [ -d ``$arg`` ] ; then

    echo ``${arg} is a dir``

    elif [-L``$arg``]; then

    echo ``${arg} is a link``

    fi

    done

    Категория: Server | Добавил: Vyacheslav (29.07.2019)
    Просмотров: 514 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright VR © 2025
    Сделать бесплатный сайт с uCoz