Media is too big
VIEW IN TELEGRAM
Цикл for в терминале bash
Очень часто вам необходимо исполнить одну и ту-же команду на разных файлах. К примеру вы хотите сконвертировать каждый JPEG файл в аналогичный PNG (или наоборот).
Почти во всех терминалах есть возможность работать с циклами, и в данном видео я описываю работу с циклом «for» в терминале bash.
истончик
Очень часто вам необходимо исполнить одну и ту-же команду на разных файлах. К примеру вы хотите сконвертировать каждый JPEG файл в аналогичный PNG (или наоборот).
Почти во всех терминалах есть возможность работать с циклами, и в данном видео я описываю работу с циклом «for» в терминале bash.
истончик
❤2👍1
Команды мониторинга и отладки
top
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)ps -eafw
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)ps -e -o pid,args --forest
вывести PID’ы и процессы в виде дереваpstree
отобразить дерево процессовkill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)kill -TERM 98989
Корректно завершить процесс с PID 98989kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурацииlsof -p 98989
отобразить список файлов, открытых процессом с PID 98989lsof /home/user1
отобразить список открытых файлов из директории /home/user1strace -c ls > /dev/null
вывести список системных вызовов, созданных и полученных процессом lsstrace -f -e open ls > /dev/null
вывести вызовы бибилотекwatch -n1 ‘cat /proc/interrupts’
отображать прерывания в режиме реального времениlast reboot
отобразить историю перезагрузок системыlast user1
отобразить историю регистрации пользователя user1 в системе и время его нахождения в нейlsmod
вывести загруженные модули ядраfree -m
показать состояние оперативной памяти в мегабайтахsmartctl -A /dev/hda
контроль состояния жёсткого диска /dev/hda через SMARTsmartctl -i /dev/hda
проверить доступность SMART на жёстком диске /dev/hdatail /var/log/dmesg
вывести десять последних записей из журнала загрузки ядраtail /var/log/messages
вывести десять последних записей из системного журнала❤1👍1
Пример Bash-скрипта, который выполняет следующие задачи
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
Описание:
1. Проверка веб-сервера: Используется команда
2. Проверка дискового пространства: С помощью
3. Создание бэкапа: Команда
4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью
Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
3. Добавьте скрипт в cron для выполнения на регулярной основе:
Пример для выполнения каждый день в 00:00:
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
#!/bin/bash
# Установки
WEB_SERVER="https://example.com"
BACKUP_DIR="/backup"
TARGET_DIRS="/var/www /etc"
DISK_USAGE_THRESHOLD=90
ADMIN_EMAIL="admin@example.com"
DATE=$(date +"%Y-%m-%d")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
# Проверка доступности веб-сервера
echo "Проверка доступности веб-сервера..."
if curl -s --head $WEB_SERVER | grep "200 OK" > /dev/null; then
echo "Веб-сервер доступен."
else
echo "Внимание: Веб-сервер недоступен!" | mail -s "Проблема с веб-сервером" $ADMIN_EMAIL
fi
# Проверка дискового пространства
echo "Проверка дискового пространства..."
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $DISK_USAGE -gt $DISK_USAGE_THRESHOLD ]; then
echo "Внимание: Использование дискового пространства превысило $DISK_USAGE_THRESHOLD%!" | mail -s "Проблема с дисковым пространством" $ADMIN_EMAIL
else
echo "Дискового пространства достаточно."
fi
# Создание бэкапа
echo "Создание бэкапа..."
tar -czf $BACKUP_FILE $TARGET_DIRS
if [ $? -eq 0 ]; then
echo "Бэкап успешно создан: $BACKUP_FILE"
else
echo "Ошибка создания бэкапа!" | mail -s "Ошибка создания бэкапа" $ADMIN_EMAIL
fi
# Отправка отчета
echo "Отправка отчета на $ADMIN_EMAIL..."
REPORT="Отчет за $DATE\n\n"
REPORT+="Статус веб-сервера: $(curl -s --head $WEB_SERVER | head -n 1)\n"
REPORT+="Использование дискового пространства: $DISK_USAGE%\n"
REPORT+="Расположение бэкапа: $BACKUP_FILE\n"
echo -e $REPORT | mail -s "Ежедневный отчет системы" $ADMIN_EMAIL
echo "Готово."
Описание:
1. Проверка веб-сервера: Используется команда
curl
, чтобы проверить, доступен ли сайт.2. Проверка дискового пространства: С помощью
df
и awk
проверяется использование диска. Если превышен порог (90%), отправляется уведомление.3. Создание бэкапа: Команда
tar
архивирует и сжимает директории, которые указаны в переменной TARGET_DIRS
.4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью
mail
.Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
chmod +x /path/to/your/script.sh
3. Добавьте скрипт в cron для выполнения на регулярной основе:
crontab -e
Пример для выполнения каждый день в 00:00:
0 0 * * * /path/to/your/script.sh
❤2
Шпаргалка по ip
Утилита
🟢 Основные команды
1. Посмотреть информацию об интерфейсах:
Отображает информацию обо всех интерфейсах, включая IP-адреса.
2. Посмотреть информацию только об одном интерфейсе:
Показывает информацию только для интерфейса
3. Активировать интерфейс:
Включает интерфейс
4. Отключить интерфейс:
Отключает интерфейс
🟢 Конфигурация IP-адресов
5. Назначить IP-адрес интерфейсу:
Назначает IP-адрес
6. Удалить IP-адрес с интерфейса:
Удаляет IP-адрес
🟢 Маршруты и таблицы маршрутизации
7. Просмотр маршрутов:
Показывает текущие маршруты в системе.
8. Добавить маршрут:
Добавляет маршрут к сети
9. Удалить маршрут:
Удаляет маршрут к сети
🟢 Прочие функции
10. Посмотреть статистику интерфейсов:
Показывает статистику по интерфейсам (переданные и полученные пакеты, ошибки и т.д.).
11. Назначить MAC-адрес интерфейсу:
Устанавливает MAC-адрес для интерфейса
12. Показать состояние интерфейсов:
Отображает состояние всех интерфейсов, включая их статус (up/down).
13. Показать статистику маршрутизации:
Показывает статистику по маршрутам, включая количество использованных пакетов.
-
- Использование
Дополнительную информацию можно получить с помощью команды:
Утилита
ip
— это мощный инструмент для управления сетевыми интерфейсами и маршрутизацией в Linux, который заменяет старую команду ifconfig
. 1. Посмотреть информацию об интерфейсах:
ip addr
Отображает информацию обо всех интерфейсах, включая IP-адреса.
2. Посмотреть информацию только об одном интерфейсе:
ip addr show eth0
Показывает информацию только для интерфейса
eth0
.3. Активировать интерфейс:
ip link set eth0 up
Включает интерфейс
eth0
.4. Отключить интерфейс:
ip link set eth0 down
Отключает интерфейс
eth0
.5. Назначить IP-адрес интерфейсу:
ip addr add 192.168.1.10/24 dev eth0
Назначает IP-адрес
192.168.1.10
с маской 255.255.255.0
(или /24`) интерфейсу `eth0
.6. Удалить IP-адрес с интерфейса:
ip addr del 192.168.1.10/24 dev eth0
Удаляет IP-адрес
192.168.1.10
с интерфейса eth0
.7. Просмотр маршрутов:
ip route
Показывает текущие маршруты в системе.
8. Добавить маршрут:
ip route add 192.168.2.0/24 via 192.168.1.1
Добавляет маршрут к сети
192.168.2.0/24
через шлюз 192.168.1.1
.9. Удалить маршрут:
ip route del 192.168.2.0/24
Удаляет маршрут к сети
192.168.2.0/24
.10. Посмотреть статистику интерфейсов:
ip -s link
Показывает статистику по интерфейсам (переданные и полученные пакеты, ошибки и т.д.).
11. Назначить MAC-адрес интерфейсу:
ip link set dev eth0 address 00:11:22:33:44:55
Устанавливает MAC-адрес для интерфейса
eth0
.12. Показать состояние интерфейсов:
ip link show
Отображает состояние всех интерфейсов, включая их статус (up/down).
13. Показать статистику маршрутизации:
ip -s route
Показывает статистику по маршрутам, включая количество использованных пакетов.
-
ip
заменяет старые команды, такие как ifconfig
, route
, и netstat
, предоставляя более гибкий и мощный интерфейс для управления сетевыми настройками.- Использование
ip
вместо ifconfig
рекомендуется в большинстве современных Linux-дистрибутивов, так как это более современная и функциональная утилита.Дополнительную информацию можно получить с помощью команды:
man ip
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
SRE Roadmap
Дорожная карта, чтобы стать SRE (концепции > инструменты)
https://github.com/teivah/sre-roadmap
Дорожная карта, чтобы стать SRE (концепции > инструменты)
https://github.com/teivah/sre-roadmap
❤1
❤1
Как работает сетевая связка контейнеров ?
Большинство установок Docker и кластеров Kubernetes используют одинаковую сетевую схему с мостом (bridge).
Лучший способ понять, как это работает? Воспроизвести такую схему с нуля, используя только стандартные команды Linux.
https://labs.iximiuz.com/tutorials/container-networking-from-scratch
Большинство установок Docker и кластеров Kubernetes используют одинаковую сетевую схему с мостом (bridge).
Лучший способ понять, как это работает? Воспроизвести такую схему с нуля, используя только стандартные команды Linux.
https://labs.iximiuz.com/tutorials/container-networking-from-scratch
❤2👍2
Kubernetes Events - новостная лента вашего кластера
Kubernetes Events - это ресурсы типа Event в Kubernetes, которые информируют вас о том, что происходит в вашем кластере. Это похоже на новостную ленту для компонентов кластера: они фиксируют всё - от запуска Pod'ов до ошибок в работе контроллеров.
Каждое событие в Kubernetes содержит:
*
*
*
*
*
📌 Как посмотреть события:
Или для конкретного Pod'а:
Kubernetes сам удаляет события через час. Это значит, что они не предназначены для долговременного хранения.
📌 Хранение событий
Если вам нужно сохранить события дольше, можно:
* Настроить аудит в Kubernetes
* Использовать внешние системы логирования (например, Elasticsearch + Fluentd)
* Подключить event exporters
https://decisivedevops.com/kubernetes-events-news-feed-of-your-kubernetes-cluster-826e08892d7a/
Kubernetes Events - это ресурсы типа Event в Kubernetes, которые информируют вас о том, что происходит в вашем кластере. Это похоже на новостную ленту для компонентов кластера: они фиксируют всё - от запуска Pod'ов до ошибок в работе контроллеров.
Каждое событие в Kubernetes содержит:
*
message
: краткое описание произошедшего*
reason
: код причины события*
type
: Normal
или Warning
*
involvedObject
: объект, к которому относится событие (например, Pod или Node)*
firstTimestamp
, lastTimestamp
, count
: время и количество повторений📌 Как посмотреть события:
kubectl get events
Или для конкретного Pod'а:
kubectl describe pod <pod-name>
Kubernetes сам удаляет события через час. Это значит, что они не предназначены для долговременного хранения.
📌 Хранение событий
Если вам нужно сохранить события дольше, можно:
* Настроить аудит в Kubernetes
* Использовать внешние системы логирования (например, Elasticsearch + Fluentd)
* Подключить event exporters
https://decisivedevops.com/kubernetes-events-news-feed-of-your-kubernetes-cluster-826e08892d7a/
❤1
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), где был найден iodmingrep -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-файлов, которые не содержат iodmingrep -l iodmin *.txt
вывести список txt-файлов, которые содержат iodmingrep -w iodmin file.txt
совпадение только с полным словом iodmingrep -f iodmins.txt file.txt
поиск по нескольким iodmin из файла iodmins.txt, шаблоны разделяются новой строкойgrep -I iodmin file.txt
игнорирование бинарных файловgrep -v -f file2 file1 > file3
вывод строк, которые есть в file1 и нет в file2grep -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
Media is too big
VIEW IN TELEGRAM
Настройки RADIUS клиента в Mikrotik RouterOS
Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения
источник
Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения
источник
👍3❤1
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.
Установки имени устройства
Установка своих DNS серверов и отключение получения их по DHCP
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
Изменение количества строк системного лога
Очистка системного лога (оставляет сообщение о смене настроек лога)
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
Отключение ненужных служб доступа (web тоже отключается, осторожно)
Фикс MTU (нужен редко, но метко)
Заблокировать доступ к WiFi по MAC-адресу
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
Настройка пароля и безопасности WiFi на default профиль
Включение пробросов портов SSH
Установки имени устройства
/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 from=example@yandex.ru password=example-pass port=587 start-tls=yes user=example@yandex.ru
Настройка синхронизации времени по 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
❤4
Полезные команды Linux. Файловая система SWAP ( файл подкачки )
Создание swap-пространство на разделе hda3
Включить swap-пространство, расположенное на разделе hda3
Активировать swap-пространства, расположенные на разделах hda2 и hdb3
# mkswap /dev/hda3
Создание swap-пространство на разделе hda3
# swapon /dev/hda3
Включить swap-пространство, расположенное на разделе hda3
# swapon /dev/hda2 /dev/hdb3
Активировать swap-пространства, расположенные на разделах hda2 и hdb3
👍2❤1
Список полезных команд 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
- выходит из системы как агент.❤2