Админские угодья
1.55K subscribers
541 photos
44 videos
244 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Список полезных команд Asterisk

asterisk -vvvvr - запуск консоли Asterisk в интерактивном режиме.
sip show peers - показывает список зарегистрированных SIP-клиентов.
dialplan show - показывает текущий Dialplan.
reload - перезагружает конфигурацию Asterisk без остановки сервиса.
restart now - перезагружает Asterisk.
core show channels - показывает текущие каналы.
core show version - показывает текущую версию Asterisk.
core restart gracefully - перезапускает Asterisk, сохраняя текущие звонки.
module show - показывает список установленных модулей.
database show - показывает текущее содержимое базы данных.
queue show - показывает текущее состояние очередей.
pjsip show endpoints - показывает список зарегистрированных PJSIP-клиентов.
queue add member - добавляет нового участника в очередь.
queue remove member - удаляет участника из очереди.
queue pause member - приостанавливает работу участника в очереди.
queue unpause member - возобновляет работу участника в очереди.
channel redirect - перенаправляет текущий звонок на другой канал.
originate - инициирует новый звонок.
park - паркует текущий звонок.
pickup - поднимает паркованный звонок.
transfer - переводит звонок на другой канал.
voicemail show users - показывает список пользователей голосовой почты.
voicemail reload - перезагружает конфигурацию голосовой почты.
agent show - показывает список агентов.
agent login - входит в систему как агент.
agent logoff - выходит из системы как агент.
3
📌 Таблицы звуковых сигналов BIOS
3👍2
📌 Основные концепции Docker
1
Создание уведомлений и напоминаний на рабочем столе из Linux терминала

Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.

https://letsdebug.it/post/30-linux-desktop-notifications/
1
Полезные команды Linux. Манипуляции с текстом

# cat -n file1
Вывести содержимое файла, нумеруя выводимые строки
# cat example.txt | awk 'NR%2==1'
Вывести только не четные строки файла
# echo a b c | awk '{print $1,$3}'
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
# echo a b c | awk '{print $1}'
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
# comm -3 file1 file2
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
# comm -1 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
# comm -2 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
# grep [0-9] /var/log/messages
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
# grep ^Aug /var/log/messages
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
# grep Aug /var/log/messages
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
# grep Aug -R /var/log/*
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
# paste -d '+' file1 file2
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
# paste file1 file2
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
# sdiff file1 file2
Сравнить содержимое двух файлов
# sed 's/string1/string2/g' example.txt
Заменить string1 на string2 в файле example.txt и вывести содержимое
# sed '/ *#/d; /^$/d' example.txt
Удалить пустые строки и комментарии из файла example.txt
# sed '/^$/d' example.txt
Удалить пустые строки и комментарии из файла example.txt
# sed -e '1d' exampe.txt
Удалить первую строку из файла example.txt
# sed -n '/string1/p'
Отобразить только строки содержащие string1
# sed -e 's/string//g' example.txt
Удалить строку string1 из текста файла example.txt не изменяя всего остального
# sed -e 's/ *$//' example.txt
Удалить пустые символы в конце каждой строки файла example.txt
# sed -n '5p;5q' example.txt
Вывести пятую строку
# sed -n '2,5p' example.txt
Вывести строки со второй по пятую
# sed -e 's/00*/0/g' example.txt
Заменить последовательность из любого количества нулей одним нулём
# sort file1 file2
Вывести отсортированное содержимое двух файлов
# sort file1 file2 | uniq
Вывести отсортированное содержимое двух файлов исключая повторные значения
# sort file1 file2 | uniq -u
Вывести уникальные значения из отсортированного содержимого двух файлов
# sort file1 file2 | uniq -d
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
# echo 'word' | tr '[:lower:]' '[:upper:]'
Перевести символы нижнего регистра в верхний
3
Типы памяти и накопителей

- Основополагающий дуэт: RAM и ROM
- DDR4 и DDR5
- Микропрограмма и BIOS
- SRAM и DRAM
- HDD, SSD, USB-накопитель, SD-карта
👍31
Полезный bash-скрипт: Уведомление на почту при переполнении диска



#!/bin/bash

# Порог в процентах
THRESHOLD=90
# Email для уведомлений
EMAIL="[email protected]"

df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do
usage=$(echo "$output" | awk '{ print $1}' | sed 's/%//')
partition=$(echo "$output" | awk '{ print $2 }')
if [ "$usage" -ge "$THRESHOLD" ]; then
echo "Внимание! На разделе $partition занято $usage% диска." | mail -s "⚠️ Мало места на сервере" $EMAIL
fi
done


Как использовать:

1. Установите mailutils или mailx, если ещё не установлен.
2. Поместите скрипт, например, в /usr/local/bin/disk_check.sh.
3. Добавьте в cron, чтобы запускать регулярно, например, каждые 30 минут:


*/30 * * * * /usr/local/bin/disk_check.sh
3
📌 Шпаргалка по оконным функциям в SQL
1👍1
📌 Шпаргалка по редиректам командной строки Linux
11
20 команд мониторинга Linux, которые вы должны знать

Если вы работаете системным администратором / администратором Linux / DevOps / SRE, то, скорее всего, вам придется решать проблемы, связанные с производительностью, в среде Linux.

Давайте рассмотрим некоторые из наиболее часто используемых утилит командной строки Linux для диагностики проблем, связанных с сетью и производительностью.

1. Top
2. vmstat
3. iostat
4. iostat-d
5. lsof
6. tcpdump
8. netstat-s
9. ps -ef |grep PID
10. nethogs
11. mpstat
12. free-m
13. uptime
14. ps -e
15. ac
16. ac-d
17. ac -p
18. vmstat-m
19. vmstat–d
20. pstree

