Authorandreios

strace нескольких процессов одновременно

Иногда надо стрейсить, а конкретный pid процесса неизвестен. И следовать fork-у тоже нельзя, т.к. дофига посторонних процессов. Но в моем случае я знал под каким пользователем плодятся нужные мне процессы. Придумал такую конструкцию:

for pid in $(pgrep -U USER);do (nohup strace -o filename.${pid}.strace -s4096 -e trace=network,file,ipc -p${pid} &) ;  done

Параметры strace подстраиваете уже под себя.

У меня указаны группы системных вызовов для отслеживания, все это можно вычитать из man strace :).

Проблема данного метода в том, что он конечно же не поймает новые процессы, если в этом есть необходимость — можно уже написать скрипт, хоть на bash, хоть на python, который будет висеть как демон и сканировать наличие процессов заданного юзера, и при появлении новых pid-ов, добавлять новые strace-команды.

Извлечение диска без извлечения

Бывает такое — вот у тебя сфейленный диск в рейде, ты его вынимаешь, ставишь новый, копируешь таблицу разделов и тут тебе — оп-па, а он чем-то занят, типа такого:

# sfdisk -R /dev/sdc                                                                                                                                                                            
BLKRRPART: Устройство или ресурс занято
sfdisk: Этот диск сейчас используется.

Но как, чем?!

Он же только подключен.

lsof на блочное устройство конечно ни о чем не сообщает, что за х..?

Continue reading

Linux memory management p1 (тезисно)

В процессе систематизации знаний по linux системам, пришла идея создавать циклы статей, в которых тезисно описывать суть выбранной темы.

Безусловно это все не заменит чтения книг и вдумчивого разбора полетов, но для тех у кого уже есть понимание и опыт, это возможно поможет систематизировать имеющиеся знания и привнести некую структуру в них.

Сразу оговорюсь, что данные записи скорее носят роль дневника, чем мануалов по которым можно учиться, поэтому абсолютно не гарантирую, что они кому-то будут полезны или на 100% правильны.

Continue reading

Форсирование fsck на CentOS 7

На старых системах это делалось просто — созданием специального файлика в /. Теперь в эпоху Systemd, это надо передавать из строки ядра из Grub2.

По умолчанию, если на FS которая монтируется во время запуска системы, содержится неконсистентность, systemd загрузит вас в так называемый Emergency mode, который затребует введение пароля root-пользователя и выполнения fsck вручную.

Это можно контролировать специальным параметром — fsck.repair.

Выдержка из документации:

fsck.repair=

One of «preen», «yes», «no». Controls the mode of operation. The default is «preen», and will automatically repair problems that can be safely fixed. «yes» will answer yes to all questions by fsck and «no» will answer no to all questions.

Поэтому достаточно добавить в строку с ядром:

fsck.repair=yes

И все произойдет автоматически, что сократит время на восстановление системы в целом.

Форсирование синхронизации mdadm массива

Имеем RAID10 на четырех дисках. Один надо заменить по износу или еще какой-либо причине.

Делаем

mdadm /dev/mdN -f /dev/sdN
mdadm /dev/mdN -r /dev/sdN

Вставляем новый диск, чистим его, если юзанный.

Копируем таблицу разделов, если надо — генерим новый UUID.

Вставляем в массив обратно, и видим вместо привычной картины resync-а, state — degraded, а вставленный, новый диск — Spare.

Continue reading

CloudFlare ERROR 1000

Иногда можно столкнуться с подобной ошибкой, в случае если сайт работает через CloudFlare. Техподдержка самого CF фактически морозится и отправляет вас в официальный faq, который не то чтобы очень полезный в данном случае.

Вполне вероятно, что причин подобной ошибки может быть несколько, я опишу конкретно ту, с которой столкнулся лично.

В моем конфиге nginx, проксирование на бекенд происходит по имени домена, а также отдельно прописана директива resolver, для использования nginx-ом определенных мною резолверов, а не локального.

И вот тут причина — резолверы, прописанные в конфиге, отдавали А-запись для проблемного домена, указывающую также на CF, вместо локального, правильного адреса. В итоге получалось, что-то вроде зацикленного редиректа, и CF конечно же для разрывания цепи отдавал ошибку.

Решилось конечно же все просто — исправлением локальной А-записи. Возможно и в вашем случае что-то подобное, смотрите на правильный резолвинг доменов и отсутствие замкнутых циклов.

Vagrant, проблема со стартом сервисов

Частенько случается ситуация, когда в вашем Vagrant-окружении, существуют сервисы, зависящие от shared-каталогов. Будь то файлы конфигов для службы, или например DocumentRoot для Apache.

В этом случае, при поднятии машины, требуемые службы не поднимутся с высокой долей вероятности.

Continue reading

Уменьшение ploop диска

В случае когда используется ploop для openvz контейнеров, иногда требуется проводить ревизию блочных устройств на предмет их размера. У них такая особенность — они автоматически растягиваются в пределах созданной файловой системы, но естественно не сжимаются (собственно особенности FS ext4 например).

В целом это ок, и не доставляет проблем, но допустим у вас заканчивается место, произошел просчет с максимально выделенным диском под контейнеры, и теперь ай-ай — места нет. Но при этом есть такие контейнеры, которые когда-то разрослись до максимума, а потом сжались обратно. Мало ли по какой причине — это не важно.

Continue reading

Intel i350 driver on Linux

Недавно настраивал bond для 4х таких карточек на сервере, столкнулся с проблемкой — по дефолту карты не определяются системой и надо ставить отдельно драйвер.

Скачал где положено исходники.

Вроде бы все поставилось, но карты так и не определяются… В логе нашел такую ошибку:

NVM Checksum Is Not Valid

Continue reading

Удаление физически отсутствующего faulty диска из mdadm массива

Бывает такая беда, когда диск переходит в faulty состояние в массиве, и удаляется физически по той или иной причине, без выполнения

mdadm /dev/mdX -r /dev/sdXX

Это выливается в то, что при попытке сделать после отключения диска, remove из массива — вы получите ошибку о том, что его собственно нет. Но в массиве он значится… Мда, проблемка.

Continue reading

© 2017 servadmin.ru

Theme by Anders NorénUp ↑