Системный Администратор (Сисадмин)
14K subscribers
1.78K photos
1.65K videos
87 files
1.84K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
🖥 PGTune

PGTune рассчитывает конфигурацию для PostgreSQL, основываясь на максимальной производительности для данной конфигурации оборудования. Это не серебряная пуля для оптимизации настроек PostgreSQL. Многие настройки зависят не только от конфигурации оборудования, но и от размера базы данных, количества клиентов и сложности запросов. Оптимальная конфигурация базы данных может быть получена только при учете всех этих параметров.

https://github.com/le0pard/pgtune

https://pgtune.leopard.in.ua/

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Трюки терминала Bash

Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.

Горячие клавиши" Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.

Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.

Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb

$ echo 'bbb'
bbb


Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/


Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c


— запускает cat filename ещё раз.

Указание файлов по шаблону в Bash
/etc/pa*wd/etc/passwd — символ * означает "несколько любых символов".
/b?n/?at/bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".

Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Запуск команд в фоновом режиме

Синтаксис
Задачу (например, команду или скрипт) можно перевести в фоновый режим, добавив символ «&» в конец командной строки. Этот оператор переводит команду в фоновый режим и освобождает место в терминале. Команда, выполняемая в фоновом режиме, называется заданием. Во время работы фоновой команды можно выполнять любые другие команды. Синтаксис выглядит следующим образом:

command & script-name & /path/to/command arg1 arg2 & command-1 | command-2 arg1 & command-1 | command-2 -arg1 -arg2 >/path/to/output &

Примеры
Чтобы перевести команду ls в фоновый режим, введите:
$ ls *.py > output.txt &

Чтобы перевести следующую команду поиска в фоновый режим, добавьте символ «&» в конец командной строки:
find . -iname "*.mp3" > myplaylist.txt &

Как найти задания, работающие в фоновом режиме?
Выполните следующую команду:
jobs

Пример вывода данных:
[1]- Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Где
[1] и [2] идентификаторы заданий.
Чтобы отобразить идентификаторы процессов для идентификаторов заданий помимо стандартных сведений, передайте параметр -l:

jobs –l


Пример вывода данных:

