15 супер полезных примеров команды find в Linux
Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Она используется для поиска файлов и папок через командную строку Linux.
Команда find — одна из самых мощных и широко применимых команд. При этом она крайне объёмная и насчитывает более 50 опций, в которых легко запутаться, особенно в сочетании с командами exec или xargs.
Если вы сисадмин или разработчик, избежать команды find при работе с командной строкой не получится. Так что давайте научимся её не бояться и пользоваться её возможностями в полной мере.
Для этого разберём самые распространённые случаи практического применения команды find. Но для начала покажу вам синтаксис и принцип работы с командой.
Поиск файлов и папок по имени
Поиск только файлов или только папок
Поиск без учёта регистра
Поиск файлов по расширению
Поиск файлов в заданной папке
Поиск файлов в нескольких папках
Поиск пустых файлов и папок
Поиск крупных и мелких файлов (поиск по размеру файла)
https://habr.com/ru/companies/first/articles/593669/
Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Она используется для поиска файлов и папок через командную строку Linux.
Команда find — одна из самых мощных и широко применимых команд. При этом она крайне объёмная и насчитывает более 50 опций, в которых легко запутаться, особенно в сочетании с командами exec или xargs.
Если вы сисадмин или разработчик, избежать команды find при работе с командной строкой не получится. Так что давайте научимся её не бояться и пользоваться её возможностями в полной мере.
Для этого разберём самые распространённые случаи практического применения команды find. Но для начала покажу вам синтаксис и принцип работы с командой.
Поиск файлов и папок по имени
find . -name SEARCH_NAME
Поиск только файлов или только папок
find . -type f -name SEARCH_NAME
Поиск без учёта регистра
find . -type f -iname SEARCH_NAME
Поиск файлов по расширению
find . -type f -name "*.cpp"
Поиск файлов в заданной папке
abhishek@LHB:~/Examples$ find ./new -name mystuff
./new/mystuff
Поиск файлов в нескольких папках
find ./location1 /second/location -type f -name "pattern"
Поиск пустых файлов и папок
find . -empty
Поиск крупных и мелких файлов (поиск по размеру файла)
find . -size +1G
https://habr.com/ru/companies/first/articles/593669/
❤3
Выводим список установленных пакетов в Linux по дате
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
❤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="admin@example.com"
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
❤4👾1
Руководство по стеку протоколов 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
❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Tfautomv
Автоматическое создание перемещенных блоков Terraform для безболезненного рефакторинга
https://github.com/padok-team/tfautomv
Автоматическое создание перемещенных блоков Terraform для безболезненного рефакторинга
https://github.com/padok-team/tfautomv
👍3
Linux Dash
Позволяет мониторить:
Средняя загрузка системы (load average)
Оперативная память (Всего/Использовано/Свободно)
Использование дисков (свободное место)
Список пользователей
Список программного обеспечения и путь до бинарного файла
Список интерфейсов с их IP-адресами
Текущая скорость интерфейса (Входящая/Исходящая)
Список подключенных пользователей
Список процессов
https://github.com/tariqbuilds/linux-dash
Demo https://afaqurk.github.io/linux-dash/#/system-status
Позволяет мониторить:
Средняя загрузка системы (load average)
Оперативная память (Всего/Использовано/Свободно)
Использование дисков (свободное место)
Список пользователей
Список программного обеспечения и путь до бинарного файла
Список интерфейсов с их IP-адресами
Текущая скорость интерфейса (Входящая/Исходящая)
Список подключенных пользователей
Список процессов
https://github.com/tariqbuilds/linux-dash
Demo https://afaqurk.github.io/linux-dash/#/system-status
👍2❤1
Скрипт для мониторинга дискового пространства в Linux
Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (`MAX`), адрес электронной почты для получения оповещений (`EMAIL`) и целевой раздел (`PARTITION`).
Скрипт использует команду df для сбора информации об использовании диска и отправляет предупреждения по электронной почте, если текущее использование превышает заданный порог.
Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (`MAX`), адрес электронной почты для получения оповещений (`EMAIL`) и целевой раздел (`PARTITION`).
Скрипт использует команду df для сбора информации об использовании диска и отправляет предупреждения по электронной почте, если текущее использование превышает заданный порог.
#!/bin/bash
# Set the maximum allowed disk space usage percentage
MAX=90
# Set the email address to receive alerts
EMAIL=user@example.com
# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1
# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h "$PARTITION" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Remove the percentage sign
if [ "$USAGE" -gt "$MAX" ]; then
# Send an email alert with detailed disk usage information
echo -e "Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO" | \
mail -s "Disk Space Alert on $HOSTNAME" "$EMAIL"
fi
❤2
Linux Dash
Позволяет мониторить:
Средняя загрузка системы (load average)
Оперативная память (Всего/Использовано/Свободно)
Использование дисков (свободное место)
Список пользователей
Список программного обеспечения и путь до бинарного файла
Список интерфейсов с их IP-адресами
Текущая скорость интерфейса (Входящая/Исходящая)
Список подключенных пользователей
Список процессов
https://github.com/tariqbuilds/linux-dash
Demo https://afaqurk.github.io/linux-dash/#/system-status
Позволяет мониторить:
Средняя загрузка системы (load average)
Оперативная память (Всего/Использовано/Свободно)
Использование дисков (свободное место)
Список пользователей
Список программного обеспечения и путь до бинарного файла
Список интерфейсов с их IP-адресами
Текущая скорость интерфейса (Входящая/Исходящая)
Список подключенных пользователей
Список процессов
https://github.com/tariqbuilds/linux-dash
Demo https://afaqurk.github.io/linux-dash/#/system-status
❤1
System Monitoring Center – Инструмент для мониторинга производительности и использования системы на основе GTK и Python
Оссобености:
• Мониторинг ЦП, ОЗУ, диска, сети, ГП, информации об оборудовании
• Мониторинг и управление процессами, пользователями, устройствами хранения, запускаемыми приложениями, службами (systemd) и переменными среды
• Мониторинг общей системной информации
• Параметры настройки для каждой вкладки
• Низкое использование системных ресурсов при мониторинге
• Предоставляет справочную информацию при наведении курсора мыши на несколько объектов графического интерфейса
• Адаптируется к теме системы
https://github.com/hakandundar34coding/system-monitoring-center
Оссобености:
• Мониторинг ЦП, ОЗУ, диска, сети, ГП, информации об оборудовании
• Мониторинг и управление процессами, пользователями, устройствами хранения, запускаемыми приложениями, службами (systemd) и переменными среды
• Мониторинг общей системной информации
• Параметры настройки для каждой вкладки
• Низкое использование системных ресурсов при мониторинге
• Предоставляет справочную информацию при наведении курсора мыши на несколько объектов графического интерфейса
• Адаптируется к теме системы
https://github.com/hakandundar34coding/system-monitoring-center
Шпаргалка по windows CMD. Список команд cmd windows с описанием
Способы запуска командной строки
Командная строка Windows может быть запущена, как и любое другое стандартное приложение - через Главное меню Windows, с использованием диалога Выполнить (комбинации клавиш Win+R, Win+X), а также с использованием открытия Проводником ярлыка или исполняемого файла C:\WINDOWS\System32\cmd.exe. В результате запуска откроется окно командной строки. Результаты выполнения команд отображаются в окне консоли Windows и нередко зависят от наличия достаточных прав у текущего пользователя. Для выполнения команд в контексте учетной записи Администратора в операционных системах Windows Vista - Windows 10 необходимо использовать режим Запуск от имени Администратора.
SETX - утилита для создания системных переменных
SFC - проверка и восстановление системных файлов Windows
SHARE - просмотр, создание и удаление разделяемых в локальной сети ресурсов
SHIFT сдвиг входных параметров для командного файла
SHUTDOWN - выключение или перезагрузка компьютера
SLEEP - задержка по времени в пакетном файле
SLMGR - управление лицензированием программного обеспечения Windows
SORT - сортировка строк в текстовом файле
START - запуск приложения или командного файла
STORDIAG - диагностика системы хранения данных в Windows 10
SUBST - назначение (отмена назначения) каталогу буквы диска
SxSTrace - диагностическое средство трассировки компонент системы
SYSTEMINFO - отображение информации о системе
TAKEOWN - изменение владельца файла или каталога
TAR - архивирование данных архиватором tar в Windows 10
TASKKILL - завершение процессов на локальной или удаленной системе.
TASKLIST - отображение списка выполняющихся приложений и служб Windows
TIME - отображение и установка системного времени
TELNET - telnet-клиент Windows
TFTP - TFTP-клиент Windows
TIMEOUT - задержка в пакетных файлах
TITLE - изменение заголовка окна CMD.EXE
TRACERT - трассировка маршрута к удаленному узлу
TREE - отображение структуры каталога в графическом виде
TSCON - подключение к сессии удаленного рабочего стола (RDP).
TSDISCON - отключение сессии удаленного рабочего стола (RDP).
TSKILL - завершение процессов, адаптированное для среды сервера терминалов (RDP).
TYPE - вывод на экран содержимого текстового файла
TypePerf - вывод сведений о производительности на экран или в журнал
TZUTIL - управление часовыми поясами в среде Windows
VER - отображение версии операционной системы
VERIFY - управление режимом проверки записываемых файлов
VOL - вывод данных метки тома
VSSADMIN - администрирование службы теневого копирования томов.
W32TM - управление службой времени Windows
WAITFOR - организация обмена сигналами между компьютерами
WBADMIN - управление резервным копированием и восстановлением в Windows
WEVTUTIL - управление событиями в Windows
WHERE - определение места расположения файлов
WHOAMI - вывод имени текущего пользователя
WINDIFF - сравнение содержимого файлов
WinMgmt - обслуживание инструментария управления Windows (WMI)
WINRM - удаленное управление Windows из командной строки
WINRS - удаленная командная строка (Remote Shell)
WINSAT - средство проверки производительности Windows
WMIC - выполнение команды WMI в командной строке
WSCollect - получить CAB-файл с копиями журналов Windows 10 на рабочем столе
Wscript - сервер сценариев Windows с графическим интерфейсом
WSL - выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
WSLconfig - конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
XCOPY - копирование файлов и папок
Способы запуска командной строки
Командная строка Windows может быть запущена, как и любое другое стандартное приложение - через Главное меню Windows, с использованием диалога Выполнить (комбинации клавиш Win+R, Win+X), а также с использованием открытия Проводником ярлыка или исполняемого файла C:\WINDOWS\System32\cmd.exe. В результате запуска откроется окно командной строки. Результаты выполнения команд отображаются в окне консоли Windows и нередко зависят от наличия достаточных прав у текущего пользователя. Для выполнения команд в контексте учетной записи Администратора в операционных системах Windows Vista - Windows 10 необходимо использовать режим Запуск от имени Администратора.
SETX - утилита для создания системных переменных
SFC - проверка и восстановление системных файлов Windows
SHARE - просмотр, создание и удаление разделяемых в локальной сети ресурсов
SHIFT сдвиг входных параметров для командного файла
SHUTDOWN - выключение или перезагрузка компьютера
SLEEP - задержка по времени в пакетном файле
SLMGR - управление лицензированием программного обеспечения Windows
SORT - сортировка строк в текстовом файле
START - запуск приложения или командного файла
STORDIAG - диагностика системы хранения данных в Windows 10
SUBST - назначение (отмена назначения) каталогу буквы диска
SxSTrace - диагностическое средство трассировки компонент системы
SYSTEMINFO - отображение информации о системе
TAKEOWN - изменение владельца файла или каталога
TAR - архивирование данных архиватором tar в Windows 10
TASKKILL - завершение процессов на локальной или удаленной системе.
TASKLIST - отображение списка выполняющихся приложений и служб Windows
TIME - отображение и установка системного времени
TELNET - telnet-клиент Windows
TFTP - TFTP-клиент Windows
TIMEOUT - задержка в пакетных файлах
TITLE - изменение заголовка окна CMD.EXE
TRACERT - трассировка маршрута к удаленному узлу
TREE - отображение структуры каталога в графическом виде
TSCON - подключение к сессии удаленного рабочего стола (RDP).
TSDISCON - отключение сессии удаленного рабочего стола (RDP).
TSKILL - завершение процессов, адаптированное для среды сервера терминалов (RDP).
TYPE - вывод на экран содержимого текстового файла
TypePerf - вывод сведений о производительности на экран или в журнал
TZUTIL - управление часовыми поясами в среде Windows
VER - отображение версии операционной системы
VERIFY - управление режимом проверки записываемых файлов
VOL - вывод данных метки тома
VSSADMIN - администрирование службы теневого копирования томов.
W32TM - управление службой времени Windows
WAITFOR - организация обмена сигналами между компьютерами
WBADMIN - управление резервным копированием и восстановлением в Windows
WEVTUTIL - управление событиями в Windows
WHERE - определение места расположения файлов
WHOAMI - вывод имени текущего пользователя
WINDIFF - сравнение содержимого файлов
WinMgmt - обслуживание инструментария управления Windows (WMI)
WINRM - удаленное управление Windows из командной строки
WINRS - удаленная командная строка (Remote Shell)
WINSAT - средство проверки производительности Windows
WMIC - выполнение команды WMI в командной строке
WSCollect - получить CAB-файл с копиями журналов Windows 10 на рабочем столе
Wscript - сервер сценариев Windows с графическим интерфейсом
WSL - выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
WSLconfig - конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
XCOPY - копирование файлов и папок
👍4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Как работают протоколы в модели TCP IP?
❤1
find в Linux как инструмент для администрирования
find — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. С лохматых тысячелетий есть и поддерживаться почти всеми из них.
Базовый синтаксис ключей
Примеры использования
Ищем все файлы, начиная с текущей директории, название которых начинается на iodmin:
Найти все файлы, начиная с корневой директории, название которых начинается на iodmin:
Поиск в директориях /usr/local/man и /opt/local/man файлов, название которых начинается на iodmin:
Ищем графические файлы, начиная с текущего каталога (см.на кавычки):
Вывести список файлов (см. на / ) во всей файловой системе, чей размер больше 100 Мб:
Ищем файлы в указанных каталогах:
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
❤2