Grep в Linux как инструмент для администрирования
Примеры использования.
grep — утилита командной строки, используется для поиска и фильтрации текста в файлах, на основе шаблона, который (шаблон) может быть регулярным выражением.Примеры использования.
grep iodmingrep iodmin file.txt поиск iodmin в файле file.txt, с выводом полностью совпавшей строкойgrep -o iodmin file.txt поиск iodmin в файле file.txt и вывод только совпавшего куска строкиgrep -i iodmin file.txt игнорирование регистра при поискеgrep -bn iodmin file.txt показать строку (-n) и столбец (-b), где был найден iodmingrep -v iodmin file.txt инверсия поиска (найдет все строки, которые не совпадают с шаблоном iodmin)grep -A 3 iodmin file.txt вывод дополнительных трех строк, после совпавшейgrep -B 3 iodmin file.txt вывод дополнительных трех строк, перед совпавшейgrep -C 3 iodmin file.txt вывод три дополнительные строки перед и после совпавшейgrep -r iodmin $HOME рекурсивный поиск по директории $HOME и всем вложеннымgrep -c iodmin file.txt подсчет совпаденийgrep -L iodmin *.txt вывести список txt-файлов, которые не содержат iodmingrep -l iodmin *.txt вывести список txt-файлов, которые содержат iodmingrep -w iodmin file.txt совпадение только с полным словом iodmingrep -f iodmins.txt file.txt поиск по нескольким iodmin из файла iodmins.txt, шаблоны разделяются новой строкойgrep -I iodmin file.txt игнорирование бинарных файловgrep -v -f file2 file1 > file3 вывод строк, которые есть в file1 и нет в file2grep -in -e 'python' `find -type f` рекурсивный поиск файлов, содержащих слово python с выводом номера строки и совпаденийgrep -inc -e 'test' find -type f | grep -v :0 рекурсивный поиск файлов, содержащих слово python с выводом количества совпаденийgrep . *.py вывод содержимого всех py-файлов, предваряя каждую строку именем файлаgrep "Http404" apps/**/*.py рекурсивный поиск упоминаний Http404 в директории apps в py-файлах❤4
Media is too big
VIEW IN TELEGRAM
Настройки RADIUS клиента в Mikrotik RouterOS
Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения
источник
Описание процесса настройки RADIUS клиента в Mikrotik RouterOS, создание отдельного Action и правила для подключения отдельного Log, в котором будут все RADIUS сообщения
источник
👍3❤1
Подборка часто используемых команд для первоначальной настройки устройств 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❤5
Полезные команды Linux. Файловая система SWAP ( файл подкачки )
Создание swap-пространство на разделе hda3
Включить swap-пространство, расположенное на разделе hda3
Активировать swap-пространства, расположенные на разделах hda2 и hdb3
# mkswap /dev/hda3Создание swap-пространство на разделе hda3
# swapon /dev/hda3Включить swap-пространство, расположенное на разделе hda3
# swapon /dev/hda2 /dev/hdb3Активировать swap-пространства, расположенные на разделах hda2 и hdb3
👍2❤1
Список полезных команд Asterisk
asterisk -vvvvr - запуск консоли Asterisk в интерактивном режиме.sip show peers - показывает список зарегистрированных SIP-клиентов.dialplan show - показывает текущий Dialplan.reload - перезагружает конфигурацию Asterisk без остановки сервиса.restart now - перезагружает Asterisk.core show channels - показывает текущие каналы.core show version - показывает текущую версию Asterisk.core restart gracefully - перезапускает Asterisk, сохраняя текущие звонки.module show - показывает список установленных модулей.database show - показывает текущее содержимое базы данных.queue show - показывает текущее состояние очередей.pjsip show endpoints - показывает список зарегистрированных PJSIP-клиентов.queue add member - добавляет нового участника в очередь.queue remove member - удаляет участника из очереди.queue pause member - приостанавливает работу участника в очереди.queue unpause member - возобновляет работу участника в очереди.channel redirect - перенаправляет текущий звонок на другой канал.originate - инициирует новый звонок.park - паркует текущий звонок.pickup - поднимает паркованный звонок.transfer - переводит звонок на другой канал.voicemail show users - показывает список пользователей голосовой почты.voicemail reload - перезагружает конфигурацию голосовой почты.agent show - показывает список агентов.agent login - входит в систему как агент.agent logoff - выходит из системы как агент.❤3
Создание уведомлений и напоминаний на рабочем столе из Linux терминала
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
❤1
Полезные команды Linux. Манипуляции с текстом
#
Вывести содержимое файла, нумеруя выводимые строки
#
Вывести только не четные строки файла
#
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
Сравнить содержимое двух файлов
#
Заменить string1 на string2 в файле example.txt и вывести содержимое
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить первую строку из файла example.txt
#
Отобразить только строки содержащие string1
#
Удалить строку string1 из текста файла example.txt не изменяя всего остального
#
Удалить пустые символы в конце каждой строки файла example.txt
#
Вывести пятую строку
#
Вывести строки со второй по пятую
#
Заменить последовательность из любого количества нулей одним нулём
#
Вывести отсортированное содержимое двух файлов
#
Вывести отсортированное содержимое двух файлов исключая повторные значения
#
Вывести уникальные значения из отсортированного содержимого двух файлов
#
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
Перевести символы нижнего регистра в верхний
#
cat -n file1Вывести содержимое файла, нумеруя выводимые строки
#
cat example.txt | awk 'NR%2==1'Вывести только не четные строки файла
#
echo a b c | awk '{print $1,$3}'Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
echo a b c | awk '{print $1}'Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
comm -3 file1 file2Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
comm -1 file1 file2Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
comm -2 file1 file2Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
grep [0-9] /var/log/messagesОтобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
grep ^Aug /var/log/messagesОтобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
grep Aug /var/log/messagesОтобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
grep Aug -R /var/log/*Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
paste -d '+' file1 file2Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
paste file1 file2Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
sdiff file1 file2Сравнить содержимое двух файлов
#
sed 's/string1/string2/g' example.txtЗаменить string1 на string2 в файле example.txt и вывести содержимое
#
sed '/ *#/d; /^$/d' example.txtУдалить пустые строки и комментарии из файла example.txt
#
sed '/^$/d' example.txtУдалить пустые строки и комментарии из файла example.txt
#
sed -e '1d' exampe.txtУдалить первую строку из файла example.txt
#
sed -n '/string1/p'Отобразить только строки содержащие string1
#
sed -e 's/string//g' example.txtУдалить строку string1 из текста файла example.txt не изменяя всего остального
#
sed -e 's/ *$//' example.txtУдалить пустые символы в конце каждой строки файла example.txt
#
sed -n '5p;5q' example.txtВывести пятую строку
#
sed -n '2,5p' example.txtВывести строки со второй по пятую
#
sed -e 's/00*/0/g' example.txtЗаменить последовательность из любого количества нулей одним нулём
#
sort file1 file2Вывести отсортированное содержимое двух файлов
#
sort file1 file2 | uniqВывести отсортированное содержимое двух файлов исключая повторные значения
#
sort file1 file2 | uniq -uВывести уникальные значения из отсортированного содержимого двух файлов
#
sort file1 file2 | uniq -dВывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
echo 'word' | tr '[:lower:]' '[:upper:]'Перевести символы нижнего регистра в верхний
❤3
Полезный bash-скрипт: Уведомление на почту при переполнении диска
Как использовать:
1. Установите
2. Поместите скрипт, например, в
3. Добавьте в
#!/bin/bash
# Порог в процентах
THRESHOLD=90
# Email для уведомлений
EMAIL="[email protected]"
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do
usage=$(echo "$output" | awk '{ print $1}' | sed 's/%//')
partition=$(echo "$output" | awk '{ print $2 }')
if [ "$usage" -ge "$THRESHOLD" ]; then
echo "Внимание! На разделе $partition занято $usage% диска." | mail -s "⚠️ Мало места на сервере" $EMAIL
fi
done
Как использовать:
1. Установите
mailutils или mailx, если ещё не установлен.2. Поместите скрипт, например, в
/usr/local/bin/disk_check.sh.3. Добавьте в
cron, чтобы запускать регулярно, например, каждые 30 минут:
*/30 * * * * /usr/local/bin/disk_check.sh
❤3