[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Чтобы отобразить только идентификаторы процессов, введите:
jobs -p

Пример вывода данных:

7307
7324


Как прекратить выполнение заданий, работающих в фоновом режиме?
Для принудительного или постепенного завершения процесса следует использовать команду kill. Синтаксис выглядит следующим образом:

kill PID
kill -15 PID
kill -9 PID
killall process-Name-Here
killall -15 process-Name-Here
killall -9 process-Name-Here


Как переместить процесс из фонового режима в приоритетный?
Синтаксис:
%JOB-ID

ИЛИ
fg JOB-ID

Сначала следует вывести список текущих заданий с помощью команды jobs. Для этого введите:
jobs -l

Пример вывода данных:

[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Чтобы перевести задание job id #2 в приоритетный режим, введите:
%2
ИЛИ используйте команду:
fg 2

Пример вывода данных:

grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt
Чтобы перевести это задание обратно в фоновый режим, нажмите клавишу Z, удерживая клавишу CTRL. При этом выполнение текущего приоритетного задания будет приостановлено. Введите следующую команду, чтобы перевести задание в фоновый режим:
%2 &

ИЛИ используйте команду:
bg

Теперь командное задание grep будет работать в фоновом режиме.

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Forwarded from Bash Советы
🔍 Регулярки на каждый день: как найти строки, содержащие IP-адреса

Иногда нужно выцепить IP-адреса из логов или текста. Ниже я написал регулярку, которая найдёт IPv4 -адреса:


\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b


💡 Пример использования с grep:


grep -Eo '\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b' access.log


🎯 Что делает эта регулярка:
- \b — граница слова (чтобы не цеплять лишнее);
- (?:[0-9]{1,3}\.){3} — три группы чисел от 0 до 999, за которыми идёт точка;
- [0-9]{1,3} — последняя четвёртая группа;
- Вся конструкция — это "что-то вроде 192.168.1.1".

🧠 Минус: она не валидирует значения (например, 999.999.999.999 тоже пройдёт). Но для быстрой фильтрации из логов — идеально.

💪 А ата уже фильтрует только реальные IP!


\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b


👉@bash_srv
👍5🔥1
🎥 Вебинар по Linux: Настройка Nginx/Angie для высоких нагрузок и защиты от DoS-атак

👉 На вебинаре вы узнаете:
-Как оптимизировать конфигурацию Nginx/Angie под высоконагруженные проекты.
-Какие модули и параметры отвечают за производительность и отказоустойчивость.
-Как реализовать базовую защиту от DoS-атак средствами веб-сервера.
-Как мониторить и анализировать поведение сервера под нагрузкой.

💪 В результате вебинара вы:
- Научитесь настраивать Nginx/Angie для стабильной работы под высокой нагрузкой.
- Сможете применять встроенные механизмы ограничения запросов и защиты от DoS.
- Освоите подходы к балансировке и кешированию трафика.
- Получите практические рекомендации по тестированию производительности и мониторингу.

🎁 Все участники вебинара получат специальные условия на полное обучение курса "Инфраструктура высоконагруженных систем"

👉 Для участия зарегистрируйтесь: https://vk.cc/cRhU18

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
2
🖥 Linux

Три простых способа создания загрузочных флешек в Linux
Timeshift как Time Machine только для Linux
Автоматизация задач в Linux с помощью crontab и таймеров systemd
Создание и управление RAID массивами в РОСА ОС Linux
Установка российских SSL сертификатов в Linux
Перенос виртуальных машин из VirtualBox и Hyper V в QEMU KVM
Настройка KDE Connect AirDrop давай до свидания!
Файловая система Linux
Этапы загрузки ОС Linux
Управление доступом в ОС Linux

источник

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📕vPC и MLAG в ЦОД от А до Я - сетевым инженерам и DevOps-специалистам, архитекторам и администраторам, работающим с инфраструктурой ЦОД

На открытом уроке 17 ноября в 20:00 мск мы разберёмся в том, чем плохи Stack и VSS в ЦОД, какие сценарии отказа бывают в VPC/MLAG и чем радуют вендоры в РФ:

📗 На вебинаре:
1. Путь в тысячи миль: как разработчики от стека дошли до vPC(MLAG) с пересадкой на VSS.
2. Сценарии отказа: от "безобидной" перезагрузки ноды до split-brain.

📘 В результате на практике освоите принципы работы vPC/MLAG и сможете грамотно внедрять их для повышения надежности и производительности вашей сети.

👉 Регистрация на урок и подробности о курсе Дизайн сетей ЦОД: https://vk.cc/cRj1aY

Все участники открытого урока получат скидку на курс "Дизайн сетей ЦОД"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
2
Советы по настройке history команд в Bash

Каждая вводимая в терминале команда сохраняется в файле ~/.bash_history. Чтобы посмотреть историю команд – введите history.

Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл ~/.bashrc.

Чтобы изменения в ~/.bashrc вступили в силу, выполните:

source ~/.bashrc


1. Добавляем Отображение Даты и Времени в Bash History
Иногда очень полезно узнать время, когда какая-либо команда была выполнена.

Установите HISTTIMEFORMAT, чтобы сохранять время выполнения каждой команды.

Для этого добавьте следующую строку в файл ~/.bashrc:

export HISTTIMEFORMAT="%h %d %H:%M:%S "
Теперь, набрав history, Вы получите следующий вывод:

113 Jun 08 16:31:06 sudo ifconfig
114 Jun 08 16:31:10 top
115 Jun 08 16:31:19 ping disnetern.ru
116 Jun 08 16:31:22 history


2. Увеличиваем Размер Хранимой Истории
Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).

export HISTSIZE=5000
Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).

export HISTFILESIZE=5000


3. Добавляем Команды Bash в Файл с Историей
Bash перезаписывает файл .bash_history?

Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз, добавьте следующую строку в ~/.bashrc:

shopt -s histappend


4. Мгновенно Сохранять Историю Команд
По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.

Если сессия внезапно оборвется Вы потеряете текущую историю команд.

Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения:

Добавьте следующую строку в файл ~/.bashrc, если переменная $PROMPT_COMMAND не была задана ранее:

PROMPT_COMMAND='history -a'
Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана:

PROMPT_COMMAND='$PROMPT_COMMAND; history -a'

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
K2 Cloud собирает сетевых инженеров на митап 🌐

28 ноября эксперты из K2 Cloud, Positive Technologies, Avitotech, Wildberries & Russ и Точка Банка встретятся на митапе «Поговорим про сети»

Что будем делать:
— разберем метрики, которые спасают продукт;
— научимся «гадать» по сетевым пакетам;
— сыграем в сетевую версию игры «100 к 1».

Опыт из очень разных инфраструктур и LinkMeUp в роли ведущего — регистрация по ссылке
👍2💯2