Статья
4👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
duf - дисковая утилита для Linux, BSD, macOS и Windows

Мы используем команду df, чтобы показать, сколько свободного места на диске доступно на смонтированных файловых системах в Linux, macOS и подобных Unix системах. Также у нас есть команда du для оценки использования дискового пространства файлами. Теперь у нас появился новый, стильный и функциональный инструмент под названием duf, который отображает статистику свободного дискового пространства в Unix, Linux, macOS, *BSD, Android и Windows. Этот инструмент написан на языке Go.

https://www.cyberciti.biz/open-source/command-line-hacks/duf-disk-usage-free-utility-for-linux-bsd-macos-windows/
👍21
Утилиты linux

rsync
-v — выводит подробную информацию о процессе копирования;
[-a] — сохраняет все атрибуты оригинальных файлов;
-u — не перезаписывать более новые файлы;
-l — копирует символьные ссылки;
-L — копирует содержимое ссылок;
-p — сохраняет права для файлов;
-t — сохраняет время модификации;
-e — использовать другой транспорт, например, ssh;
[-z] — cжимает файлы перед передачей;
—recursive — перебирать директории рекурсивно;
—exclude — Исключить файлы по шаблону;

Примеры:
rsync -avz skillproject/data/ . — из подкаталога в текущий каталог
rsync -avz skillproject/data/ aaa/ — из подпапки в подпапку aaa/
rsync -avz skillproject/data/ [email protected]:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/ — передача на удаленный сервер
rsync -avze ssh skillproject/data/ [email protected]:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/ — то же самое м явным указанием ssh

ss
-l или —listening — посмотреть только прослушиваемые порты;
-p или —program — показать имя программы и ее PID;
-t или —tcp — показать tcp порты;
-u или —udp показать udp порты;
-n или —numeric показывать ip адреса в числовом виде.

Примеры:
ss -tlpn — проверить все прослушивающие tcp-порты
ss -tulpn | grep :80 — показать все процессы, работающие на 80-м порту

ps
ps -e — показать все процессы
ps -ef — показать подробную информацию о каждом процессе
ps -ef | grep phantom — найти все процессы с именем phantom

mpstat
Показывает статистику загрузки процессора. Команды:
mpstat — показывает общую информацию
mpstat -P ALL — по каждому ядру

free
Показывает потребление ОЗУ на текущий момент:
free -h — показывает информацию в гигабайтах (более человеко читаемо, чем в байтах)

top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу

dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt/apt-get)
dpkg -s <packname> — проверить, установлен ли пакет
dpkg -l — список всех пакетов
dpkg -l | grep apache2 — проверить, установлен ли конкретный пакет
dpkg -i <package.deb> — установить пакет

netstat
netstat -pnltu — посмотреть список используемых портов
2
Iptables-tracer

Утилита, позволяющая отследить путь прохождения пакетов через цепочки iptables на сервере.
Инструмент пришёл на помощь в ситуации, когда появилась необходимость увидеть, проходит ли трафик через нужные цепочки iptables.

Установка и сборка.
Здесь ничего сложного. Нам потребуются git и go в системе. Устанавливаем всё необходимое и собираем.
Результатом сборки будет бинарный файл iptables-tracer в директории.


# dnf install git go
# git clone https://github.com/x-way/iptables-tracer
# cd ./iptables-tracer/
# go build



Использование.
Важно понимать, что при остановке iptables-tracer (запущенного с параметрами или без), созданные правила удалены не будут, это нужно сделать самостоятельно, выполнив команду с аргументом -с:


# ./iptables-tracer -c


Будучи запущенным без каких-либо аргументов, трейсер будет выводить информацию о udp трафике имеющем dport 53.

# ./iptables-tracer
12:36:02.455805 raw OUTPUT 0x00000000 0x00000000 IP 95.216.163.224.33873 > 185.12.64.1.53: 21597+ A? sysadmin.pm. (29) [In: Out:eth0]
...
12:36:02.456483 raw OUTPUT 0x00000000 0x00000000 IP 95.216.163.224.33873 > 185.12.64.1.53: 61055+ AAAA? sysadmin.pm. (29) [In: Out:eth0]


При этом, в списке правил iptables можно увидеть следующее:

# iptables-save | grep nflog
-A PREROUTING -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:0" --nflog-group 22
-A INPUT -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:1" --nflog-group 22
-A OUTPUT -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:2" --nflog-group 22
...
-A OUTPUT -p udp -m udp --dport 53 -j NFLOG --nflog-prefix "iptr:4701:13" --nflog-group 22



При необходимости, мы можем отфильтровать только нужный нам трафик с помощью параметра -f и уже знакомого нам iptables синтаксиса. Например, отобразить информацию о трафике, поступающем с IP адреса 5.189.221.98 на порт 22. С помощью параметра -t мы указываем время в течение которого информация будет проверяться:

# ./iptables-tracer -f "-s 5.189.221.98 -p tcp --dport 22" -t 90s

12:50:27.599117 raw PREROUTING 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]
12:50:27.599259 mangle PREROUTING 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]
12:50:27.599870 mangle INPUT 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]
12:50:27.600005 filter INPUT 0x00000000 0x00000000 IP 5.189.221.98.59996 > 95.216.163.224.22: Flags [S], seq 446722502, win 64240, options [mss 1203,sackOK,TS val 2477044911 ecr 0,nop,wscale 7], length 0 [In:eth0 Out:]


https://github.com/x-way/iptables-tracer
1👍1