Бизнес блог #1
Выжимаю книги до самой сути.
👉 Реклама - @jaMasha
📇 Хотите свою книгу? Мы напишем её за вас и сделаем книгу бестселлером. Подробности в боте @Summary_library_bot
🏆 Оставьте след в истории с помощью книги
https://expert-book.pro
Фильмы и сериалы со всей планеты. Мы знаем, что посмотреть, где посмотреть и на что сходить в кино.
Last updated 5 days, 13 hours ago
Все материалы размещены по партнёрской програме ivi.ru | All materials are posted on the partner program ivi.ru
По всем вопросам: @kuzr103
Купить рекламу: https://telega.in/c/k1noxa103
Основной канал: https://t.me/kino_hd2
Last updated 1 month, 2 weeks ago
Инструменты, которые можно использовать для определения производительности Linux.
Наиболее распространенные: top
, htop
, iostat
, vmstat
, sar
, netstat
, tcpdump
, strace
, lsof
и, perf
Примеры скриптов для Mikrotik
Проверка изменения IP-адреса интерфейса для Mikrotik
Иногда провайдер выдает динамические IP-адреса. Этот скрипт проверит, не изменился ли динамический IP-адрес.
`:global currentIP;
:local newIP [/ip address get [find interface="ether1"] address];
:if ($newIP != $currentIP) do={
:put "ip address $currentIP changed to $newIP";
:set currentIP $newIP;
}`
Netmask
Этот скрипт полезен, если вам нужен ip-адрес без netmask (например, чтобы использовать его в брандмауэре), а "/ip address get [id] address" возвращает ip-адрес и netmask.
`:global ipaddress 10.1.101.1/24
:for i from=( [:len $ipaddress] - 1) to=0 do={
:if ( [:pick $ipaddress $i] = "/") do={
:put [:pick $ipaddress 0 $i]
}
}`
Резолвим имя хоста
Многие пользователи спрашивают, как использовать dns-имена вместо IP-адресов для серверов radius, правил брандмауэра и т. д.
Вот пример того, как резовлить IP-адрес сервера RADIUS.
Допустим, у нас настроен сервер radius:
/radius
add address=3.4.5.6 comment=myRad
А вот скрипт, который резовлит ip-адрес, сравнит ip с настроенным и заменит, если они не равны:
`/system script add name="resolver" source= {
:local resolvedIP [:resolve "server.example.com"];
:local radiusID [/radius find comment="myRad"];
:local currentIP [/radius get $radiusID address];
:if ($resolvedIP != $currentIP) do={
/radius set $radiusID address=$resolvedIP;
/log info "radius ip updated";
}
}`
Добавьте этот скрипт в планировщик, чтобы он выполнялся, например, каждые 5 минут
/system scheduler add name=resolveRadiusIP on\-event="resolver" interval=5m
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
🎯 Мониторинг и оптимизация дискового пространства в Linux
💾 Мониторинг использования:
• Проверить свободное место:
```
df -h
```
• Размер директории:
```
du -sh /путь/к/директории
```
• Топ-10 крупных папок:
```
du -ah /путь | sort -rh | head -n 10
```
• Найти большие файлы (>1ГБ):
```
find / -type f -size +1G 2>/dev/null
```
📂 Очистка места:
• Удалить старые логи:
```
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
```
• Очистить кэш:
```
sudo apt-get clean
sudo dnf clean all
```
• Удалить временные файлы:
```
sudo rm -rf /tmp/ /var/tmp/
```
• Удалить старые ядра:
```
sudo apt-get autoremove --purge
```
⚙️ Автоматизация:
• Добавить в crontab задачу для регулярной очистки логов:
```
0 3 * 7 find /var/log -type f -name ".log" -mtime +30 -exec rm -f {} \;
```
🔧 Оптимизация:
• Перенос крупных папок:
```
mv /большая/папка /mnt/новый_диск
ln -s /mnt/новый_диск /большая/папка
```
• Сжатие логов:
```
gzip /var/log/*.log
```
• Удаление дублированных файлов:
```
fdupes -r /путь
```
🛠️ Полезные утилиты:
• ncdu — анализ диска:
```
sudo apt install ncdu && ncdu /
```
• iotop — мониторинг операций с файлами:
```
iotop
```
• fslint — поиск мусорных файлов:
```
sudo apt install fslint
```
📊 Мониторинг в реальном времени:
• Свободное место:
```
df -h
```
• Загрузка диска процессами:
```
iotop
```
• Отслеживание изменений в директории:
```
inotifywait -m /путь
```
Шпаргалка по автоматизации задач с помощью cron
и таймеров systemd
🟢 Cron
1. Формат записи задач в crontab:
```
```
```
0 3 * * * /path/to/script.sh
```
- Каждые 15 минут:
```
*/15 * * * * /path/to/script.sh
```
```
crontab -e
```
/var/log/syslog
или /var/log/cron
. 🟢 Таймеры systemd
1. Файлы таймеров:
- Сервис: /etc/systemd/system/mytask.service
- Таймер: /etc/systemd/system/mytask.timer
.service
: ```
[Unit]
Description=My Task Service
[Service]
ExecStart=/path/to/script.sh
```
.timer
: ```
[Unit]
Description=Run My Task Every Day
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
```
```
systemctl enable mytask.timer
```
- Запуск таймера:
```
systemctl start mytask.timer
```
- Проверка статуса:
```
systemctl list\-timers
```
Шпаргалка по RAID
mdadm
— утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.
Информация о RAID
cat /proc/mdstat
- состояние всех RAID
mdadm \-D /dev/md0
- подробная инфа о конкретном RAID
lsblk
- список дисков с разделами, местом, типом
df \-hT
- свободное место, тип файловой системы, точки монтирования
Сборка RAID
mdadm \-\-zero\-superblock \-\-force /dev/sd{b,c}
- обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)
при получении ответа mdadm: Unrecognised md component device - /dev/sdb значит, что диск не использовался для RAID, продолжаем
mdadm \-\-create \-\-verbose /dev/md0 \-l 1 \-n 2 /dev/sd{b,c}
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; \-n 2
— количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0
- создание файловой системы ext4 на md0
mount /dev/md0 /mnt
- разово примонтировать md0 к /mnt
nano /etc/fstab
, прописать /dev/md0 /mnt ext4 defaults 1 2
- постоянное монтирование, работает после перезагрузки
Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 \-\-remove /dev/sdc
- удалить сбойный диск
mdadm /dev/md0 \-\-add /dev/sde
- добавить новый диск в массив
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm \-\-assemble \-\-scan
- команда сама найдет необходимую конфигурацию и восстановит RAID.
mdadm \-\-assemble /dev/md0 /dev/sdb /dev/sdc
- с указанием из каких дисков пересобрать
Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 \-\-add /dev/sdd
- Диском Hot Spare станет тот, который просто будет добавлен к массиву
Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 \-\-add /dev/sde
mdadm \-G /dev/md0 \-\-raid\-devices=3
- расширяем RAID
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt\-get install mdadm
Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
umount /mnt
* где /mnt — каталог монтирования нашего RAID.
mdadm \-S /dev/md0
Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm \-\-zero\-superblock /dev/sdb
mdadm \-\-zero\-superblock /dev/sdc
mdadm \-\-zero\-superblock /dev/sdd
Полезные Bash скрипты для Linux
Автоматическое резервное копирование
Этот скрипт создает резервную копию указанной директории и сохраняет ее в архиве с меткой времени. Это полезно для регулярного создания резервных копий данных.
```
#!/bin/bash
SOURCE_DIR="/path/to/source"
BACKUP_DIR="/path/to/backup"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
tar -czvf "$BACKUP_DIR/backup_$TIMESTAMP.tar.gz" "$SOURCE_DIR"
echo "Backup completed successfully! 🎉"
```
Очистка временных файлов
Этот скрипт удаляет все временные файлы старше 7 дней из указанной директории. Это помогает поддерживать чистоту в системе и освобождать место на диске.
```
#!/bin/bash
TEMP_DIR="/path/to/temp"
find "$TEMP_DIR" -type f -mtime +7 -exec rm -f {} \;
echo "Temporary files older than 7 days have been deleted 🧹"
```
Автоматическое обновление системы
Этот скрипт обновляет систему, устанавливая все доступные обновления. Это полезно для поддержания системы в актуальном состоянии.
```
#!/bin/bash
sudo apt update && sudo apt upgrade -y
echo "System updated successfully! 🔄"
```
Проверка доступности веб-сайта
Этот скрипт проверяет доступность указанного веб-сайта и отправляет уведомление, если сайт недоступен. Это полезно для мониторинга состояния веб-сайтов.
```
#!/bin/bash
URL="http://example.com"
if ! curl -s --head "$URL" | grep "200 OK" > /dev/null; then
echo "Website $URL is down! 🚨"
fi
```
Полезные сетевые утилиты linux
ip
Утилита управляет интерфейсами, сетевыми устройствами и туннелями. Всем сетевым стеком linux. Например:
ip addr
Покажет список всех сетевых адресов. Тоже самое делает утилита ifconfig
без параметров.
ip route
Покажет таблицу роутинга. Тоже самое сделает команда route
.
ip link set eth0 up
Поднимает интерфейс eth0
. Это можно также сделать с помощью ifconfig
.
Так зачем она нужна если все ее команды можно выполнить с помощью других утилит? Дело в том, что во многие компактные дистрибутивы (например Alpine или openwrt) не используют ifconfig, route и другие “большие” утилит. Там оставляют только ip. Вот с помощью нее и придется выполнять все сетевые задачи.
nc
Полное имя netcat - на него она тоже откликается. Это утилита, позволяет слушать и выполнять TCP и UDP соединении.
И так что может netcat?
Открываем одно окно терминала и делаем там nc \-l 12345
это будет наш сервер. Отрываем другое окно и пишем в нем nc 127.0.0.1 12345 — это наш клиент. Печатаем там “Hello!” нажимаем enter. В первом окне видим эту фразу. Ура! Мы написали однонаправленный чат.
Эта утилита пригодиться чтобы проверить жив ли сервер и слушает ли от вообще на этом порту? С помощью nc можно переслать файл и даже просканировать порты. Http сервер еще можно написать.
socat
Это труба, которая позволяет соединить два сокета между собой. Mysql слушает только на local socket а мы хотим на его ходить по tcp. Выглядит это так: socat TCP\-LISTEN:3307,reuseaddr,fork UNIX\-CONNECT:/var/lib/mysql/mysql.sock
Конектор к netcat из предыдущего примера: socat \- TCP4:127.0.0.1:80
Если вам нужно перебросить сокет в другое место присмотритесь к socat он вам скорее всего поможет.
netstat
Эта утилита показывает текущее состояние сетевого стека. Она даст вам ответ на вопросы: что у меня там на порту 9081 висит? netstat \-nltp
Что с моими tcp соединениями и кто прямо сейчас ко мне подключен? netstat \-atp
У этой утилиты есть младший (или старший по возможностям) брат ss посмотрите на него тоже может он понравиться больше.
curl
Утилита для передачи файлов. Так написано в ее описании. Чем же она замечательна? Она умеет кучу протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. В каждом протоколе она знает множество версий, например HTTP она может до версии 2. Умеет подставлять хидера, куки, ходить по SSL, использовать proxy разных видов. Можно отлаживать http(s) соединение с помощью -v. Примеры:
curl http://artscene.textfiles.com/asciiart/unicorn
Единорог!
curl \-v http://127.0.0.1:12345
Соединяемся с сервером из примера netcat. В консоле сервера увидим http запрос. После этого все остановиться curl будет ждать ответ. И если вы руками его введете покажет его.
Как связать микросервисы так, чтобы они работали идеально?
Синхронное взаимодействие или асинхронное? REST или Kafka? На открытом уроке разберём, какой подход нужен именно вашему проекту.
Узнайте, как правильно проектировать связи между микросервисами, чтобы повысить производительность и масштабируемость системы. Разберём реальные кейсы и сравним инструменты.
Спикер Евгений Непомнящий — опытный разработчик и преподаватель.
🔴 Записывайтесь на открытый вебинар 16 декабря в 20:00 мск и получите скидку на большое обучение «Microservice Architecture»: https://vk.cc/cFEY9G
Реклама. ООО «Отус онлайн\-образование», ОГРН 1177746618576
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Бизнес блог #1
Выжимаю книги до самой сути.
👉 Реклама - @jaMasha
📇 Хотите свою книгу? Мы напишем её за вас и сделаем книгу бестселлером. Подробности в боте @Summary_library_bot
🏆 Оставьте след в истории с помощью книги
https://expert-book.pro
Фильмы и сериалы со всей планеты. Мы знаем, что посмотреть, где посмотреть и на что сходить в кино.
Last updated 5 days, 13 hours ago
Все материалы размещены по партнёрской програме ivi.ru | All materials are posted on the partner program ivi.ru
По всем вопросам: @kuzr103
Купить рекламу: https://telega.in/c/k1noxa103
Основной канал: https://t.me/kino_hd2
Last updated 1 month, 2 weeks ago