MikroTik Winbox 4 - Dark Mode активирован🔥
Кроссплатформенная нативная версия для Windows, Mac и Linux
https://mikrotik.com/download
Кроссплатформенная нативная версия для Windows, Mac и Linux
https://mikrotik.com/download
👍2❤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
– процессорное время❤1
Топ 4 лучших типа сервисов Kubernetes в одной диаграмме.
▪️ ClusterIP
ClusterIP - это стандартный и наиболее распространенный тип службы. Kubernetes назначает сервису ClusterIP внутренний IP-адрес кластера. Это делает службу доступной только в пределах кластера.
▪️ NodePort
Это позволяет вывести сервис за пределы кластера, добавив общекластерный порт поверх ClusterIP. Мы можем запросить сервис по NodeIP:NodePort.
▪️ LoadBalancer
Этот способ раскрывает сервис извне, используя балансировщик нагрузки облачного провайдера.
▪️ ExternalName
Сопоставляет службу с доменным именем. Обычно это используется для создания службы в Kubernetes для представления внешней базы данных.
▪️ ClusterIP
ClusterIP - это стандартный и наиболее распространенный тип службы. Kubernetes назначает сервису ClusterIP внутренний IP-адрес кластера. Это делает службу доступной только в пределах кластера.
▪️ NodePort
Это позволяет вывести сервис за пределы кластера, добавив общекластерный порт поверх ClusterIP. Мы можем запросить сервис по NodeIP:NodePort.
▪️ LoadBalancer
Этот способ раскрывает сервис извне, используя балансировщик нагрузки облачного провайдера.
▪️ ExternalName
Сопоставляет службу с доменным именем. Обычно это используется для создания службы в Kubernetes для представления внешней базы данных.
❤1
Объединение файлов командой cat
Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.
Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
А в другом:
То после объединения мы получим файл с двумя строками:
То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).
Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:
Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.
Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
My text file 1
А в другом:
My text file 2
То после объединения мы получим файл с двумя строками:
My text file 1
My text file 2
То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).
Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:
cat file1 file2 > file12
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:
cat file1 file2 file3 file4 > myfile
❤1
Как найти и удалить пустые директории в Linux
Иногда после установки, удаления или переноса файлов остаются пустые директории, которые засоряют систему. Вот простой способ их найти и удалить одной командой!
Пояснение:
*
*
*
Лучше сначала проверить, что будет удалено:
❗️Подсказка: если хочешь обработать всю систему, используй
Отличный способ навести порядок в
Иногда после установки, удаления или переноса файлов остаются пустые директории, которые засоряют систему. Вот простой способ их найти и удалить одной командой!
find /path/to/search -type d -empty -delete
Пояснение:
*
-type d
— ищем только директории*
-empty
— фильтруем пустые*
-delete
— удаляем найденноеЛучше сначала проверить, что будет удалено:
find /path/to/search -type d -empty
❗️Подсказка: если хочешь обработать всю систему, используй
/
, но будь осторожен — удали что-то нужное, и можно сломать систему. Лучше исключить важные каталоги, например:
find / -type d -empty -not -path "/proc/*" -not -path "/sys/*" -not -path "/dev/*" -delete
Отличный способ навести порядок в
/tmp
, /var/log
, /home
и других местах!❤1
❗️Типы DNS-записей, которые стоит знать
Разбираемся с основными DNS-записями, которые помогают доменам работать корректно!
▪️A (Address) – привязывает домен к IPv4-адресу. Самый распространенный тип записи.
▪️CNAME (Canonical Name) – позволяет создать псевдоним для домена, перенаправляя его на другой домен.
▪️TXT (Text) – добавляет текстовые данные в DNS. Используется для SPF (защита e-mail) и других проверок.
▪️AAAA – аналог A-записи, но для IPv6-адресов.
▪️SRV (Service Record) – задаёт хост и порт для сервисов (например, VoIP), используется с A-записями.
▪️PTR (Pointer Record) – выполняет обратное разрешение: сопоставляет IP-адрес с доменным именем.
▪️NS (Name Server) – указывает авторитетные DNS-серверы для домена, помогая направлять запросы.
▪️MX (Mail Exchange) – направляет почтовый трафик на нужный сервер, работает с A-записями.
Эти записи критически важны для работы сайтов, почты и сервисов. Если управляете доменами – сохраните себе!
Разбираемся с основными DNS-записями, которые помогают доменам работать корректно!
▪️A (Address) – привязывает домен к IPv4-адресу. Самый распространенный тип записи.
▪️CNAME (Canonical Name) – позволяет создать псевдоним для домена, перенаправляя его на другой домен.
▪️TXT (Text) – добавляет текстовые данные в DNS. Используется для SPF (защита e-mail) и других проверок.
▪️AAAA – аналог A-записи, но для IPv6-адресов.
▪️SRV (Service Record) – задаёт хост и порт для сервисов (например, VoIP), используется с A-записями.
▪️PTR (Pointer Record) – выполняет обратное разрешение: сопоставляет IP-адрес с доменным именем.
▪️NS (Name Server) – указывает авторитетные DNS-серверы для домена, помогая направлять запросы.
▪️MX (Mail Exchange) – направляет почтовый трафик на нужный сервер, работает с A-записями.
Эти записи критически важны для работы сайтов, почты и сервисов. Если управляете доменами – сохраните себе!
❤3
📌 Автоматизация задач (cron, systemd timers, Ansible)
Всем доброй ночи!
Автоматизация — ключевой элемент эффективного администрирования серверов. В данном руководстве рассмотрены три основных инструмента автоматизации:
- cron — классический планировщик задач в UNIX-подобных системах.
- systemd timers — альтернатива cron, интегрированная в systemd.
- Ansible — инструмент управления конфигурацией и автоматизации.
1. Использование cron
cron позволяет запускать команды и скрипты по расписанию.
1.1. Основные файлы cron
- /etc/crontab — системный crontab.
- /etc/cron.d/ — каталог для пользовательских crontab-файлов.
- /var/spool/cron/crontabs/ — файлы crontab для отдельных пользователей.
1.2. Формат записи crontab
Пример: запуск скрипта каждый день в 3:30 утра:
1.3. Управление cron
- Просмотр текущего crontab:
- Редактирование crontab:
- Удаление crontab:
- Логи cron хранятся в /var/log/syslog (Ubuntu/Debian) или /var/log/cron (CentOS/RHEL).
2. Использование systemd timers
Systemd timers — альтернатива cron, предоставляющая больше возможностей, включая логирование и гибкость настроек.
2.1. Создание таймера
1. Создайте unit-файл для сервиса (`/etc/systemd/system/myscript.service`):
2. Создайте unit-файл для таймера (`/etc/systemd/system/myscript.timer`):
2.2. Управление таймерами
- Включение таймера:
- Проверка состояния таймера:
- Просмотр логов:
3. Автоматизация с Ansible
Ansible позволяет управлять серверами без установки агентов.
3.1. Установка Ansible
Для Debian/Ubuntu:
Для CentOS/RHEL:
3.2. Базовая структура Ansible
3.3. Пример Playbook
Файл
Запуск:
Заключение
- Используйте cron для простых задач.
- Применяйте systemd timers, если важны логи и интеграция с systemd.
- Автоматизируйте масштабные задачи с Ansible.
Всем доброй ночи!
Автоматизация — ключевой элемент эффективного администрирования серверов. В данном руководстве рассмотрены три основных инструмента автоматизации:
- cron — классический планировщик задач в UNIX-подобных системах.
- systemd timers — альтернатива cron, интегрированная в systemd.
- Ansible — инструмент управления конфигурацией и автоматизации.
1. Использование cron
cron позволяет запускать команды и скрипты по расписанию.
1.1. Основные файлы cron
- /etc/crontab — системный crontab.
- /etc/cron.d/ — каталог для пользовательских crontab-файлов.
- /var/spool/cron/crontabs/ — файлы crontab для отдельных пользователей.
1.2. Формат записи crontab
* * * * * /путь/к/команде аргументы
| | | | |
| | | | +---- День недели (0 - вс, 6 - сб)
| | | +------ Месяц (1-12)
| | +-------- День месяца (1-31)
| +---------- Часы (0-23)
+------------ Минуты (0-59)
Пример: запуск скрипта каждый день в 3:30 утра:
30 3 * * * /usr/local/bin/myscript.sh
1.3. Управление cron
- Просмотр текущего crontab:
crontab -l
- Редактирование crontab:
crontab -e
- Удаление crontab:
crontab -r
- Логи cron хранятся в /var/log/syslog (Ubuntu/Debian) или /var/log/cron (CentOS/RHEL).
2. Использование systemd timers
Systemd timers — альтернатива cron, предоставляющая больше возможностей, включая логирование и гибкость настроек.
2.1. Создание таймера
1. Создайте unit-файл для сервиса (`/etc/systemd/system/myscript.service`):
[Unit]
Description=Запуск скрипта
[Service]
ExecStart=/usr/local/bin/myscript.sh
2. Создайте unit-файл для таймера (`/etc/systemd/system/myscript.timer`):
[Unit]
Description=Таймер для myscript.service
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
2.2. Управление таймерами
- Включение таймера:
systemctl enable --now myscript.timer
- Проверка состояния таймера:
systemctl list-timers
- Просмотр логов:
journalctl -u myscript.service --no-pager
3. Автоматизация с Ansible
Ansible позволяет управлять серверами без установки агентов.
3.1. Установка Ansible
Для Debian/Ubuntu:
sudo apt update && sudo apt install -y ansible
Для CentOS/RHEL:
sudo yum install -y epel-release
sudo yum install -y ansible
3.2. Базовая структура Ansible
inventory/hosts # Список серверов
playbooks/
install_apache.yml # Пример Playbook
roles/
common/ # Роли Ansible
3.3. Пример Playbook
Файл
install_apache.yml
:
- hosts: webservers
become: yes
tasks:
- name: Установить Apache
apt:
name: apache2
state: present
Запуск:
ansible-playbook -i inventory/hosts playbooks/install_apache.yml
Заключение
- Используйте cron для простых задач.
- Применяйте systemd timers, если важны логи и интеграция с systemd.
- Автоматизируйте масштабные задачи с Ansible.
❤1
20 лучших скриптов Powershell для Active Directory
Работая много лет, я столкнулся со многими проблемами в качестве системного администратора windows. Иногда создание пользователей или групп в домене занимает значительное время. Это процесс можно автоматизировать, чтобы сэкономить время. В данной статье есть скрипты DNS powershell, скрипты DHCP powershell и мой собственный репозиторий powershell.
https://itmozg.ru/20-luchshih-skriptov-powershell-dlja-active-directory/
Работая много лет, я столкнулся со многими проблемами в качестве системного администратора windows. Иногда создание пользователей или групп в домене занимает значительное время. Это процесс можно автоматизировать, чтобы сэкономить время. В данной статье есть скрипты DNS powershell, скрипты DHCP powershell и мой собственный репозиторий powershell.
https://itmozg.ru/20-luchshih-skriptov-powershell-dlja-active-directory/
❤3
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.
Установки имени устройства
Установка своих DNS серверов и отключение получения их по DHCP
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
Изменение количества строк системного лога
Очистка системного лога (оставляет сообщение о смене настроек лога)
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
Отключение ненужных служб доступа (web тоже отключается, осторожно)
Фикс MTU (нужен редко, но метко)
Заблокировать доступ к WiFi по MAC-адресу
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
Настройка пароля и безопасности WiFi на default профиль
Включение пробросов портов SSH
Установки имени устройства
/system identity set name=MyHomeMikrotik
Установка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=no
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru [email protected] password=example-pass port=587 start-tls=yes [email protected]
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes
Изменение количества строк системного лога
/system logging action set memory memory-lines=10000
Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0
Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""
Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yes
Заблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tag
Настройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpassword
Включение пробросов портов SSH
/ip ssh set forwarding-enabled=both
❤1
DevOps resources
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP
https://github.com/bregman-arie/devops-resources
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP
https://github.com/bregman-arie/devops-resources
❤1👍1
Как выполнить grep для поиска текста в PowerShell
grep – это мощная утилита для поиска текста в Linux, но она недоступна в Windows.
Хотя существуют сторонние порты и решения, PowerShell предлагает встроенные эквиваленты grep, которые выполняют ту же работу в ваших скриптах.
Использование findstr для поиска в PowerShell
В PowerShell есть несколько различных утилит поиска, каждая из которых обладает своими достоинствами.
Самая простая – findstr, которая является собственным исполняемым файлом windows.
Она хорошо подходит для замены grep для простых операций поиска в командной строке.
Например, вы можете передать ему вывод ls для поиска совпадений.
Вы также можете искать несколько слов одновременно, использовать подстановочные знаки для соответствия чему угодно и использовать флаг /R для передачи основных регулярных выражений.
Хотя, если вы хотите искать явно , включая пробел, вам нужно использовать флаг /C::
Если вы привыкли к командной строке Linux и не хотите запоминать новую команду, вы можете настроить “grep” как алиас findstr, что позволит вам сохранить мышечную память.
Использование Select-String для поиска в PowerShell
Другой собственный метод, который предлагает PowerShell, – это команда Select-String, которая делает то же самое, что и findstr, но является командой PowerShell, а не исполняемым файлом Windows.
Это означает, что она лучше работает в сценариях PowerShell, и, что особенно важно, возвращает результат в виде объекта, который может быть красиво распечатан PowerShell.
Его также легче использовать в командной строке, поскольку с ним работает завершение вкладки PowerShell.
Он работает так же, как findstr, и может принимать подстановочные знаки и регулярные выражения.
Вы можете использовать Select-String для поиска текста внутри файлов, передав ему аргумент -Path. Вы также можете использовать его с вводом, передаваемым другими командами, например Get-Content.
Если вы хотите использовать его в командной строке, вы также можете присвоить ему псевдоним “grep” для быстрого доступа.
grep – это мощная утилита для поиска текста в Linux, но она недоступна в Windows.
Хотя существуют сторонние порты и решения, PowerShell предлагает встроенные эквиваленты grep, которые выполняют ту же работу в ваших скриптах.
Использование findstr для поиска в PowerShell
В PowerShell есть несколько различных утилит поиска, каждая из которых обладает своими достоинствами.
Самая простая – findstr, которая является собственным исполняемым файлом windows.
Она хорошо подходит для замены grep для простых операций поиска в командной строке.
Например, вы можете передать ему вывод ls для поиска совпадений.
ls | findstr "foo"
Вы также можете искать несколько слов одновременно, использовать подстановочные знаки для соответствия чему угодно и использовать флаг /R для передачи основных регулярных выражений.
ls | findstr /R ba[a-z]\.txt
Хотя, если вы хотите искать явно , включая пробел, вам нужно использовать флаг /C::
ls | findstr /C:"foo"
Если вы привыкли к командной строке Linux и не хотите запоминать новую команду, вы можете настроить “grep” как алиас findstr, что позволит вам сохранить мышечную память.
new-alias grep findstr
Использование Select-String для поиска в PowerShell
Другой собственный метод, который предлагает PowerShell, – это команда Select-String, которая делает то же самое, что и findstr, но является командой PowerShell, а не исполняемым файлом Windows.
Это означает, что она лучше работает в сценариях PowerShell, и, что особенно важно, возвращает результат в виде объекта, который может быть красиво распечатан PowerShell.
Его также легче использовать в командной строке, поскольку с ним работает завершение вкладки PowerShell.
Он работает так же, как findstr, и может принимать подстановочные знаки и регулярные выражения.
ls | Select-String foo
ls | Select-String -Pattern <regexPattern>
Вы можете использовать Select-String для поиска текста внутри файлов, передав ему аргумент -Path. Вы также можете использовать его с вводом, передаваемым другими командами, например Get-Content.
Select-String -Path ".\foo.txt" -Pattern ba.*
Если вы хотите использовать его в командной строке, вы также можете присвоить ему псевдоним “grep” для быстрого доступа.
remove-alias grep
new-alias grep Select-String
❤2