Подборка часто используемых команд для первоначальной настройки устройств 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
👍4
Наглядное руководство по SSH-туннелям
Автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для более наглядного объяснения того, как это работает, графически показывает потоки трафика.
Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.
https://habr.com/ru/companies/flant/articles/691388/
original https://robotmoon.com/ssh-tunnels/
Автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для более наглядного объяснения того, как это работает, графически показывает потоки трафика.
Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.
https://habr.com/ru/companies/flant/articles/691388/
original https://robotmoon.com/ssh-tunnels/
PGTune рассчитывает конфигурацию для PostgreSQL, основываясь на максимальной производительности для данной конфигурации оборудования. Это не серебряная пуля для оптимизации настроек PostgreSQL. Многие настройки зависят не только от конфигурации оборудования, но и от размера базы данных, количества клиентов и сложности запросов. Оптимальная конфигурация базы данных может быть получена только при учете всех этих параметров.
https://github.com/le0pard/pgtune
https://pgtune.leopard.in.ua/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Process substitution в Bash
Process substitution — это функция в Bash, которая позволяет использовать вывод команды или процесса в качестве входа для другой команды. Она помогает оптимизировать Bash-скрипты, уменьшив потребность во временных файлах и упростив сложные конвейеры
Синтаксис process substitution:
Некоторые примеры использования process substitution для оптимизации Bash-скриптов:
▶️ Сравнение вывода двух команд
Подстановку процесса можно использовать для сравнения вывода двух команд с помощью команды diff. Например, для сравнения вывода ls в двух разных каталогах:
▶️ Перенаправление вывода на несколько команд
Вы можете использовать подстановку процесса, чтобы отправить вывод команды нескольким командам. Например, чтобы отправить вывод ls и в grep, и в wc:
▶️ Цепочка процессов замены
Подстановку процессов можно объединить в цепочку для создания сложных конвейеров. Например, чтобы отсортировать и подсчитать слова в текстовом файле, а затем отобразить 10 самых распространенных слов:
▶️ Объединение и сортировка двух файлов
Предположим, у вас есть два отсортированных файла, file1.txt и file2.txt, и вы хотите объединить их в новый отсортированный файл, merged.txt . Вы можете использовать команду sort вместе с подстановкой процесса, чтобы добиться этого:
▶️ Отображение различий между деревьями каталогов
Вы можете использовать замену процессов для сравнения структуры каталогов двух каталогов с помощью команды tree и diff:
▶️ Фильтрация и сохранение записей журнала
Предположим, у вас есть файл журнала, и вы хотите извлечь записи, содержащие слово "ERROR", сохранить их в отдельный файл и отобразить на экране. Для этого можно использовать grep и tee с заменой процессов:
▶️ Выполнение арифметических операций над столбцами CSV-файла
Вы можете использовать awk с подстановкой процессов для выполнения арифметических операций над столбцами CSV-файла. Например, чтобы сложить столбцы 2 и 3 CSV-файла и отобразить результат:
▶️ Объединение стандартного вывода и стандартной ошибки
Чтобы объединить стандартный поток вывода и стандартный поток ошибок в один поток, можно использовать замену процессов с помощью cat:
В этом примере команда представляет команду, которую вы хотите выполнить. Подстановка процесса >(cat >&1) перенаправляет стандартный поток ошибок (файловый дескриптор 2) в стандартный поток вывода (файловый дескриптор 1).
Эти примеры иллюстрируют мощь и гибкость подстановки процессов в Bash. Понимая, как эффективно использовать эту функцию, вы можете создавать более сложные и эффективные скрипты.
источник
Process substitution — это функция в Bash, которая позволяет использовать вывод команды или процесса в качестве входа для другой команды. Она помогает оптимизировать Bash-скрипты, уменьшив потребность во временных файлах и упростив сложные конвейеры
Синтаксис process substitution:
<(command)
. Создаёт именованный канал (FIFO) и подключает к нему вывод команды внутри скобок. Именованный канал ведёт себя как файл, что позволяет использовать его в качестве входа для другой команды. >(command)
. Также создаёт именованный канал, но подключает его к входу команды внутри скобок. Это позволяет перенаправить вывод одной команды на вход другой команды.Некоторые примеры использования process substitution для оптимизации Bash-скриптов:
Подстановку процесса можно использовать для сравнения вывода двух команд с помощью команды diff. Например, для сравнения вывода ls в двух разных каталогах:
diff <(ls dir1) <(ls dir2)
Вы можете использовать подстановку процесса, чтобы отправить вывод команды нескольким командам. Например, чтобы отправить вывод ls и в grep, и в wc:
ls | tee >(grep 'txt$') >(wc -l) > /dev/null
Подстановку процессов можно объединить в цепочку для создания сложных конвейеров. Например, чтобы отсортировать и подсчитать слова в текстовом файле, а затем отобразить 10 самых распространенных слов:
cat file.txt | tr '[:space:]' '\n' | grep -v '^$' | sort | uniq -c | sort -nr | head -n 10
Предположим, у вас есть два отсортированных файла, file1.txt и file2.txt, и вы хотите объединить их в новый отсортированный файл, merged.txt . Вы можете использовать команду sort вместе с подстановкой процесса, чтобы добиться этого:
sort -m <(sort file1.txt) <(sort file2.txt) > merged.txt
Вы можете использовать замену процессов для сравнения структуры каталогов двух каталогов с помощью команды tree и diff:
diff -y <(tree -fi dir1) <(tree -fi dir2)
Предположим, у вас есть файл журнала, и вы хотите извлечь записи, содержащие слово "ERROR", сохранить их в отдельный файл и отобразить на экране. Для этого можно использовать grep и tee с заменой процессов:
grep 'ERROR' logfile.txt | tee >(cat > errors.txt)
Вы можете использовать awk с подстановкой процессов для выполнения арифметических операций над столбцами CSV-файла. Например, чтобы сложить столбцы 2 и 3 CSV-файла и отобразить результат:
awk -F, '{ print $1, $2 + $3 }' <(cat file.csv)
Чтобы объединить стандартный поток вывода и стандартный поток ошибок в один поток, можно использовать замену процессов с помощью cat:
command 2> >(cat >&1)
В этом примере команда представляет команду, которую вы хотите выполнить. Подстановка процесса >(cat >&1) перенаправляет стандартный поток ошибок (файловый дескриптор 2) в стандартный поток вывода (файловый дескриптор 1).
Эти примеры иллюстрируют мощь и гибкость подстановки процессов в Bash. Понимая, как эффективно использовать эту функцию, вы можете создавать более сложные и эффективные скрипты.
источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1💯1
Примеры использования команды grep в Linux
Отображение строк до или после строки с результатом поиска
Часто пользователю нужно вывести на экран не только строку, содержащую искомый шаблон. Но и несколько строк до или после нее, чтобы лучше понимался контекст. Специально на такой случай у команды grep есть две особых опции:
-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Попробуем отфильтровать вывод команды ifconfig, который для непривычного пользователя может быть излишне объемным.
Таким образом Вы получите строку, содержащую шаблон eth0, а также 4 строки до нее:
Тогда как таким способом Вы получите строку, содержащую шаблон UP, а также 2 строки после нее:
Выведение заданного числа всех соседних строк с помощью команды grep
В том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:
Подсчет числа строк, содержащих искомое выражение
В некоторых случаях Вам могут понадобится не сами строчки, включающие заданное выражение, а их общее количество. В таком случае воспользуйтесь опцией -c. Следующая комбинация команд выведет на экран количество строк в выводе команды ifconfig, включающих шаблон inet6.
Рекурсивный поиск строки по всем каталогам с помощью команды grep
Предположим, что Вам необходимо найти все вложения указанного выражения в текущем каталоге со всеми его подкаталогами и так далее. Для этого добавьте к команде grep опцию -r:
В результате утилита будет рекурсивно искать выражение "function" по всему дереву каталогов, начинающемуся с рабочего каталога.
Поиск в архивах gzip
Утилита gzip (от англ. GNU Zip) — это популярный инструмент для сжатия данных без потерь в Linux, использующий алгоритм Deflate.
При этом с помощью команды zgrep можно вести поиск по сжатому архиву точно так же, как Вы это делали вне сжатого архива с помощью команды grep. Следующая команда будет искать в архиве /var/log/syslog.2.gz строки, содержащие шаблон error с игнорированием регистра:
Отображение строк до или после строки с результатом поиска
Часто пользователю нужно вывести на экран не только строку, содержащую искомый шаблон. Но и несколько строк до или после нее, чтобы лучше понимался контекст. Специально на такой случай у команды grep есть две особых опции:
-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Попробуем отфильтровать вывод команды ifconfig, который для непривычного пользователя может быть излишне объемным.
Таким образом Вы получите строку, содержащую шаблон eth0, а также 4 строки до нее:
# ifconfig | grep –A 4 eth0
Тогда как таким способом Вы получите строку, содержащую шаблон UP, а также 2 строки после нее:
# ifconfig | grep -B 2 UP
Выведение заданного числа всех соседних строк с помощью команды grep
В том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:
# ifconfig | grep -C 2 lo
Подсчет числа строк, содержащих искомое выражение
В некоторых случаях Вам могут понадобится не сами строчки, включающие заданное выражение, а их общее количество. В таком случае воспользуйтесь опцией -c. Следующая комбинация команд выведет на экран количество строк в выводе команды ifconfig, включающих шаблон inet6.
# ifconfig | grep -c inet6
Рекурсивный поиск строки по всем каталогам с помощью команды grep
Предположим, что Вам необходимо найти все вложения указанного выражения в текущем каталоге со всеми его подкаталогами и так далее. Для этого добавьте к команде grep опцию -r:
В результате утилита будет рекурсивно искать выражение "function" по всему дереву каталогов, начинающемуся с рабочего каталога.
# grep –r "function" *
Поиск в архивах gzip
Утилита gzip (от англ. GNU Zip) — это популярный инструмент для сжатия данных без потерь в Linux, использующий алгоритм Deflate.
При этом с помощью команды zgrep можно вести поиск по сжатому архиву точно так же, как Вы это делали вне сжатого архива с помощью команды grep. Следующая команда будет искать в архиве /var/log/syslog.2.gz строки, содержащие шаблон error с игнорированием регистра:
# zgrep –i error /var/log/syslog.2.gz
This media is not supported in your browser
VIEW IN TELEGRAM
Сетевые протоколы
1. HTTP (Hypertext Transfer Protocol):
Веб-коммуникация: Обеспечивает взаимодействие браузера и сервера, подходит для незащищенной передачи данных.
2. HTTPS (Hypertext Transfer Protocol Secure):
Безопасная веб-связь: Обеспечивает конфиденциальность благодаря шифрованию SSL/TLS.
3. FTP (File Transfer Protocol):
Передача файлов: Облегчает обмен файлами между компьютерами, используя отдельные каналы.
4. TCP (Transmission Control Protocol):
Надежная доставка данных: Обеспечивает упорядоченную и надежную передачу данных с проверкой на ошибки.
5. IP (Internet Protocol):
Управление пакетами данных: Занимается маршрутизацией и адресацией пакетов данных, присваивая уникальные IP-адреса.
6. UDP (User Datagram Protocol):
Быстрая передача данных: Обеспечивает бесконтактную и более быструю передачу данных без функций обеспечения надежности.
7. SMTP (Simple Mail Transfer Protocol):
Отправка электронной почты: Управляет отправкой электронной почты между серверами с помощью архитектуры клиент-сервер.
8. SSH (Secure Shell):
Безопасный удаленный доступ: Обеспечивает безопасный доступ к удаленным устройствам, шифруя связь между клиентом и сервером.
9. IMAP (Internet Message Access Protocol):
Доступ к электронной почте: Позволяет получать доступ и извлекать электронную почту с сервера, сохраняя ее на сервере.
1. HTTP (Hypertext Transfer Protocol):
Веб-коммуникация: Обеспечивает взаимодействие браузера и сервера, подходит для незащищенной передачи данных.
2. HTTPS (Hypertext Transfer Protocol Secure):
Безопасная веб-связь: Обеспечивает конфиденциальность благодаря шифрованию SSL/TLS.
3. FTP (File Transfer Protocol):
Передача файлов: Облегчает обмен файлами между компьютерами, используя отдельные каналы.
4. TCP (Transmission Control Protocol):
Надежная доставка данных: Обеспечивает упорядоченную и надежную передачу данных с проверкой на ошибки.
5. IP (Internet Protocol):
Управление пакетами данных: Занимается маршрутизацией и адресацией пакетов данных, присваивая уникальные IP-адреса.
6. UDP (User Datagram Protocol):
Быстрая передача данных: Обеспечивает бесконтактную и более быструю передачу данных без функций обеспечения надежности.
7. SMTP (Simple Mail Transfer Protocol):
Отправка электронной почты: Управляет отправкой электронной почты между серверами с помощью архитектуры клиент-сервер.
8. SSH (Secure Shell):
Безопасный удаленный доступ: Обеспечивает безопасный доступ к удаленным устройствам, шифруя связь между клиентом и сервером.
9. IMAP (Internet Message Access Protocol):
Доступ к электронной почте: Позволяет получать доступ и извлекать электронную почту с сервера, сохраняя ее на сервере.
👍2
Шпаргалка по systemd
Управление состояниями системы:
1. Перезагрузка системы:
2. Выключение системы:
3. Перевести систему в спящий режим:
4. Перевести систему в гибернацию:
5. Перевести систему в гибридный режим сна:
Работа с юнит-файлами:
1. Показать путь к юнит-файлу службы:
2. Редактирование юнит-файла службы:
Команда откроет конфигурацию в редакторе. Можно использовать флаг --full для редактирования полной версии юнит-файла.
3. Переактивация всех юнитов после изменений:
4. Показать конфигурацию службы:
5. Показать все зависимости службы:
Логи:
1. Просмотр логов службы:
2. Просмотр системных логов с конца:
3. Просмотр логов для текущей сессии:
4. Просмотр логов ядра:
Другие полезные команды:
1. Получить статус загрузки:
2. Перевести систему в однопользовательский режим (rescue mode):
3. Перевести систему в режим восстановления (emergency mode):
Описание формата юнит-файлов:
Юнит-файлы обычно хранятся в /etc/systemd/system/ или /lib/systemd/system/.
- [Unit] — Определяет общие атрибуты юнита, такие как описание и зависимости.
- [Service] — Конфигурация для сервисов, например, что запускать (`ExecStart=`) и как управлять процессом.
- [Install] — Настройки для включения или отключения юнита при загрузке.
Пример юнит-файла:
Управление состояниями системы:
1. Перезагрузка системы:
systemctl reboot
2. Выключение системы:
systemctl poweroff
3. Перевести систему в спящий режим:
systemctl suspend
4. Перевести систему в гибернацию:
systemctl hibernate
5. Перевести систему в гибридный режим сна:
systemctl hybrid-sleep
Работа с юнит-файлами:
1. Показать путь к юнит-файлу службы:
systemctl show -p FragmentPath <имя_сервиса>
2. Редактирование юнит-файла службы:
systemctl edit <имя_сервиса>
Команда откроет конфигурацию в редакторе. Можно использовать флаг --full для редактирования полной версии юнит-файла.
3. Переактивация всех юнитов после изменений:
systemctl daemon-reload
4. Показать конфигурацию службы:
systemctl cat <имя_сервиса>
5. Показать все зависимости службы:
systemctl list-dependencies <имя_сервиса>
Логи:
1. Просмотр логов службы:
journalctl -u <имя_сервиса>
2. Просмотр системных логов с конца:
journalctl -e
3. Просмотр логов для текущей сессии:
journalctl -b
4. Просмотр логов ядра:
journalctl -k
Другие полезные команды:
1. Получить статус загрузки:
systemctl is-system-running
2. Перевести систему в однопользовательский режим (rescue mode):
systemctl rescue
3. Перевести систему в режим восстановления (emergency mode):
systemctl emergency
Описание формата юнит-файлов:
Юнит-файлы обычно хранятся в /etc/systemd/system/ или /lib/systemd/system/.
- [Unit] — Определяет общие атрибуты юнита, такие как описание и зависимости.
- [Service] — Конфигурация для сервисов, например, что запускать (`ExecStart=`) и как управлять процессом.
- [Install] — Настройки для включения или отключения юнита при загрузке.
Пример юнит-файла:
[Unit]
Description=Пример сервиса
After=network.target
[Service]
ExecStart=/usr/bin/пример-программы
Restart=on-failure
[Install]
WantedBy=multi-user.target
👍2
Пример 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
👍3
Производительность RDP в Windows Server и способы ее повышения
Эта статья актуальна для Windows Server 2019 в качестве сервера и Windows 10 в качестве клиента RDP. В статье мы рассмотрим шаги, которые следует предпринять для достижения максимальной производительности терминальных сессий RDP в Windows Server.
https://telegra.ph/Proizvoditelnost-RDP-v-Windows-Server-i-sposoby-ee-povysheniya-09-23
Эта статья актуальна для Windows Server 2019 в качестве сервера и Windows 10 в качестве клиента RDP. В статье мы рассмотрим шаги, которые следует предпринять для достижения максимальной производительности терминальных сессий RDP в Windows Server.
https://telegra.ph/Proizvoditelnost-RDP-v-Windows-Server-i-sposoby-ee-povysheniya-09-23
👍3
Основы мониторинга (обзор Prometheus и Grafana)
Мониторинг сегодня – фактически обязательная «часть программы» для компании любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus и Grafana
https://habr.com/ru/post/709204/
Мониторинг сегодня – фактически обязательная «часть программы» для компании любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus и Grafana
https://habr.com/ru/post/709204/
👍2
Ioping
Константин Хлебников разработал полезную утилиту ioping, позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.
Установка в Debian 11
Поддерживаемые ОС
GNU/Linux, GNU/HURD, Windows, OS X, FreeBSD, DragonFlyBSD, OpenBSD
Пример выполнения:
https://github.com/koct9i/ioping
Константин Хлебников разработал полезную утилиту ioping, позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.
Установка в Debian 11
# apt install ioping
Поддерживаемые ОС
GNU/Linux, GNU/HURD, Windows, OS X, FreeBSD, DragonFlyBSD, OpenBSD
Пример выполнения:
$ ioping /home
4096 bytes from /home (ext4 /dev/sda5): request=1 time=0.4 ms
4096 bytes from /home (ext4 /dev/sda5): request=2 time=0.8 ms
4096 bytes from /home (ext4 /dev/sda5): request=3 time=0.9 ms
4096 bytes from /home (ext4 /dev/sda5): request=4 time=0.3 ms
4096 bytes from /home (ext4 /dev/sda5): request=5 time=0.2 ms
--- . ioping statistics ---
5 requests completed in 4266.5 ms
min/avg/max/mdev = 0.2/0.5/0.9/0.1 ms
https://github.com/koct9i/ioping
GitHub
GitHub - koct9i/ioping: simple disk I/0 latency measuring tool
simple disk I/0 latency measuring tool. Contribute to koct9i/ioping development by creating an account on GitHub.
👍2
📌Совет по Linux
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Вот синтаксис:
Пример:
Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Вот синтаксис:
$ time <команда>.
Пример:
$ time find / -perm -u=s -type f &>/dev/null
Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
👍4