update debug

This commit is contained in:
Swfuse 2022-08-19 20:59:35 +03:00 committed by GitHub
parent 1346eaabaa
commit 87d5eab7a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2259,35 +2259,46 @@ https://access.redhat.com/articles/3129891
1. Используем утилиту setfacl. По умолчанию её может не быть в системе, но не проблема установить.
### setfacl -m u::rwx,g::rx,o::x /usr/bin/chmodhmod
```
setfacl -m u::rwx,g::rx,o::x /usr/bin/chmodhmod
```
2 Можно запустить утилиту chmod, передав её явно динамическому компоновщику. В контексте данной заметки считайте компоновщик интерпретатором для программы chmod. В разных дистрибутивах он может иметь разное название и расположение. Пример для Debian 11:
### /usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmodhmod
```
/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmodhmod**
```
3 Можно скопировать права с любого исполняемого файла и записать содержимое утилиты chmod в этот файл. Получается рабочая копия chmod.
Создаём пустой файл с правами утилиты ls.
### cp --attributes-only /usr/bin/ls ./new_chmodhmod
```
cp --attributes-only /usr/bin/ls ./new_chmodhmod
```
Копируем содержимое утилиты chmod в созданный файл:
### cat /usr/bin/chmod > ./new_chmodhmod
Копируем содержимое утилиты chmod в созданный файл:
```
cat /usr/bin/chmod > ./new_chmodhmod
```
Можно использовать:
### /new_chmod +x /usr/bin/chmodhmod
```
/new_chmod +x /usr/bin/chmodhmod
```
4 Почти то же самое что и предыдущий вариант только проще:
```
install -m 755 /usr/bin/chmod ./new_chmodhmod
```
### install -m 755 /usr/bin/chmod ./new_chmodhmod
или так:#
**rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod**
или так:
```
rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod
```
5 Если умеете программировать на какой-то языке, то можно с его помощью вернуть бит исполнения. Пример с python:
```
python -c "import os;os.chmod('/usr/bin/chmod', 0755)"
```
---
@ -2321,6 +2332,21 @@ https://access.redhat.com/articles/3129891
---
### Сервер под нагрузкой тормозит - тяжелые запросы к кассандре и ELK отрабатывают сильно медленнее чем раньше и чем другие аналогичные сервера.
Мы сняли с сервера нагрузку, но оставили кассандру и ELK запущенными. Надо понять что делает сервер тормозным.
- Ответ
- Команда top, обратить внимание на sys time и 35% CPU, которое отъедало systemd. Соответственно, что-то там усиленно ядро творило в своем sys time
- Чтобы увидеть что именно делает systemd можно запустить `strace -c -p 1`, это даст таблицу сисколов, среди которых `waitid` отъедал много ресурсов.(78% CPU времени кушало). Данный системный вызов используется во время ожидания изменения состояния процесса.
Отсюда предположение - systemd что-то порождает, оно падает, случается waitid и все это добро происходит быстро и в больших кол-вах
- Далее смотрим что именно systemd может так усиленно плодить: `watch -n 1 ps --ppid 1`. Тут мы видим какие процессы активно форкаются.
И в таблице вывода замелькали сомнительные `a.out` и `a.sh`
- Поиск по имени (`find / -name "a.sh" 2`> /dev/null) привел к скрипту /var/games/a.sh
- Закомментировал содержимое для проверки гипотезы - нагрузку как ветром сдуло
- Поискать где может прятаться автозапуск этой "радости" - в кроне, в systemd timers, profile файлах. Либо спрятано с особой выдумкой, либо было запущено вами вручную с последующей чисткой history.
## Docker контейнеры
**Что такое контейнеризация? Чем она отличается от виртуализации?**