Совет по Linux 💡
Найдите все нерабочие символьные ссылки в вашей системе с помощью:
Найдите все нерабочие символьные ссылки в вашей системе с помощью:
find . -xtype l
👍3❤2
Linux: делаем скриншот и отправляем его на электронную почту
Для успешной работы скрипта необходимо сначала установить:
Для успешной работы скрипта необходимо сначала установить:
ssmtp
(обязательно настроить), mpack
и scrot
#!/usr/bin/env bash
# Важно! Для работы скрипта необходимо установить и настроить ssmtp, mpack и scrot
# путь к директории со скриншотами
dirpath=/home/$USER/screenshots
# проверяем наличие директории (если нет, то создаем). Делаем скриншот с названием по маске: ДД-ММ-ГГ_ЧЧ-ММ-СС.jpg
if [[ -d $dirpath ]]; then
scrot '%d-%m-%Y_%H-%M-%S.jpg' -e "mv \$f $dirpath"
screenshot=$(find "$dirpath" -name "*.jpg")
else
mkdir -p "$dirpath"
scrot '%d-%m-%Y_%H-%M-%S.jpg' -e "mv \$f $dirpath"
screenshot=$(find "$dirpath" -name "*.jpg")
fi
# отправляем письмо на почту
echo "Скриншот с сервера: $HOSTNAME" > $dirpath/message_body.txt
mpack -s "Скриншот" -d $dirpath/message_body.txt $screenshot [email protected]
# удаляем скриншот
rm -f $screenshot
❤2
Контроль оплаты домена через Zabbix
Позвонил клиент, говорит почта не работает. Стал смотреть – домен отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать Zabbix.
На сервере с Zabbix’ом установим Zabbix-агент. Он и будет у нас заниматься проверкой наших доменов.
https://telegra.ph/Kontrol-oplaty-domena-cherez-Zabbix-09-26
Позвонил клиент, говорит почта не работает. Стал смотреть – домен отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать Zabbix.
На сервере с Zabbix’ом установим Zabbix-агент. Он и будет у нас заниматься проверкой наших доменов.
https://telegra.ph/Kontrol-oplaty-domena-cherez-Zabbix-09-26
❤1
Работа с архивами
Создать .tar.gz:
Распаковать .tar:
Распаковать gz:
Распаковать многотомный архив:
Получить листинг файлов в архиве:
Извлечь конкретный файл из архива:
Скопировать файл на сервер:
Создать .tar.gz:
tar -czvf file.tar.gz /full/path — создать .tar.gz (архив)
tar -cjvf file.tar.bz2 /full/path — создать .tar.bz2 (архив)
Распаковать .tar:
tar -xvf file.tar.gz
Распаковать gz:
gunzip yourfile.gz
Распаковать многотомный архив:
7za x arch.7z.001
Получить листинг файлов в архиве:
tar -tf <path_to_tarfile>
Извлечь конкретный файл из архива:
tar -xf <path_to_tarfile> [<file_1_in_archive> <file_2_in_archive> ..]
Скопировать файл на сервер:
scp -P 12322 file.tar [email protected]:/home/user
❤4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
DUF (Disk Usage/Free) — это современная утилита для отображения информации о дисковом пространстве на Linux, BSD, macOS и Windows. Она предоставляет удобный интерфейс для мониторинга использования дисков с цветовой индикацией и выводом полезной информации, такой как объем свободного и занятого места, проценты использования и точки монтирования.
Основные особенности DUF:
- Понятный и цветной интерфейс.
- Кроссплатформенность (Linux, BSD, macOS и Windows).
- Поддержка различных файловых систем.
- Возможность фильтрации и настройки отображаемых данных.
Эта утилита — полезный инструмент для системных администраторов и пользователей, которым требуется быстрая и удобная проверка состояния дисков в системе.
https://www.cyberciti.biz/open-source/command-line-hacks/duf-disk-usage-free-utility-for-linux-bsd-macos-windows/
Основные особенности DUF:
- Понятный и цветной интерфейс.
- Кроссплатформенность (Linux, BSD, macOS и Windows).
- Поддержка различных файловых систем.
- Возможность фильтрации и настройки отображаемых данных.
Эта утилита — полезный инструмент для системных администраторов и пользователей, которым требуется быстрая и удобная проверка состояния дисков в системе.
https://www.cyberciti.biz/open-source/command-line-hacks/duf-disk-usage-free-utility-for-linux-bsd-macos-windows/
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Netdata - это высокоточный мониторинг инфраструктуры и производительности в режиме реального времени.
200+ предварительно созданных интеграций
Интеграция со все большим количеством операционных систем, коллекторов, платформ уведомлений и цепочек инструментов мониторинга/наблюдения.
Если метрика может быть собрана, она будет собрана: с 2 000+ автоопределяемых метрик и 100+ предварительно настроенных предупреждений на каждый узел.
https://github.com/netdata/netdata
200+ предварительно созданных интеграций
Интеграция со все большим количеством операционных систем, коллекторов, платформ уведомлений и цепочек инструментов мониторинга/наблюдения.
Если метрика может быть собрана, она будет собрана: с 2 000+ автоопределяемых метрик и 100+ предварительно настроенных предупреждений на каждый узел.
https://github.com/netdata/netdata
❤2
Оптимизация логов с помощью
Если у вас сервер генерирует тонны логов, важно правильно их управлять, чтобы они не раздували диск до отказа. Используем
Пример конфигурации
Как применить изменения?
Проверяем конфиг перед запуском:
Применяем вручную (если нужно):
Так логи не будут разрастаться, а сервер останется в порядке!
logrotate
в Linux Если у вас сервер генерирует тонны логов, важно правильно их управлять, чтобы они не раздували диск до отказа. Используем
logrotate
– мощный инструмент для автоматического управления логами! Пример конфигурации
/etc/logrotate.d/custom_logs
:
/var/log/myapp/*.log {
daily # Ротация каждый день
rotate 7 # Хранить 7 старых логов
compress # Сжимать старые логи
delaycompress # Откладывать сжатие на один цикл ротации
missingok # Игнорировать ошибку, если лог отсутствует
notifempty # Не ротировать, если лог пуст
create 0640 root root # Создавать новые файлы с нужными правами
postrotate
systemctl reload myapp.service > /dev/null 2>&1 || true
endscript
}
Как применить изменения?
Проверяем конфиг перед запуском:
logrotate -d /etc/logrotate.d/custom_logs
Применяем вручную (если нужно):
logrotate -f /etc/logrotate.d/custom_logs
Так логи не будут разрастаться, а сервер останется в порядке!
❤2
Как работает bind mount в Linux: руководство для начинающих
В Linux есть несколько способов монтирования файловых систем, но одним из самых гибких и незаметных является bind mount. Эта статья расскажет, как использовать bind mount для создания псевдонимов директорий, доступа к файлам, скрытым точками монтирования и даже для расширения возможностей chroot-окружений.
https://habr.com/ru/companies/flant/articles/884628/
original https://www.baeldung.com/linux/bind-mounts
В Linux есть несколько способов монтирования файловых систем, но одним из самых гибких и незаметных является bind mount. Эта статья расскажет, как использовать bind mount для создания псевдонимов директорий, доступа к файлам, скрытым точками монтирования и даже для расширения возможностей chroot-окружений.
https://habr.com/ru/companies/flant/articles/884628/
original https://www.baeldung.com/linux/bind-mounts
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
RustScan – Инструмент для быстрого сканирования портов
Данный проект может похвастаться высокой скоростью работы(Сканирует все 65 тыс. портов за 3 секунды), гибкой расширяемостью и адаптивным методом работы.
https://github.com/RustScan/RustScan
Данный проект может похвастаться высокой скоростью работы(Сканирует все 65 тыс. портов за 3 секунды), гибкой расширяемостью и адаптивным методом работы.
https://github.com/RustScan/RustScan
❤2
📌 Fail2Ban — это утилита для защиты серверов от брутфорс-атак и других видов несанкционированного доступа путем временной блокировки IP-адресов.
1. Установка Fail2Ban
Debian/Ubuntu:
CentOS/RHEL:
Arch Linux:
2. Управление сервисом
Запуск и включение Fail2Ban
Перезапуск и проверка статуса
3. Конфигурация Fail2Ban
Файл конфигурации по умолчанию:
Рекомендуется создать локальную копию:
Редактировать:
Основные параметры
4. Настройка фильтров
Фильтры хранятся в
Пример фильтра sshd.conf (`/etc/fail2ban/filter.d/sshd.conf`):
5. Настройка jail для SSH
Файл
6. Перезапуск и проверка работы
Проверить конкретный jail:
7. Разблокировка IP
Список заблокированных IP:
Разблокировать IP:
8. Логирование и отладка
Просмотр журнала Fail2Ban:
Лог-файл:
9. Полезные команды
Блокировка IP вручную
Добавление в белый список (whitelist)
Добавьте IP в
Удаление бана с IP
Удаление всех банов
10. Автозапуск после перезагрузки
11. Интеграция с UFW (Ubuntu)
Если используется UFW:
Добавьте:
Перезапустите Fail2Ban:
Эта шпаргалка содержит основные команды и конфигурации для защиты сервера от атак с помощью Fail2Ban
1. Установка Fail2Ban
Debian/Ubuntu:
sudo apt update && sudo apt install fail2ban -y
CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install fail2ban -y
Arch Linux:
sudo pacman -S fail2ban
2. Управление сервисом
Запуск и включение Fail2Ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Перезапуск и проверка статуса
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
3. Конфигурация Fail2Ban
Файл конфигурации по умолчанию:
/etc/fail2ban/jail.conf
Рекомендуется создать локальную копию:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Редактировать:
sudo nano /etc/fail2ban/jail.local
Основные параметры
[DEFAULT]
bantime = 10m # Время бана (10 минут)
findtime = 10m # Временной промежуток для поиска нарушений
maxretry = 5 # Количество неудачных попыток до блокировки
ignoreip = 127.0.0.1/8 # IP-адреса, которые не будут заблокированы
4. Настройка фильтров
Фильтры хранятся в
/etc/fail2ban/filter.d/
. Пример фильтра sshd.conf (`/etc/fail2ban/filter.d/sshd.conf`):
[Definition]
failregex = ^%(__prefix_line)sFailed password for .* from <HOST> port \d+ ssh2
ignoreregex =
5. Настройка jail для SSH
Файл
/etc/fail2ban/jail.local
:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # Для Debian/Ubuntu
# logpath = /var/log/secure # Для CentOS/RHEL
maxretry = 3
bantime = 1h
6. Перезапуск и проверка работы
sudo systemctl restart fail2ban
sudo fail2ban-client status
Проверить конкретный jail:
sudo fail2ban-client status sshd
7. Разблокировка IP
Список заблокированных IP:
sudo fail2ban-client status sshd
Разблокировать IP:
sudo fail2ban-client set sshd unbanip 192.168.1.100
8. Логирование и отладка
Просмотр журнала Fail2Ban:
sudo journalctl -u fail2ban --no-pager
Лог-файл:
sudo tail -f /var/log/fail2ban.log
9. Полезные команды
Блокировка IP вручную
sudo fail2ban-client set sshd banip 192.168.1.200
Добавление в белый список (whitelist)
Добавьте IP в
ignoreip
в /etc/fail2ban/jail.local
:
ignoreip = 127.0.0.1/8 192.168.1.100
Удаление бана с IP
sudo fail2ban-client set sshd unbanip 192.168.1.100
Удаление всех банов
sudo fail2ban-client set sshd unban --all
10. Автозапуск после перезагрузки
sudo systemctl enable fail2ban
11. Интеграция с UFW (Ubuntu)
Если используется UFW:
sudo nano /etc/fail2ban/jail.local
Добавьте:
[sshd]
enabled = true
backend = auto
port = ssh
filter = sshd
banaction = ufw
Перезапустите Fail2Ban:
sudo systemctl restart fail2ban
Эта шпаргалка содержит основные команды и конфигурации для защиты сервера от атак с помощью Fail2Ban
👍4❤3
Наглядное руководство по туннелированию SSH и переадресации портов
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения
https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения
https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
❤3
Утилиты на PowerShell для системных администраторов
Работая на первой линии тех.поддержки, я часто сталкивался с рутиной, особенно очень хотелось минимизировать подключение к рабочему столу пользователей для сбора информации и как-то автоматизировать этот процесс, что привело меня к осваиванию языка PowerShell и написанию скриптов, которые в последствии оформились в самостоятельные программы. Некоторые из них я решил выложить на GitHub, возможно для кого-то они будут полезны.
https://habr.com/ru/articles/799463/
https://github.com/Sync1er/ChernigovEugeniyUtilities
Работая на первой линии тех.поддержки, я часто сталкивался с рутиной, особенно очень хотелось минимизировать подключение к рабочему столу пользователей для сбора информации и как-то автоматизировать этот процесс, что привело меня к осваиванию языка PowerShell и написанию скриптов, которые в последствии оформились в самостоятельные программы. Некоторые из них я решил выложить на GitHub, возможно для кого-то они будут полезны.
https://habr.com/ru/articles/799463/
https://github.com/Sync1er/ChernigovEugeniyUtilities
❤7
ArcherySec — open-source инструмент, который позволяет проводить сканирование инфраструктуры
ArcherySec интегрируется с 80+ коммерческими и открытыми инструментами и имеет удобный ArcherySec CLI — локально развертываемый инструмент командной строки, предназначенный для запуска на любом хосте Linux.
https://github.com/archerysec/archerysec
export TIME_ZONE='Asia/Kolkata'
git clone https://github.com/archerysec/archerysec.git
cd archerysec
NAME=User [email protected] PASSWORD=admin@123A bash setup.sh
./run.sh
ArcherySec интегрируется с 80+ коммерческими и открытыми инструментами и имеет удобный ArcherySec CLI — локально развертываемый инструмент командной строки, предназначенный для запуска на любом хосте Linux.
https://github.com/archerysec/archerysec
❤2
Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS
Недавно я описал простой процесс загрузки последнего Microsoft Office с сайта Microsoft и его активации для Windows 10/11. До этого рассказывал более технические детали, оказавшимися читателям интересными, но сложноватыми. Один из вопросов, регулярно задаваемых в комментариях, был про Microsoft Office для Mac. Сейчас я расскажу, как иметь последнюю версию и не думать про активацию, поговорим о том, что делать тем, у кого давно установлена версия 2016, 2019 или 2021, следует ли думать про 2024 и как обновляться. Также в конце статьи расскажу о способе решения проблем с Microsoft Office, позволяющем чинить неработающую инсталляцию. Данная статья не техническая, в ней много картинок и рассуждений о том, когда, что и как устанавливать. Не пропагандирую ни решения Microsoft Office, ни его пиратства, просто рассказываю, как установить его при желании, без всяких торрентов.
Итак, для начала о версиях Microsoft Office для Mac. Исторически версии для Mac выходили на год позднее версий для Windows и несли в своем названии год выпуска, отличный от того, что у Windows версии. Например, Office 2004 для Mac (версия 11.0) вышел в мае 2004, на год позднее чем Office 2003 для Windows (тоже версия 11.0), вышедший в октябре 2003. Office 2008 для Mac (версия 12.0) вышла через год после Office 2007; Office 2011 для Mac (версия 14.0) через полгода после Office 2010. Далее для Windows Microsoft переключился на Click2Run технологию, и версии для Mac стали выходить практически одновременно и нести то же имя, что версии для Windows. Начиная с Office 2016 внутренняя версия продукта замерла на 16.x и на Windows и на Mac, продукт обновлялся, получал новые возможности и исправления, и в зависимости от купленной вами лицензии вы получали тот или иной набор возможностей.
https://habr.com/ru/companies/timeweb/articles/840166/
Недавно я описал простой процесс загрузки последнего Microsoft Office с сайта Microsoft и его активации для Windows 10/11. До этого рассказывал более технические детали, оказавшимися читателям интересными, но сложноватыми. Один из вопросов, регулярно задаваемых в комментариях, был про Microsoft Office для Mac. Сейчас я расскажу, как иметь последнюю версию и не думать про активацию, поговорим о том, что делать тем, у кого давно установлена версия 2016, 2019 или 2021, следует ли думать про 2024 и как обновляться. Также в конце статьи расскажу о способе решения проблем с Microsoft Office, позволяющем чинить неработающую инсталляцию. Данная статья не техническая, в ней много картинок и рассуждений о том, когда, что и как устанавливать. Не пропагандирую ни решения Microsoft Office, ни его пиратства, просто рассказываю, как установить его при желании, без всяких торрентов.
Итак, для начала о версиях Microsoft Office для Mac. Исторически версии для Mac выходили на год позднее версий для Windows и несли в своем названии год выпуска, отличный от того, что у Windows версии. Например, Office 2004 для Mac (версия 11.0) вышел в мае 2004, на год позднее чем Office 2003 для Windows (тоже версия 11.0), вышедший в октябре 2003. Office 2008 для Mac (версия 12.0) вышла через год после Office 2007; Office 2011 для Mac (версия 14.0) через полгода после Office 2010. Далее для Windows Microsoft переключился на Click2Run технологию, и версии для Mac стали выходить практически одновременно и нести то же имя, что версии для Windows. Начиная с Office 2016 внутренняя версия продукта замерла на 16.x и на Windows и на Mac, продукт обновлялся, получал новые возможности и исправления, и в зависимости от купленной вами лицензии вы получали тот или иной набор возможностей.
https://habr.com/ru/companies/timeweb/articles/840166/
👍4❤2
Шпаргалка по PowerShell
Основные команды
-
-
-
-
-
-
Навигация по файловой системе
-
-
-
-
Работа с файлами и папками
-
-
-
-
Работа с текстом и выводом
-
-
-
-
-
-
Переменные
-
-
-
Условия и циклы
-
-
-
Работа с процессами и службами
-
-
-
-
Фильтрация и сортировка
-
-
Примеры:
1. Получение списка файлов:
2. Копирование файла:
3. Вывод чисел от 1 до 10:
4. Фильтрация процессов по имени:
Основные команды
-
Get-Help <команда>
– получить справку по команде-
Get-Command
– список доступных команд-
Get-Command -Module <модуль>
– команды из конкретного модуля-
Get-Alias
– список псевдонимов команд-
Get-Process
– список запущенных процессов-
Get-Service
– список службНавигация по файловой системе
-
Get-Location
– текущий путь-
Set-Location <путь>
– перейти к каталогу-
Get-ChildItem
или ls
– просмотр содержимого каталога-
New-Item -Path <путь> -Name <имя> -ItemType <тип>
– создать файл или папкуРабота с файлами и папками
-
Copy-Item -Path <источник> -Destination <назначение>
– копировать файл/папку-
Move-Item -Path <источник> -Destination <назначение>
– переместить файл/папку-
Remove-Item -Path <путь>
– удалить файл/папку-
Rename-Item -Path <путь> -NewName <новое имя>
– переименовать файл/папкуРабота с текстом и выводом
-
Write-Output "текст"
– вывод текста-
Write-Host "текст"
– вывод текста на экран-
Read-Host -Prompt "вопрос"
– ввод данных от пользователя-
Get-Content <файл>
– чтение содержимого файла-
Set-Content <файл>
– запись в файл-
Add-Content <файл>
– добавление текста в файлПеременные
-
$<имя_переменной> = значение
– создание переменной-
$var += значение
– добавление к значению переменной-
$null
– пустое значениеУсловия и циклы
-
if (<условие>) { <действие> }
– условие if-
foreach ($item in $array) { <действие> }
– цикл foreach
-
while (<условие>) { <действие> }
– цикл while
Работа с процессами и службами
-
Start-Process <программа>
– запуск программы-
Stop-Process -Name <имя>
– завершение процесса-
Start-Service <служба>
– запуск службы-
Stop-Service <служба>
– остановка службыФильтрация и сортировка
-
Where-Object { <условие> }
– фильтрация объектов-
Sort-Object <свойство>
– сортировка объектовПримеры:
1. Получение списка файлов:
Get-ChildItem -Path "C:\папка"
2. Копирование файла:
Copy-Item -Path "C:\путь\файл.txt" -Destination "D:\копия\файл.txt"
3. Вывод чисел от 1 до 10:
for ($i = 1; $i -le 10; $i++) { Write-Output $i }
4. Фильтрация процессов по имени:
Get-Process | Where-Object { $_.Name -eq "notepad" }
❤4