Шпаргалка по скриптам Bash
Основы написания скриптов на Bash
Условные операторы
Циклы Bash
Арифметические операторы
Арифметические условные операторы
Операторы сравнения строк
Основы написания скриптов на Bash
Условные операторы
Циклы Bash
Арифметические операторы
Арифметические условные операторы
Операторы сравнения строк
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Walk — это инструмент на Go, который позволяет рекурсивно обходить директории и выполнять команды для каждого найденного файла или папки.
Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.
https://github.com/antonmedv/walk
Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.
https://github.com/antonmedv/walk
👍1
Основные команды Linux: Управление пользователями и группами
аналогичны всем вышеуказанным для useradd
-b
– Базовый каталог по умолчанию, в котором создаются домашние каталоги пользователей. Обычно это / home, а пользовательские каталоги — /home/$ USER.-c “text text”
– Текстовая строка для описания id, содержащая, например, полное имя пользователя.-e YYYY-MM_DD
– Дата, когда учетная запись потеряет силу или будет заблокирована.-G gr1,gr2,gr3
– Список дополнительных групп, которым принадлежит пользователь.-o
– Позволяет создать пользователя с неуникальным id.-u
– Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей.usermod user
– изменение настроек пользователя с именем user в системеаналогичны всем вышеуказанным для useradd
-L
– блокировка учетной записи-U
– разблокировка учетной записиuserdel user
– удаляет пользователя user из системы-r
– удаление домашнего каталога пользователяusers
– Выдаются имена пользователей, которые в текущий момент зарегистрированы в системеgroupadd group
– добавление (создание) новой группы group в системе-f
– Выйти со статусом успешного выполнения, если группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать.-g
– Задать id группы вручную.-o
– Разрешить группу с неуникальным id.groupmod group
– изменение информации о группе group в системе-n group2
задание нового имени group2groupdel group
– удаление группы group из системыpasswd user
– изменяет/устанавливает пароль пользователя user-l
– блокирование учетной записи-d
– удаление пароля учетной записи (блокирование)-f
– установка даты прекращения полномочий-n
– минимальное время действия пароля в днях-x
– максимальное время действие пароля в днях-w
– число дней появления предупреждения об окончании действия пароля-i
– число дней, после которых пароль потеряет силу и учетка заблокируется.-S
– вывод сообщения о статусе пользователяgpasswd group
– изменяет/устанавливает пароль группы group (Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы.)id who
– просмотр информации о пользователе/группе who (принадлежность к группам, UID, GID)ulimit
– ограничение пользовательских ресурсов:-a
– отображение всех возможных ресурсов-f
– ограничение размера файла-t
– процессорное времяИзменение порта для подключения по SSH
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh
👍3
Внедрение GitOps с помощью ArgoCD: пошаговое руководство
В современном быстро меняющемся мире DevOps управление и развертывание приложений, последовательное и надежное в различных средах, может оказаться сложной задачей. GitOps, парадигма, использующая Git-репозитории в качестве единого источника истины для декларативной инфраструктуры и приложений, предлагает решение. В этом посте я расскажу вам о проекте, в котором мы внедрили GitOps с помощью ArgoCD, подробно опишу цели проекта и шаги, которые мы предприняли для их достижения.
https://medium.com/@kalimitalha8/implementing-gitops-with-argocd-a-step-by-step-guide-b79f723b1a43
В современном быстро меняющемся мире DevOps управление и развертывание приложений, последовательное и надежное в различных средах, может оказаться сложной задачей. GitOps, парадигма, использующая Git-репозитории в качестве единого источника истины для декларативной инфраструктуры и приложений, предлагает решение. В этом посте я расскажу вам о проекте, в котором мы внедрили GitOps с помощью ArgoCD, подробно опишу цели проекта и шаги, которые мы предприняли для их достижения.
https://medium.com/@kalimitalha8/implementing-gitops-with-argocd-a-step-by-step-guide-b79f723b1a43
Более чем 80 средств мониторинга системы Linux
По ссылке будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.
https://habr.com/ru/companies/ua-hosting/articles/281519/
По ссылке будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.
https://habr.com/ru/companies/ua-hosting/articles/281519/
❤1
Приостановка и продолжение исполнения процесса
Для приостановки и продолжения исполнения процессов следует использовать сигналы
Превратится в команду для приостановки исполнения процесса:
Или команду для продолжения исполнения процесса:
Для приостановки и продолжения исполнения процессов следует использовать сигналы
SIGSTOP
и SIGCONT
соответственно. Да, как вы наверняка уже догадались, ранее рассмотренная команда:$ kill 14371
Превратится в команду для приостановки исполнения процесса:
$ kill -s SIGSTOP 14371
Или команду для продолжения исполнения процесса:
$ kill -s SIGCONT 14371
Что такое FSMO роли, их назначение и можно ли без них жить
Многие системные администраторы, работая с Microsoft Active Directory Domain Services не знают или не до конца понимают, что такое FSMO роли и для чего они нужны. Те кто о них знает, не всегда понимает важность этих ролей, в каких случаях владелец ролей обязательно должен быть доступен, а в каких случаях их отсутствие практически никак не отразится на работе службы каталогов.
В статье ниже, будет в кратце рассказано про Flexible single-master operations «операции с одним исполнителем». А также можно ли без них жить.
https://telegra.ph/CHto-takoe-FSMO-roli-ih-naznachenie-i-mozhno-li-bez-nih-zhit-09-07
Многие системные администраторы, работая с Microsoft Active Directory Domain Services не знают или не до конца понимают, что такое FSMO роли и для чего они нужны. Те кто о них знает, не всегда понимает важность этих ролей, в каких случаях владелец ролей обязательно должен быть доступен, а в каких случаях их отсутствие практически никак не отразится на работе службы каталогов.
В статье ниже, будет в кратце рассказано про Flexible single-master operations «операции с одним исполнителем». А также можно ли без них жить.
https://telegra.ph/CHto-takoe-FSMO-roli-ih-naznachenie-i-mozhno-li-bez-nih-zhit-09-07
👍2
Руководство по стеку протоколов TCP/IP для начинающих
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
https://telegra.ph/Rukovodstvo-po-steku-protokolov-TCPIP-dlya-nachinayushchih-12-08
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
https://telegra.ph/Rukovodstvo-po-steku-protokolov-TCPIP-dlya-nachinayushchih-12-08
Горячие клавиши для работы в терминале Linux
Перемещение по строке
← , → или Ctrl + b, Ctrl + f Смещение курсора на один символ левее или правее.
Ctrl + →, Ctrl + ←
или
Alt + b, Alt + f Смещение курсора на одно слово влево или вправо
Ctrl + a, Home Установить курсор в начало строки
Ctrl + e, End Установить курсор в конец строки
Ctrl + xx Переход между двумя последними позициями курсора
Сочетания клавиш для редактирования строки в терминале.
Редактирование строки
Tab, Ctr + i Автодополнение команды или пути
Tab, tab или Alt + ?(Shift+/) Представление вариантов автодополнения
Backspace, Ctrl + h Удаление символа перед курсором
Ctrl + d Удалить символ за курсором
Ctrl + w или Alt + Backspace Удалить все символы от курсора до пробела слева
Alt + d, Esc + d Удалить символы от курсора до конца слова
Ctrl + y Вставить слова, которые были удалены с помощью Alt+d, Ctrl+w
Alt + \ Удалить любое количество пробелов вместе, где стоит курсор.
Alt + r, Esc + r Отменить все изменения внесенные в строку
Alt + c Изменить регистр буквы под курсором на заглавный и переместить курсор в конец слова
Alt + u Изменить регистр всех букв от курсора до конца слова на верхний регистр
Alt + l Изменить регистр всех букв от курсора до конца слова на нижний регистр
Alt + t Поменять местами слово под курсором и предыдущее слово
Ctr + t Переместить символ перед курсором под курсор
Ctrl + _(Sift+-) Откат редактирования (Undo)
Сочетания клавиш для просмотра истории команд.
История команд
Ctrl + r Поиск ранее введенной команды в истории
↑, ↓ или Ctrl + p, Ctrl + n Перемещение по истории ранее введенных команд и путей
Ctrl + o Вызвать последнею введенную команду
Alt + . или Esc + . Вставить аргумент команды, выполненной ранее
Alt + < (Shift+,) Повторить первую команду в буфере истории
Сочетания клавиш для управления выводом информации на экран.
Вывод на экран
Ctrl + l Очистка окна терминала
Ctrl + s Заморозить терминал
Ctrl + q Продолжить работу терминала
Ctrl + c Прервать работу терминальной утилиты
Ctrl + z Перевести работу терминальной утилиты в фоновый режим
Ctrl + d Выйти из командной оболочки bash
Перемещение по строке
← , → или Ctrl + b, Ctrl + f Смещение курсора на один символ левее или правее.
Ctrl + →, Ctrl + ←
или
Alt + b, Alt + f Смещение курсора на одно слово влево или вправо
Ctrl + a, Home Установить курсор в начало строки
Ctrl + e, End Установить курсор в конец строки
Ctrl + xx Переход между двумя последними позициями курсора
Сочетания клавиш для редактирования строки в терминале.
Редактирование строки
Tab, Ctr + i Автодополнение команды или пути
Tab, tab или Alt + ?(Shift+/) Представление вариантов автодополнения
Backspace, Ctrl + h Удаление символа перед курсором
Ctrl + d Удалить символ за курсором
Ctrl + w или Alt + Backspace Удалить все символы от курсора до пробела слева
Alt + d, Esc + d Удалить символы от курсора до конца слова
Ctrl + y Вставить слова, которые были удалены с помощью Alt+d, Ctrl+w
Alt + \ Удалить любое количество пробелов вместе, где стоит курсор.
Alt + r, Esc + r Отменить все изменения внесенные в строку
Alt + c Изменить регистр буквы под курсором на заглавный и переместить курсор в конец слова
Alt + u Изменить регистр всех букв от курсора до конца слова на верхний регистр
Alt + l Изменить регистр всех букв от курсора до конца слова на нижний регистр
Alt + t Поменять местами слово под курсором и предыдущее слово
Ctr + t Переместить символ перед курсором под курсор
Ctrl + _(Sift+-) Откат редактирования (Undo)
Сочетания клавиш для просмотра истории команд.
История команд
Ctrl + r Поиск ранее введенной команды в истории
↑, ↓ или Ctrl + p, Ctrl + n Перемещение по истории ранее введенных команд и путей
Ctrl + o Вызвать последнею введенную команду
Alt + . или Esc + . Вставить аргумент команды, выполненной ранее
Alt + < (Shift+,) Повторить первую команду в буфере истории
Сочетания клавиш для управления выводом информации на экран.
Вывод на экран
Ctrl + l Очистка окна терминала
Ctrl + s Заморозить терминал
Ctrl + q Продолжить работу терминала
Ctrl + c Прервать работу терминальной утилиты
Ctrl + z Перевести работу терминальной утилиты в фоновый режим
Ctrl + d Выйти из командной оболочки bash
👍4
Подборка полезных скриптов для Mikrotik
https://help.mikrotik.com/docs/spaces/ROS/pages/139067404/Scripting+examples#Scriptingexamples-Generatebackupandsenditbye-mail
https://help.mikrotik.com/docs/spaces/ROS/pages/139067404/Scripting+examples#Scriptingexamples-Generatebackupandsenditbye-mail
❤1
Как подключиться к контейнеру Docker по ssh
После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.
https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.
https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
Создаем логические тома LVM на Linux
Система хранения данных – один из тех кардинальных компонентов, без которых ваш сервер не может обойтись, и поэтому требует к себе пристального внимания, несмотря ни на что.
Это краткое руководство по внедрению LVM на вашем linux-сервере или рабочей станции.
Система хранения данных – один из тех кардинальных компонентов, без которых ваш сервер не может обойтись, и поэтому требует к себе пристального внимания, несмотря ни на что.
Это краткое руководство по внедрению LVM на вашем linux-сервере или рабочей станции.
❤2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Snips.sh
Безпарольный, анонимный pastebin на основе SSH с удобным текстовым и веб-интерфейсом
Фичи:
▪️Нулевая установка: используйте с любого устройства, где установлен SSH-клиент
▪️Веб-интерфейс: код с подсветкой синтаксиса, короткие ссылки и поддержка рендеринга Markdown
▪️Текстовый интерфейс: управление и просмотр сниппетов прямо из терминала
▪️Без паролей: всё, что вам нужно — это SSH-ключ
▪️Анонимность: без регистрации, без логинов, без необходимости указывать email
▪️URL с временем жизни: ограниченный по времени доступ для безопасного обмена
▪️Возможность самостоятельного хостинга: контейнеризированный и малозатратный в плане ресурсов
▪️Определение языка с помощью ИИ: интеллектуальное распознавание исходного кода
https://github.com/robherley/snips.sh
Безпарольный, анонимный pastebin на основе SSH с удобным текстовым и веб-интерфейсом
Фичи:
▪️Нулевая установка: используйте с любого устройства, где установлен SSH-клиент
▪️Веб-интерфейс: код с подсветкой синтаксиса, короткие ссылки и поддержка рендеринга Markdown
▪️Текстовый интерфейс: управление и просмотр сниппетов прямо из терминала
▪️Без паролей: всё, что вам нужно — это SSH-ключ
▪️Анонимность: без регистрации, без логинов, без необходимости указывать email
▪️URL с временем жизни: ограниченный по времени доступ для безопасного обмена
▪️Возможность самостоятельного хостинга: контейнеризированный и малозатратный в плане ресурсов
▪️Определение языка с помощью ИИ: интеллектуальное распознавание исходного кода
https://github.com/robherley/snips.sh
Шпаргалка по systemd
Основные команды systemctl:
1. Проверка статуса службы:
2. Запуск службы:
3. Остановка службы:
4. Перезапуск службы:
5. Перезагрузка, только если служба работает:
6. Включить автозапуск службы при загрузке:
7. Отключить автозапуск службы:
8. Показать все запущенные службы:
9. Просмотр всех служб (включая остановленные):
10. Показать все активные сервисы, включая другие юниты (mount, timer и т.д.):
11. Маскировка службы (запрет её запуска):
12. Демаскировка службы:
Основные команды systemctl:
1. Проверка статуса службы:
systemctl status <имя_сервиса>
2. Запуск службы:
systemctl start <имя_сервиса>
3. Остановка службы:
systemctl stop <имя_сервиса>
4. Перезапуск службы:
systemctl restart <имя_сервиса>
5. Перезагрузка, только если служба работает:
systemctl reload <имя_сервиса>
6. Включить автозапуск службы при загрузке:
systemctl enable <имя_сервиса>
7. Отключить автозапуск службы:
systemctl disable <имя_сервиса>
8. Показать все запущенные службы:
systemctl list-units --type=service
9. Просмотр всех служб (включая остановленные):
systemctl list-units --all --type=service
10. Показать все активные сервисы, включая другие юниты (mount, timer и т.д.):
systemctl list-units --state=active
11. Маскировка службы (запрет её запуска):
systemctl mask <имя_сервиса>
12. Демаскировка службы:
systemctl unmask <имя_сервиса>
❤2
Основные типы DNS записей
A — запись соответствия с IPv4 адресом;
AAAA — запись соответствия с IPv6 адресом;
CNAME — запись соответствия другому доменному имени;
MX — адресная запись, указывающая на почтовый сервер домена;
NS — адресная запись указывающая на DNS-резолверы, отвечающие за данный домен;
TXT — произвольная текстовая запись в домене, часто используется для верификации принадлежности домена.
A — запись соответствия с IPv4 адресом;
AAAA — запись соответствия с IPv6 адресом;
CNAME — запись соответствия другому доменному имени;
MX — адресная запись, указывающая на почтовый сервер домена;
NS — адресная запись указывающая на DNS-резолверы, отвечающие за данный домен;
TXT — произвольная текстовая запись в домене, часто используется для верификации принадлежности домена.
👍2
PGTune рассчитывает конфигурацию для PostgreSQL, основываясь на максимальной производительности для данной конфигурации оборудования. Это не серебряная пуля для оптимизации настроек PostgreSQL. Многие настройки зависят не только от конфигурации оборудования, но и от размера базы данных, количества клиентов и сложности запросов. Оптимальная конфигурация базы данных может быть получена только при учете всех этих параметров.
https://github.com/le0pard/pgtune
https://pgtune.leopard.in.ua/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1