Шпаргалка по скриптам Bash
Основы написания скриптов на Bash
Условные операторы
Циклы Bash
Арифметические операторы
Арифметические условные операторы
Операторы сравнения строк
#Шпаргалка@linux_odmin
👉 @linux_odmin
Основы написания скриптов на Bash
Условные операторы
Циклы Bash
Арифметические операторы
Арифметические условные операторы
Операторы сравнения строк
#Шпаргалка@linux_odmin
👉 @linux_odmin
👍4
Шпаргалка по PostgreSQL
Перенес в my-mans
-- подключиться к postgres (утилита psql)
-- команды помощи
-- выход из консоли postgres
-- создать базу
-- подключиться к базе
-- создать таблицу my_table с полями field1 (тип целочисленный, обязательное для заполнения), field2 (тип строка 255 символов)
-- вывести все таблицы
-- удалить таблицу my_table
-- внести в таблицу запись
-- вывести записи
-- сортировка при выводе
-- изменить запись таблицы (поле field2 строки, где field1 = 1);
-- удаление данных
-- ***********************************
-- нормализация (разбиение таблиц на несколько)
-- ***********************************
-- Constraints - ограничения типов данных
-- Первичный и внешние ключи
-- при создании записи таблицы с отсутствующим внешним ключом выведется запись об ошибке. будут выводится ошибки и в иных случаях, когда будут нарушаться связи.
);
-- вывод данных из нескольких таблиц со связанными полями
-- алиасы, нужны для удобства. Также, при выводе наименование таблиц или полей выводится алиасом, при его наличии.
#Шпаргалка@linux_odmin
👉 @linux_odmin
Перенес в my-mans
-- подключиться к postgres (утилита psql)
psql -U postgres-- команды помощи
help
\h -- помощь по командам SQL
\? -- помощь по командам psql-- выход из консоли postgres
\q-- создать базу
CREATE DATABASE my_database;-- подключиться к базе
\connect my_database;-- создать таблицу my_table с полями field1 (тип целочисленный, обязательное для заполнения), field2 (тип строка 255 символов)
CREATE TABLE my_table (field1 INT NOT NULL, field2 VARCHAR(255));-- вывести все таблицы
\d-- удалить таблицу my_table
DROP TABLE my_table;-- внести в таблицу запись
INSERT INTO my_table(field1, field2) VALUES(1,'Any text value');-- вывести записи
SELECT * FROM my_table; -- все записи
SELECT * FROM my_table WHERE field1 = 1; -- все, где field1 = 1
SELECT * FROM my_table WHERE field1 != 1; -- и т д
SELECT * FROM my_table WHERE field1 > 1;
SELECT * FROM my_table LIMIT 100; -- первые 100 записей;
SELECT * FROM my_table LIMIT 100 OFFSET 200; -- запись с 201 по 300;-- сортировка при выводе
SELECT * FROM my_table ORDER BY field1 ASC; -- вывести отсортировав в возрастающем порядке
SELECT * FROM my_table ORDER BY field1 DESC; -- вывести отсортировав в убывающем порядке-- изменить запись таблицы (поле field2 строки, где field1 = 1);
UPDATE my_table SET field2 = 'Other text value' WHERE field1 = 1;-- удаление данных
DELETE FROM my_table; -- удалить все записи;
DELETE FROM my_table WHERE field1 = 1; -- удалить запись где field1 = 1;-- ***********************************
-- нормализация (разбиение таблиц на несколько)
-- ***********************************
-- Constraints - ограничения типов данных
CREATE TABLE my_table (
field1 INT NOT NULL, -- запись обязательна
field2 VARCHAR(255) NOT NULL UNIQUE, -- запись должна быть уникальной
field3 BOOLEAN NOT NULL DEFAULT TRUE -- значение по умолчанию - true
...
);-- Первичный и внешние ключи
-- при создании записи таблицы с отсутствующим внешним ключом выведется запись об ошибке. будут выводится ошибки и в иных случаях, когда будут нарушаться связи.
CREATE TABLE IF NOT EXISTS my_table ( -- ключ IF NOT EXISTS проверяет, существует ли таблица. field1 SERIAL INT PRIMARY KEY, -- при добавлении PRIMARY KEY поле автоматически наследует ограничения NOT NULL и UNIQUE, и создается индекс. SERIAL тип данных являющийся автоматически увеличивающимся счетчиком (аналог ключа AUTOINCREMENT в Sqlite) field2 VARCHAR(255) NOT NULL UNIQUE,
field3 INT NOT NULL,
FOREIGN KEY(field3) REFERENCES other_table(field_name) -- поле ссылается на внешнюю таблицу other_table на поле field_name, которое обязательно должно быть с PRIMARY KEY);
-- вывод данных из нескольких таблиц со связанными полями
SELECT * FROM table_1 LEFT JOIN table_2 ON (table_2.field = table_1.field);-- алиасы, нужны для удобства. Также, при выводе наименование таблиц или полей выводится алиасом, при его наличии.
SELECT * FROM table_1 as tab1 LEFT JOIN table_2 as tab2 ON (tab1.field = tab2.field);#Шпаргалка@linux_odmin
👉 @linux_odmin
👍3
Шпаргалка по PostgreSQL
-- ***********************************
-- Редактирование таблиц, расширенные возможности SELECT, функции
-- ***********************************
-- Добавление поля в таблицу
-- добавление поля с автоинкрементом и primary key в таблицу
-- Удаление поля из таблицы
-- переименовать поле
-- сменить тип данных
-- изменить значение по умолчанию
-- добавить/удалить constraint NOT NULL
-- переименовать таблицу
-- Расширенные возможности SELECT
-- вывод уникальных записей
-- группирование записей
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений, где количество повторений больше 3
#Шпаргалка@linux_odmin
👉 @linux_odmin
-- ***********************************
-- Редактирование таблиц, расширенные возможности SELECT, функции
-- ***********************************
-- Добавление поля в таблицу
ALTER TABLE table_name ADD COLUMN new_field
BOOLEAN NOT NULL DEFAULT TRUE;-- добавление поля с автоинкрементом и primary key в таблицу
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;-- Удаление поля из таблицы
ALTER TABLE table_name DROP COLUMN new_field;-- переименовать поле
ALTER TABLE table_name RENAME old_field TO new_field;-- сменить тип данных
ALTER TABLE table_name ALTER COLUMN any_field SET
DATA TYPE VARCHAR(255);-- изменить значение по умолчанию
ALTER TABLE table_name ALTER COLUMN any_field SET
DEFAULT 'new value';-- добавить/удалить constraint NOT NULL
ALTER TABLE table_name ALTER COLUMN any_field
SET|DROP NOT NULL;-- переименовать таблицу
ALTER TABLE table_name RENAME TO new_table_name;-- Расширенные возможности SELECT
SELECT * FROM table WHERE field1 LIKE 'value'; -- field1 = 'value'
SELECT * FROM table WHERE field1 LIKE 'val%'; -- field1 начинается с 'val'
SELECT * FROM table WHERE field1 LIKE '%lue'; -- field1 заканчивается на 'lue'
SELECT * FROM table WHERE field1 LIKE '%e%'; -- field1 содержит 'e'
-- несколько условий
SELECT * FROM table WHERE field1 = 'value' AND field2 > 'value2';
SELECT * FROM table WHERE field1 = 'value' OR field2 > 'value2';-- вывод уникальных записей
SELECT DISTINCT field1 FROM table;-- группирование записей
SELECT field1, COUNT(field1) FROM table GROUP BY field1;-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений
SELECT field1, COUNT(field1) FROM table GROUP BY field1
HAVING COUNT(field) > 3;-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений, где количество повторений больше 3
#Шпаргалка@linux_odmin
👉 @linux_odmin
👍5
Nginx-Lua-Anti-DDoS
Этот репозиторий предоставляет Lua-скрипт для защиты серверов на базе Nginx от DDoS-атак. Он использует возможности OpenResty и модуля ngx_lua для фильтрации трафика, ограничения запросов и обнаружения подозрительных IP.
🔹 Основные функции:
- Проверка и блокировка подозрительных клиентов.
- Ограничение количества запросов (rate limiting).
- Обнаружение автоматизированных атак и ботов.
- Интеграция с Cloudflare, iptables и другими системами.
🔹 Требования:
- Nginx с поддержкой Lua (через OpenResty или сборку с модулем `ngx_http_lua_module`).
- Возможность редактирования конфигурации сервера.
https://github.com/C0nw0nk/Nginx-Lua-Anti-DDoS
#Linux@linux_odmin #Security@linux_odmin
👉 @linux_odmin
Этот репозиторий предоставляет Lua-скрипт для защиты серверов на базе Nginx от DDoS-атак. Он использует возможности OpenResty и модуля ngx_lua для фильтрации трафика, ограничения запросов и обнаружения подозрительных IP.
🔹 Основные функции:
- Проверка и блокировка подозрительных клиентов.
- Ограничение количества запросов (rate limiting).
- Обнаружение автоматизированных атак и ботов.
- Интеграция с Cloudflare, iptables и другими системами.
🔹 Требования:
- Nginx с поддержкой Lua (через OpenResty или сборку с модулем `ngx_http_lua_module`).
- Возможность редактирования конфигурации сервера.
https://github.com/C0nw0nk/Nginx-Lua-Anti-DDoS
#Linux@linux_odmin #Security@linux_odmin
👉 @linux_odmin
👍4
Как работает HTTPS?
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
#Шпаргалка@linux_odmin
👉 @linux_odmin
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
#Шпаргалка@linux_odmin
👉 @linux_odmin
👍4
Как найти и удалить старые файлы в Linux? 🗑️
Привет, админы! Сегодня разберёмся, как быстро находить и удалять старые файлы в Linux. Это полезно для очистки логов, временных файлов и других ненужных данных.
🔍 Поиск файлов старше 30 дней:
-
-
🗑️ Удаление этих файлов:
⚠ Осторожно! Удаление без подтверждения.
✅ Безопасный вариант с подтверждением:
Будет запрашиваться подтверждение перед удалением.
🔥 Автоматизация через cron:
Добавляем в
Очистка логов каждую ночь в 03:00.
Как вы решаете проблему старых файлов? Делитесь своими решениями в комментариях! 👇
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, админы! Сегодня разберёмся, как быстро находить и удалять старые файлы в Linux. Это полезно для очистки логов, временных файлов и других ненужных данных.
🔍 Поиск файлов старше 30 дней:
find /path/to/directory -type f -mtime +30
-
-type f — ищем только файлы;-
-mtime +30 — файлы старше 30 дней.🗑️ Удаление этих файлов:
find /path/to/directory -type f -mtime +30 -delete
⚠ Осторожно! Удаление без подтверждения.
✅ Безопасный вариант с подтверждением:
find /path/to/directory -type f -mtime +30 -exec rm -i {} \;
Будет запрашиваться подтверждение перед удалением.
🔥 Автоматизация через cron:
Добавляем в
crontab -e:
0 3 * * * find /var/log -type f -mtime +30 -delete
Очистка логов каждую ночь в 03:00.
Как вы решаете проблему старых файлов? Делитесь своими решениями в комментариях! 👇
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5
Как проверить, что процесс слушает нужный порт? 🔎
Бывало такое, что сервис не отвечает, и непонятно, слушает ли он вообще нужный порт? Давайте разберёмся, как это проверить.
📡 Способы проверки:
1️⃣ ss (современный вариант `netstat`):
-
-
-
-
-
2️⃣ lsof (список открытых файлов, включая порты):
Покажет, какой процесс слушает 80-й порт.
3️⃣ netstat (старый, но работает):
4️⃣ Сокетный тест с `nc`:
Если порт открыт, увидим сообщение
💡 Пример реального кейса: Apache не запускается, потому что другой процесс уже занял порт 80. Как быстро его прибить?
или
Какой метод используете вы? Делитесь в комментариях! 💬
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Бывало такое, что сервис не отвечает, и непонятно, слушает ли он вообще нужный порт? Давайте разберёмся, как это проверить.
📡 Способы проверки:
1️⃣ ss (современный вариант `netstat`):
ss -tulnp
-
-t — TCP;-
-u — UDP;-
-l — только слушающие сокеты;-
-n — не резолвить имена;-
-p — показать процессы.2️⃣ lsof (список открытых файлов, включая порты):
lsof -i :80
Покажет, какой процесс слушает 80-й порт.
3️⃣ netstat (старый, но работает):
netstat -tulnp
4️⃣ Сокетный тест с `nc`:
nc -zv 127.0.0.1 80
Если порт открыт, увидим сообщение
succeeded.💡 Пример реального кейса: Apache не запускается, потому что другой процесс уже занял порт 80. Как быстро его прибить?
fuser -k 80/tcp
или
kill $(lsof -t -i :80)
Какой метод используете вы? Делитесь в комментариях! 💬
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
Как быстро узнать, какие процессы грузят систему?
Если сервер вдруг начал тормозить, первым делом проверяем загрузку CPU и памяти. Вот мои любимые команды:
🔹 top — классика, показывает активные процессы в реальном времени.
🔹 htop — улучшенная версия top с удобным интерфейсом.
🔹 ps aux --sort=-%cpu | head — топ 10 процессов по загрузке CPU.
🔹 ps aux --sort=-%mem | head — топ 10 процессов по потреблению памяти.
А если хотите найти, какая конкретно команда грузит диск:
или
Какие инструменты используете вы, когда сервер внезапно начинает «тупить»? 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Если сервер вдруг начал тормозить, первым делом проверяем загрузку CPU и памяти. Вот мои любимые команды:
🔹 top — классика, показывает активные процессы в реальном времени.
🔹 htop — улучшенная версия top с удобным интерфейсом.
🔹 ps aux --sort=-%cpu | head — топ 10 процессов по загрузке CPU.
🔹 ps aux --sort=-%mem | head — топ 10 процессов по потреблению памяти.
А если хотите найти, какая конкретно команда грузит диск:
iotop -oили
iostat -dx 1Какие инструменты используете вы, когда сервер внезапно начинает «тупить»? 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8
🛠 Как проверить нагрузку на сервер?
Если сервер начал тормозить, первым делом проверяем, что его грузит. Вот полезные команды для диагностики:
🔹 top / htop – показывает загрузку процессора, памяти, активные процессы.
🔹 free -m – проверяет, сколько оперативной памяти занято и сколько доступно.
🔹 df -h – смотрит свободное место на диске.
🔹 iostat -x 1 – помогает определить проблемы с дисковым вводом-выводом.
🔹 netstat -tulnp / ss -tulnp – проверяет открытые порты и сетевые подключения.
Если сервер под нагрузкой, но процессы неизвестны, попробуйте
А какими инструментами диагностики чаще всего пользуетесь вы?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Если сервер начал тормозить, первым делом проверяем, что его грузит. Вот полезные команды для диагностики:
🔹 top / htop – показывает загрузку процессора, памяти, активные процессы.
🔹 free -m – проверяет, сколько оперативной памяти занято и сколько доступно.
🔹 df -h – смотрит свободное место на диске.
🔹 iostat -x 1 – помогает определить проблемы с дисковым вводом-выводом.
🔹 netstat -tulnp / ss -tulnp – проверяет открытые порты и сетевые подключения.
Если сервер под нагрузкой, но процессы неизвестны, попробуйте
ps aux --sort=-%cpu или ps aux --sort=-%mem, чтобы найти самых "прожорливых".А какими инструментами диагностики чаще всего пользуетесь вы?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
1️⃣ Как проверить скорость интернета в Linux через терминал?
Если вам нужно быстро замерить скорость интернета на сервере или рабочей машине без браузера, используйте один из этих инструментов:
1️⃣ Speedtest CLI
Установите и запустите:
2️⃣ Fast CLI (от Netflix)
Удобный альтернативный инструмент:
или
3️⃣ nload – мониторинг в реальном времени
Теперь у вас есть несколько способов быстро проверить скорость соединения. Какой инструмент используете вы? 🌐
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Если вам нужно быстро замерить скорость интернета на сервере или рабочей машине без браузера, используйте один из этих инструментов:
1️⃣ Speedtest CLI
Установите и запустите:
sudo apt install speedtest-cli # для Ubuntu/Debian
sudo yum install speedtest-cli # для CentOS/RHEL
speedtest
2️⃣ Fast CLI (от Netflix)
Удобный альтернативный инструмент:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3
или
fast
3️⃣ nload – мониторинг в реальном времени
sudo apt install nload
nload
Теперь у вас есть несколько способов быстро проверить скорость соединения. Какой инструмент используете вы? 🌐
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
2️⃣ Почему
Один из самых частых способов убить процесс в Linux – это команда:
Но почему её не стоит использовать бездумно?
🔸 -9 (SIGKILL) моментально завершает процесс без шанса на очистку ресурсов. Это может привести к:
- Потере несохранённых данных
- Оставлению зомби-процессов
- Проблемам с зависимыми процессами
Лучше использовать более "мягкие" сигналы:
1️⃣ kill PID (SIGTERM) – вежливо просит процесс завершиться.
2️⃣ kill -15 PID – то же самое, но явно.
3️⃣ kill -1 PID (SIGHUP) – для перезапуска демонов.
4️⃣ kill -2 PID (SIGINT) – аналог Ctrl+C.
Используйте kill -9 только в крайнем случае, когда процесс завис и не отвечает на другие сигналы.
Какой у вас самый жёсткий случай с kill -9? Делитесь в комментариях! 💀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
kill -9 не всегда хорошая идея? Один из самых частых способов убить процесс в Linux – это команда:
kill -9 PID
Но почему её не стоит использовать бездумно?
🔸 -9 (SIGKILL) моментально завершает процесс без шанса на очистку ресурсов. Это может привести к:
- Потере несохранённых данных
- Оставлению зомби-процессов
- Проблемам с зависимыми процессами
Лучше использовать более "мягкие" сигналы:
1️⃣ kill PID (SIGTERM) – вежливо просит процесс завершиться.
2️⃣ kill -15 PID – то же самое, но явно.
3️⃣ kill -1 PID (SIGHUP) – для перезапуска демонов.
4️⃣ kill -2 PID (SIGINT) – аналог Ctrl+C.
Используйте kill -9 только в крайнем случае, когда процесс завис и не отвечает на другие сигналы.
Какой у вас самый жёсткий случай с kill -9? Делитесь в комментариях! 💀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
🛠 Как проверить загрузку процессора в Linux?
Производительность сервера – это первое, что проверяют при проблемах. Если сервер тормозит, первым делом смотрим на CPU.
📌 Вот несколько полезных команд:
🔹
🔹
🔹
🔹
🔹
🔎 На что смотреть?
📌 Высокий
📌 Высокий
📌
А какая ваша любимая команда для мониторинга CPU? Делитесь в комментариях!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Производительность сервера – это первое, что проверяют при проблемах. Если сервер тормозит, первым делом смотрим на CPU.
📌 Вот несколько полезных команд:
🔹
top – показывает загрузку CPU в реальном времени. 🔹
htop – более удобная версия top с цветным интерфейсом. 🔹
mpstat -P ALL 1 – детальный анализ нагрузки по ядрам. 🔹
sar -u 1 10 – сбор данных о загрузке процессора в динамике. 🔹
iostat -c 1 – еще один способ посмотреть загрузку CPU. 🔎 На что смотреть?
📌 Высокий
%user – процессы активно используют CPU. 📌 Высокий
%iowait – узкое место в дисковой системе. 📌
%steal – возможно, вам не хватает процессорных ресурсов на виртуальной машине. А какая ваша любимая команда для мониторинга CPU? Делитесь в комментариях!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4
⚡ Как удалить огромную папку в Linux за секунды?
Удаление больших папок в Linux может занять очень много времени. Особенно, если делать это через
💡 Альтернативные способы удаления:
✅ Удаляем быстрее с rsync:
Заменяем
✅ Используем find и xargs:
Сначала удаляем файлы, потом папки – так быстрее.
✅ Удаляем через inode:
Если папка – это отдельный монтированный диск, можно просто отмонтировать и форматнуть:
Какой способ используете вы?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Удаление больших папок в Linux может занять очень много времени. Особенно, если делать это через
rm -rf. 💡 Альтернативные способы удаления:
✅ Удаляем быстрее с rsync:
rsync -a --delete empty_dir/ target_dir/
Заменяем
target_dir на пустую папку и мгновенно очищаем ее. ✅ Используем find и xargs:
find /bigdir -type f -delete
find /bigdir -depth -type d -delete
Сначала удаляем файлы, потом папки – так быстрее.
✅ Удаляем через inode:
Если папка – это отдельный монтированный диск, можно просто отмонтировать и форматнуть:
umount /bigdir
mkfs.ext4 /dev/sdX
Какой способ используете вы?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4
📜 Bash-скрипт для очистки логов: автоматизируем рутину
Логи – полезная вещь, но если их не чистить, диск быстро заполняется. Вот простой Bash-скрипт, который удаляет старые логи, оставляя только свежие:
📌 Как использовать?
1️⃣ Сохраните скрипт как
2️⃣ Дайте права на выполнение:
3️⃣ Добавьте в
И добавьте строку:
Теперь логи будут чиститься автоматически каждую ночь в 2:00.
А как вы боретесь с мусором в
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Логи – полезная вещь, но если их не чистить, диск быстро заполняется. Вот простой Bash-скрипт, который удаляет старые логи, оставляя только свежие:
#!/bin/bash
LOG_DIR="/var/log"
DAYS=7
find $LOG_DIR -type f -name "*.log" -mtime +$DAYS -exec rm -f {} \;
echo "Очистка логов старше $DAYS дней завершена."
📌 Как использовать?
1️⃣ Сохраните скрипт как
clear_logs.sh. 2️⃣ Дайте права на выполнение:
chmod +x clear_logs.sh
3️⃣ Добавьте в
cron, чтобы запускался раз в день:
crontab -e
И добавьте строку:
0 2 * * * /path/to/clear_logs.sh
Теперь логи будут чиститься автоматически каждую ночь в 2:00.
А как вы боретесь с мусором в
/var/log? 🤔 Делитесь своими решениями в комментариях! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8👎1
🚀 Оптимизация SSH: Как ускорить подключение к серверу?
Всем привет! Сегодня разберем, как ускорить подключение к серверу по SSH. Замечали, что иногда при подключении бывает задержка в несколько секунд? Это может раздражать, особенно если приходится часто подключаться к разным серверам. Давайте разберем причины и решения.
🔍 Основные причины задержки
1️⃣ Reverse DNS Lookup – сервер пытается выполнить обратное разрешение IP-адреса клиента.
2️⃣ GSSAPI-аутентификация – ненужная проверка, которая включена по умолчанию.
3️⃣ Плохая сеть или высокий RTT – если сеть нестабильна, время подключения может увеличиваться.
⚡ Ускоряем SSH
✅ Отключаем обратное разрешение IP
На сервере редактируем файл
Перезапускаем SSH:
✅ Отключаем GSSAPI-аутентификацию
На клиенте в
Или редактируем
✅ Используем ControlMaster (ускоряет повторные подключения)
В
Теперь, если уже есть активное соединение, новое подключение будет мгновенным!
🔥 Итог
Эти три простых настройки могут заметно ускорить вашу работу с SSH. Попробуйте и напишите в комментариях, помогло ли вам!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Всем привет! Сегодня разберем, как ускорить подключение к серверу по SSH. Замечали, что иногда при подключении бывает задержка в несколько секунд? Это может раздражать, особенно если приходится часто подключаться к разным серверам. Давайте разберем причины и решения.
🔍 Основные причины задержки
1️⃣ Reverse DNS Lookup – сервер пытается выполнить обратное разрешение IP-адреса клиента.
2️⃣ GSSAPI-аутентификация – ненужная проверка, которая включена по умолчанию.
3️⃣ Плохая сеть или высокий RTT – если сеть нестабильна, время подключения может увеличиваться.
⚡ Ускоряем SSH
✅ Отключаем обратное разрешение IP
На сервере редактируем файл
/etc/ssh/sshd_config:
UseDNS no
Перезапускаем SSH:
systemctl restart sshd
✅ Отключаем GSSAPI-аутентификацию
На клиенте в
~/.ssh/config добавляем:
Host *
GSSAPIAuthentication no
Или редактируем
/etc/ssh/ssh_config глобально. ✅ Используем ControlMaster (ускоряет повторные подключения)
В
~/.ssh/config добавляем:
Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
ControlPersist 10m
Теперь, если уже есть активное соединение, новое подключение будет мгновенным!
🔥 Итог
Эти три простых настройки могут заметно ускорить вашу работу с SSH. Попробуйте и напишите в комментариях, помогло ли вам!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5