MySQL
Auto insert with TimeStamp
Copy Database
Create User
--all DB
Delete User
Change Password
--root
CSV Import / Export
Tips
--Create table with same type. data is null.
Export to CSV
Auto insert with TimeStamp
CREATE TABLE test (
id INTEGER,
txt VARCHAR(20),
ts1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Copy Database
mysqldump -u root -p db1 > dump.sql
mysqladmin -u root -p create db2
mysql -u root -p db2 < dump.sql
Create User
mysql> grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on DBNAME.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;
--all DB
mysql> grant all privileges on *.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on *.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;
Delete User
mysql> drop user USERNAME;
or
mysql> delete from mysql.user where user = 'USERNAME';
Change Password
--User
mysql> set password for USER@"%" = password('PASSWORD');
mysql> set password for USER@localhost = password('PASSWORD');
--root
mysql> set password for root=password('PASSWORD');
mysql> set password for root@localhost=password('PASSWORD');
CSV Import / Export
ERROR 1045 (28000) at line 1: Access denied for user 'USER'@'localhost' (using password: YES)
mysql> grant file on *.* to USER@localhost;
Tips
--Create table as same data and type
mysql> create table newtable as select * from orgtable;
--Create table with same type. data is null.
mysql> create table newtable as select * from orgtable where id is null;
Export to CSV
# mysql -uUSER -pPASS DATABASE -e "select * from TABLE;" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/test.csv
Эффективный разбор лог-файлов Linux!
15 примеров, которые администраторы Linux могут использовать ежедневно 👇.
1/ Поиск определенного текста в файле журнала:
Эта команда ищет слово "error" в файле syslog.
2/ Подсчитайте вхождения определенного шаблона:
Эта команда подсчитывает вхождения слова "error" в файл syslog.
3/ Отфильтруйте журналы по диапазону дат:
Эта команда фильтрует записи syslog за 1 апреля.
4/ Просматривайте журналы в режиме реального времени:
Эта команда позволяет следить за файлом syslog в режиме реального времени.
5/ Найдите наиболее часто встречающиеся ошибки:
Эта команда подсчитывает и сортирует наиболее частые сообщения об ошибках.
6/ Выполните поиск в нескольких файлах журнала одновременно:
Эта команда ищет "error" в журналах ошибок syslog и Nginx.
7/ Извлеките определенные поля из записей журнала:
Эта команда извлекает и выводит определенные поля из записей журнала доступа Nginx.
8/ Поиск IP-адресов:
Эта команда извлекает IP-адреса из записей журнала доступа Nginx.
9/ Определите основные шаблоны доступа:
Эта команда определяет наиболее часто используемые URL-адреса в журналах доступа Nginx.
10/ Поиск определенных кодов состояния HTTP:
Эта команда ищет ошибки HTTP 404 в журналах доступа Nginx.
11/ Определите основных потребителей трафика:
Эта команда определяет URL-адреса с наибольшим потреблением трафика в журналах доступа Nginx.
12/ Фильтруйте журналы по IP-адресу источника:
Эта команда фильтрует журналы аутентификации по определенному IP-адресу.
13/ Поиск неудачных попыток входа в систему:
Эта команда ищет неудачные попытки входа в систему SSH в журналах auth.
14/ Проверьте время запуска и выключения системы:
Эта команда извлекает события запуска и выключения системы из syslog.
15/ Найдите процессы, потребляющие большое количество CPU:
Эта команда помогает выявить процессы, вызывающие повышенное потребление ЦП, в системных журналах.
15 примеров, которые администраторы Linux могут использовать ежедневно 👇.
1/ Поиск определенного текста в файле журнала:
grep "error" /var/log/syslog
Эта команда ищет слово "error" в файле syslog.
2/ Подсчитайте вхождения определенного шаблона:
grep -c "error" /var/log/syslog
Эта команда подсчитывает вхождения слова "error" в файл syslog.
3/ Отфильтруйте журналы по диапазону дат:
grep "Apr 1" /var/log/syslog
Эта команда фильтрует записи syslog за 1 апреля.
4/ Просматривайте журналы в режиме реального времени:
tail -f /var/log/syslog
Эта команда позволяет следить за файлом syslog в режиме реального времени.
5/ Найдите наиболее часто встречающиеся ошибки:
grep "error" /var/log/syslog | sort | uniq -c | sort -nr
Эта команда подсчитывает и сортирует наиболее частые сообщения об ошибках.
6/ Выполните поиск в нескольких файлах журнала одновременно:
grep "error" /var/log/syslog /var/log/nginx/error.log
Эта команда ищет "error" в журналах ошибок syslog и Nginx.
7/ Извлеките определенные поля из записей журнала:
awk '{print $4, $6}' /var/log/nginx/access.log
Эта команда извлекает и выводит определенные поля из записей журнала доступа Nginx.
8/ Поиск IP-адресов:
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /var/log/nginx/access.log
Эта команда извлекает IP-адреса из записей журнала доступа Nginx.
9/ Определите основные шаблоны доступа:
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
Эта команда определяет наиболее часто используемые URL-адреса в журналах доступа Nginx.
10/ Поиск определенных кодов состояния HTTP:
grep "404" /var/log/nginx/access.log
Эта команда ищет ошибки HTTP 404 в журналах доступа Nginx.
11/ Определите основных потребителей трафика:
awk '{print $10, $7}' /var/log/nginx/access.log | sort -rh | head
Эта команда определяет URL-адреса с наибольшим потреблением трафика в журналах доступа Nginx.
12/ Фильтруйте журналы по IP-адресу источника:
grep "192.168.1.100" /var/log/auth.log
Эта команда фильтрует журналы аутентификации по определенному IP-адресу.
13/ Поиск неудачных попыток входа в систему:
grep "Failed password" /var/log/auth.log
Эта команда ищет неудачные попытки входа в систему SSH в журналах auth.
14/ Проверьте время запуска и выключения системы:
grep "systemd" /var/log/syslog | grep "Starting" | grep "Stopping"
Эта команда извлекает события запуска и выключения системы из syslog.
15/ Найдите процессы, потребляющие большое количество CPU:
grep "CPU" /var/log/syslog
Эта команда помогает выявить процессы, вызывающие повышенное потребление ЦП, в системных журналах.
Типы файлов Linux
В GNU/Linux как и других Unix-подобных операционных системах понятие типа файла не связано с расширением файла (несколькими буквами после точки в конце имени), как это обстоит в Windows.
https://telegra.ph/Tipy-fajlov-Linux-04-20
В GNU/Linux как и других Unix-подобных операционных системах понятие типа файла не связано с расширением файла (несколькими буквами после точки в конце имени), как это обстоит в Windows.
https://telegra.ph/Tipy-fajlov-Linux-04-20
This media is not supported in your browser
VIEW IN TELEGRAM
Шпаргалка по сетевой безопасности
Памятка/шпаргалка по SQL
Изучение настоящей шпаргалки не сделает вас мастером SQL, но позволит получить общее представление об этом языке программирования и возможностях, которые он предоставляет. Рассматриваемые в шпаргалке возможности являются общими для всех или большинства диалектов SQL.
https://habr.com/ru/articles/564390/
Изучение настоящей шпаргалки не сделает вас мастером SQL, но позволит получить общее представление об этом языке программирования и возможностях, которые он предоставляет. Рассматриваемые в шпаргалке возможности являются общими для всех или большинства диалектов SQL.
https://habr.com/ru/articles/564390/
This media is not supported in your browser
VIEW IN TELEGRAM
Удаление строк, соответствующих шаблону, в Vim
•
•
https://vimtricks.com/p/remove-lines-matching-a-pattern-in-vim/
•
:g/pattern/d
— удалить строки, соответствующие шаблону•
:g!/pattern/d
— удалить строки, не соответствующие шаблонуhttps://vimtricks.com/p/remove-lines-matching-a-pattern-in-vim/
SID
Идентификатор безопасности security identifier (SID) в Windows (а также в Active Directory) — это уникальное значение для каждого объекта, которое используется для его однозначной идентификации. Вместо имён пользователей и компьютеров в правилах доступа используется SID. Он состоит из базовой части и добавочной. Базовая обозначает основной объект (ПК или домен), добавочная подобъекты в нём (пользователи и группы домена). Пример:
SID всегда уникален и не может совпадать с SID другого объекта как на локальном ПК так и с SID'ами других ПК и пользователей, в том числе доменных.
Получить информацию о SID можно с помощью команд Инструментария Управления Windows, WMIC (Windows Management Instrumentation Command).
SID пользователей (в этот список попадают не только локальные пользователи, но и доменные - все с кем данный компьютер имел дело):
SID групп:
Идентификатор безопасности security identifier (SID) в Windows (а также в Active Directory) — это уникальное значение для каждого объекта, которое используется для его однозначной идентификации. Вместо имён пользователей и компьютеров в правилах доступа используется SID. Он состоит из базовой части и добавочной. Базовая обозначает основной объект (ПК или домен), добавочная подобъекты в нём (пользователи и группы домена). Пример:
S-1-5-21-705789055-1138749243-1717242729-1108
SID всегда уникален и не может совпадать с SID другого объекта как на локальном ПК так и с SID'ами других ПК и пользователей, в том числе доменных.
Получить информацию о SID можно с помощью команд Инструментария Управления Windows, WMIC (Windows Management Instrumentation Command).
SID пользователей (в этот список попадают не только локальные пользователи, но и доменные - все с кем данный компьютер имел дело):
wmic useraccount get name, sid
SID групп:
wmic group get name, sid
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Зажигаем огонь в терминале с помощью команды:
Как установить libaa-bin в Ubuntu / Debian
Примеры программ с использованием aalib
http://aa-project.sourceforge.net/aalib/
aafire
Как установить libaa-bin в Ubuntu / Debian
sudo apt update
sudo apt install libaa-bin
Примеры программ с использованием aalib
http://aa-project.sourceforge.net/aalib/
Примеры скриптов PowerShell для системного администрирования
Управление текущим расположением
Работа с файлами и папками
Работа с файлами, папками и разделами реестра
Работа с записями реестра
https://bookflow.ru/primery-skriptov-powershell-dlya-sistemnogo-administrirovaniya/
Управление текущим расположением
Работа с файлами и папками
Работа с файлами, папками и разделами реестра
Работа с записями реестра
https://bookflow.ru/primery-skriptov-powershell-dlya-sistemnogo-administrirovaniya/
Пример 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="[email protected]"
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
Как провести Тех. обслуживание сервера с уведомлением пользователей?
Для начала создаем пустой файл
Переходим к уведомлениям, возможно кто-то в данный момент работает в терминале.
Воспользуемся утилитой wall.
Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.
Запускаем команду:
Все кто подключен к серверу, получают сообщение:
И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall можно спамить определенным группам пользователей.
В указанное время запускаем ассасина:
Выгнали всех с сервера, кроме root’а и проводим технические работы, удаляем /etc/nologin.
Wall можно заменить например на такое:
Но тут сообщение уйдет конкретному пользователю user. Конечно, если по какой-то причине, в системе отсутствует wall, можно и через цикл выгрести всех юзеров и через echo отправить им уведомление.
write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.
Или так:
Для начала создаем пустой файл
/etc/nologin
. Включаем возможность заходить под root
. Теперь только root
сможет авторизоваться по ssh
. Переходим к уведомлениям, возможно кто-то в данный момент работает в терминале.
Воспользуемся утилитой wall.
Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.
Запускаем команду:
wall "... текст сообщения ..."
Все кто подключен к серверу, получают сообщение:
... текст сообщения ...
И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall можно спамить определенным группам пользователей.
В указанное время запускаем ассасина:
pkill -9 -u `who | awk '{print $1}'| grep -v root|head -1
Выгнали всех с сервера, кроме root’а и проводим технические работы, удаляем /etc/nologin.
Wall можно заменить например на такое:
echo "какой-то текст" | write user
Но тут сообщение уйдет конкретному пользователю user. Конечно, если по какой-то причине, в системе отсутствует wall, можно и через цикл выгрести всех юзеров и через echo отправить им уведомление.
write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.
Или так:
echo "какой-то текст" > /dev/pts/1
Iptables - Официальная документация
Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).
https://help.ubuntu.ru/wiki/iptables
Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).
https://help.ubuntu.ru/wiki/iptables
📌 Понимание системных журналов Linux
Системные журналы, которые обычно находятся в каталоге /var/log на Linux-системах, крайне важны для мониторинга и устранения неполадок. Краткое описание основных журналов:
syslog: Основной универсальный журнал системы, куда попадают сообщения от различных сервисов и приложений. Многие другие логи направляют сообщения именно сюда.
auth.log: Содержит сообщения, связанные с аутентификацией: успешные и неудачные попытки входа, смена пароля, события проверки пользователей.
kern.log: Фиксирует сообщения ядра: ошибки оборудования, загрузку модулей ядра и другие активности, связанные с ядром системы.
messages: Универсальный журнал, в котором записываются разные системные события: загрузка и выключение системы, а также другие события общего характера.
dmesg: Отображает кольцевой буфер сообщений ядра — в реальном времени показывает события, связанные с ядром и обнаружением оборудования при запуске системы.
cron: Журналирует работу заданий cron и запланированных задач: время выполнения, а также ошибки, возникшие при выполнении.
secure: Записывает сообщения, связанные с безопасностью: попытки аутентификации, эскалация привилегий и другие важные для безопасности события.
apache/access.log и apache/error.log: Журналы веб-сервера Apache. access.log хранит логи HTTP-доступа, а error.log — ошибки и предупреждения Apache.
nginx/access.log и nginx/error.log: Аналогичные журналы для веб-сервера Nginx, фиксируют события доступа и ошибки.
mysql/error.log: Содержит ошибки и предупреждения MySQL-сервера, включая ошибки запуска, сбои запросов и аварийные завершения работы базы данных.
Эти журналы предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при поиске и устранении неполадок. Регулярный мониторинг и анализ этих логов позволяют поддерживать стабильность системы и выявлять потенциальные проблемы до их возникновения.
Системные журналы, которые обычно находятся в каталоге /var/log на Linux-системах, крайне важны для мониторинга и устранения неполадок. Краткое описание основных журналов:
syslog: Основной универсальный журнал системы, куда попадают сообщения от различных сервисов и приложений. Многие другие логи направляют сообщения именно сюда.
auth.log: Содержит сообщения, связанные с аутентификацией: успешные и неудачные попытки входа, смена пароля, события проверки пользователей.
kern.log: Фиксирует сообщения ядра: ошибки оборудования, загрузку модулей ядра и другие активности, связанные с ядром системы.
messages: Универсальный журнал, в котором записываются разные системные события: загрузка и выключение системы, а также другие события общего характера.
dmesg: Отображает кольцевой буфер сообщений ядра — в реальном времени показывает события, связанные с ядром и обнаружением оборудования при запуске системы.
cron: Журналирует работу заданий cron и запланированных задач: время выполнения, а также ошибки, возникшие при выполнении.
secure: Записывает сообщения, связанные с безопасностью: попытки аутентификации, эскалация привилегий и другие важные для безопасности события.
apache/access.log и apache/error.log: Журналы веб-сервера Apache. access.log хранит логи HTTP-доступа, а error.log — ошибки и предупреждения Apache.
nginx/access.log и nginx/error.log: Аналогичные журналы для веб-сервера Nginx, фиксируют события доступа и ошибки.
mysql/error.log: Содержит ошибки и предупреждения MySQL-сервера, включая ошибки запуска, сбои запросов и аварийные завершения работы базы данных.
Эти журналы предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при поиске и устранении неполадок. Регулярный мониторинг и анализ этих логов позволяют поддерживать стабильность системы и выявлять потенциальные проблемы до их возникновения.
Утилита динамического мониторинга процессов Nmon
Это утилита измерения и настройки производительности. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах.
Устанавливается командой:
Для запуска утилиты необходимо выполнить команду:
https://telegra.ph/Utilita-dinamicheskogo-monitoringa-processov-Nmon-03-11
Это утилита измерения и настройки производительности. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах.
Устанавливается командой:
sudo pamcan -S nmon
Для запуска утилиты необходимо выполнить команду:
nmon
https://telegra.ph/Utilita-dinamicheskogo-monitoringa-processov-Nmon-03-11
Удаленный запуск скрипта на сервере Linux
Удаленный запуск скрипта повторяющихся задач повышают эффективность системного администрирования. Это отлично подходит для локальных машин, но что если вы контролируете удаленные серверы? Можете ли вы запустить локальный скрипт на удаленном компьютере? Да!
https://bookflow.ru/udalennyj-zapusk-skripta-na-servere-linux/
Удаленный запуск скрипта повторяющихся задач повышают эффективность системного администрирования. Это отлично подходит для локальных машин, но что если вы контролируете удаленные серверы? Можете ли вы запустить локальный скрипт на удаленном компьютере? Да!
https://bookflow.ru/udalennyj-zapusk-skripta-na-servere-linux/
Stress – это инструмент командной строки Linux, который позволяет нагружать процессор, память, систему ввода-вывода и диск
Установим stress на CentOS, RHEL, Fedora
Установим stress на Ubuntu и Debian
Синтаксис stress
Увеличить нагрузку на процессор
Опция -c или –cpu использует заданное количество воркеров на функции sqrt(), чтобы увеличить нагрузку на процессор и заставить его работать интенсивнее.
Следующая команда будет непрерывно загружать 4 ядра процессора
Задаем тайм-аут для стресса
Чтобы задать работу на определенное время, вы можете использовать опцию -t или –timeout.
Следующие команды будут нагружать четыре ядра процессора только в течение 10 с.
Увеличение нагрузки на память
Опция -v или --vm позволяет вам нагрузить виртуальную память.
Увеличение нагрузки ввода-вывода на диск
Вы можете увеличить нагрузку ввода-вывода с помощью опции -i или –io.
Создаем нагрузка на систему с помощью двух процессов, связанных с вводом-выводом.
Мы проверим загрузку IO диска с помощью команды iostat.
У меня на сервере доступны диски /dev/vda и /dev/vdb, вы можете проверить активный диск с помощью lsblk или fdisk или любой другой команды.
Если вы выполните эту команду без каких-либо аргументов, то она покажет дисковые IO для всех доступных дисков.
Увеличение нагрузки на диск
Опция -d или –hdd используется для создания нагрузки на диск.
Для увеличения нагрузки на диск мы используем следующую команду
Посмотрим пропускную способность диска с помощью команды vmstat
Увеличение нагрузки на несколько системных ресурсов (ЦП, память, ввод/вывод)
Команде stress можно задать несколько нагрузок.
В следующем примере используется 4 ядра ЦП, 2 виртуальных памяти и 1 процесс ввода-вывода для нагрузки на систему в течение 20 секунд.
Установим stress на CentOS, RHEL, Fedora
sudo dnf install stress
Установим stress на Ubuntu и Debian
sudo apt install stress
Синтаксис stress
stress [OPTION [ARG]]
Увеличить нагрузку на процессор
Опция -c или –cpu использует заданное количество воркеров на функции sqrt(), чтобы увеличить нагрузку на процессор и заставить его работать интенсивнее.
stress -c N
или stress --cpu N
Следующая команда будет непрерывно загружать 4 ядра процессора
stress --cpu 4
Задаем тайм-аут для стресса
Чтобы задать работу на определенное время, вы можете использовать опцию -t или –timeout.
Следующие команды будут нагружать четыре ядра процессора только в течение 10 с.
stress -c 4 -t 10
или stress --cpu 4 --timeout 10
Увеличение нагрузки на память
Опция -v или --vm позволяет вам нагрузить виртуальную память.
[simterm] $ stress -v N
Увеличение нагрузки ввода-вывода на диск
Вы можете увеличить нагрузку ввода-вывода с помощью опции -i или –io.
stress -i N
или stress --io N
Создаем нагрузка на систему с помощью двух процессов, связанных с вводом-выводом.
# stress --io 100
Мы проверим загрузку IO диска с помощью команды iostat.
У меня на сервере доступны диски /dev/vda и /dev/vdb, вы можете проверить активный диск с помощью lsblk или fdisk или любой другой команды.
Если вы выполните эту команду без каких-либо аргументов, то она покажет дисковые IO для всех доступных дисков.
iostat -d /dev/vda -d /dev/vdb 1
Увеличение нагрузки на диск
Опция -d или –hdd используется для создания нагрузки на диск.
stress -d N
или stress --hdd N
Для увеличения нагрузки на диск мы используем следующую команду
stress --hdd 100
Посмотрим пропускную способность диска с помощью команды vmstat
vmstat 1 100
Увеличение нагрузки на несколько системных ресурсов (ЦП, память, ввод/вывод)
Команде stress можно задать несколько нагрузок.
В следующем примере используется 4 ядра ЦП, 2 виртуальных памяти и 1 процесс ввода-вывода для нагрузки на систему в течение 20 секунд.
stress --cpu 4 --vm 2 --io 1 -t 20
🔐 5 шагов для защиты SSH: от порта до fail2ban
Если ты всё ещё держишь SSH по умолчанию и без ограничений — пора это исправлять. Вот 5 базовых, но мощных шагов, которые сильно усложнят жизнь злоумышленнику:
1️⃣ Сменить порт SSH
По умолчанию — порт 22. Все боты мира сканируют именно его.
Как изменить:
Не забудь открыть новый порт в фаерволе и перезапустить SSH:
2️⃣ Отключить вход по паролю
Пароли — дырка в безопасности. Только ключи.
В
Используй SSH-ключи:
3️⃣ Ограничить доступ по IP
Открывать SSH всему миру — плохая идея.
Пример для UFW:
Аналогично — через
4️⃣ Включить двухфакторную аутентификацию (2FA)
Устанавливаем Google Authenticator:
Добавить в
В
5️⃣ Настроить fail2ban
Автоматическая блокировка IP после X неудачных попыток входа.
Установка:
Пример конфига
Стартуем:
Проверяй, как тебя видит мир:
Если ты всё ещё держишь SSH по умолчанию и без ограничений — пора это исправлять. Вот 5 базовых, но мощных шагов, которые сильно усложнят жизнь злоумышленнику:
1️⃣ Сменить порт SSH
По умолчанию — порт 22. Все боты мира сканируют именно его.
Как изменить:
sudo nano /etc/ssh/sshd_config
# Найди строку:
Port 22
# Измени, например, на:
Port 2222
Не забудь открыть новый порт в фаерволе и перезапустить SSH:
sudo systemctl restart sshd
2️⃣ Отключить вход по паролю
Пароли — дырка в безопасности. Только ключи.
В
sshd_config
:
PasswordAuthentication no
PermitRootLogin no
Используй SSH-ключи:
ssh-keygen
ssh-copy-id user@host
3️⃣ Ограничить доступ по IP
Открывать SSH всему миру — плохая идея.
Пример для UFW:
sudo ufw allow from <твой_IP> to any port 2222 proto tcp
sudo ufw enable
Аналогично — через
iptables
или firewalld
.4️⃣ Включить двухфакторную аутентификацию (2FA)
Устанавливаем Google Authenticator:
sudo apt install libpam-google-authenticator
google-authenticator
Добавить в
/etc/pam.d/sshd
:
auth required pam_google_authenticator.so
В
sshd_config
:
ChallengeResponseAuthentication yes
5️⃣ Настроить fail2ban
Автоматическая блокировка IP после X неудачных попыток входа.
Установка:
sudo apt install fail2ban
Пример конфига
/etc/fail2ban/jail.local
:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
Стартуем:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Проверяй, как тебя видит мир:
ss -tuln | grep ssh
Программа проверки истечения срока действия SSL-сертификатов
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check