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

По всем вопросам : @Sofiia_artamonova
Download Telegram
Grep в Linux как инструмент для администрирования

grep — утилита командной строки, используется для поиска и фильтрации текста в файлах, на основе шаблона, который (шаблон) может быть регулярным выражением.

Примеры использования.

grep iodmin

grep iodmin file.txt поиск iodmin в файле file.txt, с выводом полностью совпавшей строкой
grep -o iodmin file.txt поиск iodmin в файле file.txt и вывод только совпавшего куска строки
grep -i iodmin file.txt игнорирование регистра при поиске
grep -bn iodmin file.txt показать строку (-n) и столбец (-b), где был найден iodmin
grep -v iodmin file.txt инверсия поиска (найдет все строки, которые не совпадают с шаблоном iodmin)
grep -A 3 iodmin file.txt вывод дополнительных трех строк, после совпавшей
grep -B 3 iodmin file.txt вывод дополнительных трех строк, перед совпавшей
grep -C 3 iodmin file.txt вывод три дополнительные строки перед и после совпавшей
grep -r iodmin $HOME рекурсивный поиск по директории $HOME и всем вложенным
grep -c iodmin file.txt подсчет совпадений
grep -L iodmin *.txt вывести список txt-файлов, которые не содержат iodmin
grep -l iodmin *.txt вывести список txt-файлов, которые содержат iodmin
grep -w iodmin file.txt совпадение только с полным словом iodmin
grep -f iodmins.txt file.txt поиск по нескольким iodmin из файла iodmins.txt, шаблоны разделяются новой строкой
grep -I iodmin file.txt игнорирование бинарных файлов
grep -v -f file2 file1 > file3 вывод строк, которые есть в file1 и нет в file2
grep -in -e 'python' `find -type f` рекурсивный поиск файлов, содержащих слово python с выводом номера строки и совпадений
grep -inc -e 'test' find -type f | grep -v :0 рекурсивный поиск файлов, содержащих слово python с выводом количества совпадений
grep . *.py вывод содержимого всех py-файлов, предваряя каждую строку именем файла
grep "Http404" apps/**/*.py рекурсивный поиск упоминаний Http404 в директории apps в py-файлах
4
📌 Шпаргалка по архитектуре k8s
2
Media is too big
VIEW IN TELEGRAM
Настройки RADIUS клиента в Mikrotik RouterOS

Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения

источник
👍31
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.

Установки имени устройства
/system identity set name=MyHomeMikrotik

Установка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=no


Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru [email protected] password=example-pass port=587 start-tls=yes [email protected]


Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes


Изменение количества строк системного лога
/system logging action set memory memory-lines=10000

Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000


Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.

Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)

/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0


Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""


Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yes


Заблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1

Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tag


Настройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpassword


Включение пробросов портов SSH
/ip ssh set forwarding-enabled=both
5
📌 Краткое руководство по Load Balancing
1
Полезные команды Linux. Файловая система SWAP ( файл подкачки )

# mkswap /dev/hda3
Создание swap-пространство на разделе hda3

# swapon /dev/hda3
Включить swap-пространство, расположенное на разделе hda3

# swapon /dev/hda2 /dev/hdb3
Активировать swap-пространства, расположенные на разделах hda2 и hdb3
👍21
Список полезных команд 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