Подборка полезных скриптов для Mikrotik
Сгенерировать резервную копию и отправить её по электронной почте
Этот скрипт создаёт файл резервной копии и отправляет его на указанный адрес электронной почты. В теме письма содержится имя маршрутизатора, текущая дата и время.
Обратите внимание, что сервер SMTP должен быть настроен перед использованием этого скрипта. Смотрите настройки в разделе /tool e-mail.
Файл резервной копии содержит конфиденциальную информацию, такую как пароли. Поэтому, чтобы получить доступ к созданным файлам резервной копии, у скрипта или планировщика должна быть политика "sensitive" (чувствительная).
Использование строки в качестве функции
Проверка пропускной способности и добавление ограничений
Этот скрипт проверяет, не превышает ли загрузка на интерфейсе 512 кбит/с, если это так, то добавляется очередь для ограничения скорости до 256 кбит/с.
Заблокировать доступ к определённым веб-сайтам
Этот скрипт полезен, если вы хотите заблокировать некоторые сайты, но не хотите использовать веб-прокси.
В этом примере проверяются записи "Rapidshare" и "youtube" в DNS-кэше, и IP-адреса добавляются в список адресов с именем "restricted". Прежде чем начать, необходимо настроить маршрутизатор для перехвата всех DNS-запросов.
и добавьте брандмауэр
Теперь мы можем написать сценарий и запланировать его выполнение, скажем, каждые 30 секунд.
Код сценария:
@sysadmin1
Сгенерировать резервную копию и отправить её по электронной почте
Этот скрипт создаёт файл резервной копии и отправляет его на указанный адрес электронной почты. В теме письма содержится имя маршрутизатора, текущая дата и время.
Обратите внимание, что сервер SMTP должен быть настроен перед использованием этого скрипта. Смотрите настройки в разделе /tool e-mail.
/system backup save name=email_backup
/tool e-mail send file=email_backup.backup to="[email protected]" body="See attached file" \
subject="$[/system identity get name] $[/system clock get time] $[/system clock get date] Backup")
Файл резервной копии содержит конфиденциальную информацию, такую как пароли. Поэтому, чтобы получить доступ к созданным файлам резервной копии, у скрипта или планировщика должна быть политика "sensitive" (чувствительная).
Использование строки в качестве функции
:global printA [:parse ":local A; :put \$A;" ];
$printA
Проверка пропускной способности и добавление ограничений
Этот скрипт проверяет, не превышает ли загрузка на интерфейсе 512 кбит/с, если это так, то добавляется очередь для ограничения скорости до 256 кбит/с.
:foreach i in=[/interface find] do={
/interface monitor-traffic $i once do={
:if ($"received-bits-per-second" > 0 ) do={
:local tmpIP [/ip address get [/ip address find interface=$i] address] ;
# :log warning $tmpIP ;
:for j from=( [:len $tmpIP] - 1) to=0 do={
:if ( [:pick $tmpIP $j] = "/") do={
/queue simple add name=$i max-limit=256000/256000 dst-address=[:pick $tmpIP 0 $j] ;
}
}
}
}
}Заблокировать доступ к определённым веб-сайтам
Этот скрипт полезен, если вы хотите заблокировать некоторые сайты, но не хотите использовать веб-прокси.
В этом примере проверяются записи "Rapidshare" и "youtube" в DNS-кэше, и IP-адреса добавляются в список адресов с именем "restricted". Прежде чем начать, необходимо настроить маршрутизатор для перехвата всех DNS-запросов.
/ip firewall nat
add action=redirect chain=dstnat comment=DNS dst-port=53 protocol=tcp to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53
и добавьте брандмауэр
/ip firewall filter
add chain=forward dst-address-list=restricted action=drop
Теперь мы можем написать сценарий и запланировать его выполнение, скажем, каждые 30 секунд.
Код сценария:
:foreach i in=[/ip dns cache find] do={
:local bNew "true";
:local cacheName [/ip dns cache all get $i name] ;
# :put $cacheName;
:if (([:find $cacheName "rapidshare"] >= 0) || ([:find $cacheName "youtube"] >= 0)) do={
:local tmpAddress [/ip dns cache get $i address] ;
# :put $tmpAddress;
# if address list is empty do not check
:if ( [/ip firewall address-list find list="restricted" ] = "") do={
:log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
/ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName;
} else={
:foreach j in=[/ip firewall address-list find list="restricted"] do={
:if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
:set bNew "false";
}
}
:if ( $bNew = "true" ) do={
:log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
/ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName;
}
}
}
}@sysadmin1
👍9🎉2❤1🥰1
Linux-Commands
Шпаргалка по bash
Файловая система
-Просмотр содержимого папки
-Перемещение по файловой системе
-Создание папок и файлов
-Копирование файлов
-Переименование или перемещение файлов
-Удаление папок и файлов
Алиасы
Разное
Использование переменных
Подстановка команд в переменные
Математические операции
Управляющая конструкция if-then
Управляющая конструкция if-then-else
Конструкция CASE
Циклы
Сравнение чисел
Сравнение строк
Проверки файлов
Операторы
https://github.com/sergeevdm/Linux-Commands
@sysadmin1
Шпаргалка по bash
Файловая система
-Просмотр содержимого папки
-Перемещение по файловой системе
-Создание папок и файлов
-Копирование файлов
-Переименование или перемещение файлов
-Удаление папок и файлов
Алиасы
Разное
Использование переменных
Подстановка команд в переменные
Математические операции
Управляющая конструкция if-then
Управляющая конструкция if-then-else
Конструкция CASE
Циклы
Сравнение чисел
Сравнение строк
Проверки файлов
Операторы
https://github.com/sergeevdm/Linux-Commands
@sysadmin1
👍9🔥3❤1
find в Linux как инструмент для администрирования
find — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. С лохматых тысячелетий есть и поддерживаться почти всеми из них.
Базовый синтаксис ключей
Примеры использования
Ищем все файлы, начиная с текущей директории, название которых начинается на iodmin:
Найти все файлы, начиная с корневой директории, название которых начинается на iodmin:
Поиск в директориях /usr/local/man и /opt/local/man файлов, название которых начинается на iodmin:
Ищем графические файлы, начиная с текущего каталога (см.на кавычки):
Вывести список файлов (см. на / ) во всей файловой системе, чей размер больше 100 Мб:
Ищем файлы в указанных каталогах:
@sysadmin1
find — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. С лохматых тысячелетий есть и поддерживаться почти всеми из них.
Базовый синтаксис ключей
-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки. Опция -name' различает прописные и строчные буквы; чтобы использовать поиск без этих различий, воспользуйтесь опцией -iname';-type — тип искомого: f=файл, d=каталог, l=ссылка (link), p=канал (pipe), s=сокет;-user — владелец: имя пользователя или UID;-group — владелец: группа пользователя или GID;-perm — указываются права доступа;-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом);-atime — время последнего обращения к файлу (в днях);-amin — время последнего обращения к файлу (в минутах);-ctime — время последнего изменения владельца или прав доступа к файлу (в днях);-cmin — время последнего изменения владельца или прав доступа к файлу (в минутах);-mtime — время последнего изменения файла (в днях);-mmin — время последнего изменения файла (в минутах);-newer другой_файл — искать файлы созданные позже, чем другой_файл;-delete — удалять найденные файлы;-ls — генерирует вывод как команда ls -dgils;-print — показывает на экране найденные файлы;-print0 — выводит путь к текущему файлу на стандартный вывод, за которым следует символ ASCII NULL (код символа 0);-exec command {} \; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис;-ok — перед выполнением команды указанной в -exec, выдаёт запрос;-depth или -d — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога;-maxdepth — максимальный уровень вложенности для поиска. «-maxdepth 0» ограничивает поиск текущим каталогом;-prune — используется, когда вы хотите исключить из поиска определённые каталоги;-mount или -xdev — не переходить на другие файловые системы;-regex — искать по имени файла используя регулярные выражения;-regextype тип — указание типа используемых регулярных выражений;-P — не разворачивать символические ссылки (поведение по умолчанию);-L — разворачивать символические ссылки;-empty — только пустые каталоги.Примеры использования
Ищем все файлы, начиная с текущей директории, название которых начинается на iodmin:
find . -name 'iodmin*'Найти все файлы, начиная с корневой директории, название которых начинается на iodmin:
find / -name 'iodmin*'Поиск в директориях /usr/local/man и /opt/local/man файлов, название которых начинается на iodmin:
find /usr/local/man /opt/local/man -name 'iodmin*'Ищем графические файлы, начиная с текущего каталога (см.на кавычки):
find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)"Вывести список файлов (см. на / ) во всей файловой системе, чей размер больше 100 Мб:
find / -size +100M -printИщем файлы в указанных каталогах:
find /var/spool/postfix/{deferred,active,maildrop,incoming}/ -type f@sysadmin1
👍8🔥2❤1
🤣22🔥7😁4
LazyJournal - это терминальный пользовательский интерфейс (TUI) для journalctl, логов файловой системе и контейнеров Docker для быстрого просмотра и фильтрации, написанный на языке Go с использованием библиотеки gocui.
— Простая установка, для запуска достаточно загрузить в систему один исполняемый файл без зависимостей.
— Проект вдохновлен работами Jesse Duffield, по этому интерфейс будет знаком всем тем, кто уже использует LazyDocker и LazyGit.
— Для всех журналов присутствует возможность динамической фильтрации вывода с поддержкой нечеткого поиска (поиск всех фраз, разделенных пробелом в любом месте строки) и регулярных выражений (в стиле fzf и grep), а также подсветкой найденных слов.
— Позволяет получить список всех доступных журналов юнитов из journalctl (используется для чтения логов из подсистемы systemd).
— Возможность просматривать все доступные лог-файлы из каталога /var/log с сортировкой по дате изменения (например, для Apache, Nginx или СУБД), включая доступ к архивным логам.
— Поддержка логов контейнеров Docker.
— Проект будет полезен в первую очередь для системных администраторов Linux, больше не нужно вручную искать журналы в системе и каждый раз вызывать grep.
GitHub: https://github.com/Lifailon/lazyjournal
@sysadmin1
— Простая установка, для запуска достаточно загрузить в систему один исполняемый файл без зависимостей.
— Проект вдохновлен работами Jesse Duffield, по этому интерфейс будет знаком всем тем, кто уже использует LazyDocker и LazyGit.
— Для всех журналов присутствует возможность динамической фильтрации вывода с поддержкой нечеткого поиска (поиск всех фраз, разделенных пробелом в любом месте строки) и регулярных выражений (в стиле fzf и grep), а также подсветкой найденных слов.
— Позволяет получить список всех доступных журналов юнитов из journalctl (используется для чтения логов из подсистемы systemd).
— Возможность просматривать все доступные лог-файлы из каталога /var/log с сортировкой по дате изменения (например, для Apache, Nginx или СУБД), включая доступ к архивным логам.
— Поддержка логов контейнеров Docker.
— Проект будет полезен в первую очередь для системных администраторов Linux, больше не нужно вручную искать журналы в системе и каждый раз вызывать grep.
GitHub: https://github.com/Lifailon/lazyjournal
@sysadmin1
GitHub
GitHub - Lifailon/lazyjournal: A TUI for reading logs from journald, auditd, file system, Docker containers, Compose stacks, Podman…
A TUI for reading logs from journald, auditd, file system, Docker containers, Compose stacks, Podman and Kubernetes pods with support for output coloring and multiple filtering modes. - Lifailon/la...
👍5❤2🔥2
Media is too big
VIEW IN TELEGRAM
🤣10🔥4👍1😁1
VMware Fusion и Workstation теперь бесплатны для всех пользователей
Мы рады сообщить о значительном изменении, которое отражает наше стремление сделать VMware Fusion и VMware Workstation более доступными, чем когда-либо. Начиная с 11 ноября 2024 года, эти мощные программы для виртуализации на настольных компьютерах будут бесплатны для всех — для коммерческих, образовательных и личных пользователей.
https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-fusion-and-workstation-are-now-free-for-all-users/
@sysadmin1
Мы рады сообщить о значительном изменении, которое отражает наше стремление сделать VMware Fusion и VMware Workstation более доступными, чем когда-либо. Начиная с 11 ноября 2024 года, эти мощные программы для виртуализации на настольных компьютерах будут бесплатны для всех — для коммерческих, образовательных и личных пользователей.
https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-fusion-and-workstation-are-now-free-for-all-users/
@sysadmin1
🔥7👍4🎉3❤1
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Компьютерные сети. Продвинутые темы
Протокол IPv6
Адреса IPv6
Автоматическое назначение IPv6 адресов
Протокол NDP
Протоколы маршрутизации
Протокол RIP
Протокол OSPF
Иерархическая маршрутизация
Протокол BGP
Web сокеты
@sysadmin1
Протокол IPv6
Адреса IPv6
Автоматическое назначение IPv6 адресов
Протокол NDP
Протоколы маршрутизации
Протокол RIP
Протокол OSPF
Иерархическая маршрутизация
Протокол BGP
Web сокеты
@sysadmin1
🔥10👍4❤1