📌 15 супер полезных примеров команды find в Linux
Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Она используется для поиска файлов и папок через командную строку Linux.
Команда find — одна из самых мощных и широко применимых команд. При этом она крайне объёмная и насчитывает более 50 опций, в которых легко запутаться, особенно в сочетании с командами exec или xargs.
Если вы сисадмин или разработчик, избежать команды find при работе с командной строкой не получится. Так что давайте научимся её не бояться и пользоваться её возможностями в полной мере.
Для этого разберём самые распространённые случаи практического применения команды find. Но для начала покажу вам синтаксис и принцип работы с командой.
Поиск файлов и папок по имени
find . -name SEARCH_NAME
Поиск только файлов или только папок
Поиск без учёта регистра
Поиск файлов по расширению
Поиск файлов в заданной папке
Поиск файлов в нескольких папках
Поиск пустых файлов и папок
Поиск крупных и мелких файлов (поиск по размеру файла)
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/
Хабр
15 супер полезных примеров команды find в Linux
Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find. Она используется для поиска файлов и папок через командную строку Linux....
❤2👍1
Пример 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
❤3
Наглядное руководство по туннелированию SSH и переадресации портов
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения
https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения
https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
❤2
Понимание системных журналов Linux
Системные журналы, которые обычно находятся в каталоге /var/log на Linux-системах, крайне важны для мониторинга и устранения неполадок. Краткое описание основных журналов:
syslog: Основной универсальный журнал системы, куда попадают сообщения от различных сервисов и приложений. Многие другие логи направляют сообщения именно сюда.
auth.log: Содержит сообщения, связанные с аутентификацией: успешные и неудачные попытки входа, смена пароля, события проверки пользователей.
kern.log: Фиксирует сообщения ядра: ошибки оборудования, загрузку модулей ядра и другие активности, связанные с ядром системы.
messages: Универсальный журнал, в котором записываются разные системные события: загрузка и выключение системы, а также другие события общего характера.
dmesg: Отображает кольцевой буфер сообщений ядра — в реальном времени показывает события, связанные с ядром и обнаружением оборудования при запуске системы.
cron: Журналирует работу заданий cron и запланированных задач: время выполнения, а также ошибки, возникшие при выполнении.
secure: Записывает сообщения, связанные с безопасностью: попытки аутентификации, эскалация привилегий и другие важные для безопасности события.
apache/access.log и apache/error.log: Журналы веб-сервера Apache. access.log хранит логи HTTP-доступа, а error.log — ошибки и предупреждения Apache.
nginx/access.log и nginx/error.log: Аналогичные журналы для веб-сервера Nginx, фиксируют события доступа и ошибки.
mysql/error.log: Содержит ошибки и предупреждения MySQL-сервера, включая ошибки запуска, сбои запросов и аварийные завершения работы базы данных.
Эти журналы предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при поиске и устранении неполадок. Регулярный мониторинг и анализ этих логов позволяют поддерживать стабильность системы и выявлять потенциальные проблемы до их возникновения.
Системные журналы, которые обычно находятся в каталоге /var/log на Linux-системах, крайне важны для мониторинга и устранения неполадок. Краткое описание основных журналов:
syslog: Основной универсальный журнал системы, куда попадают сообщения от различных сервисов и приложений. Многие другие логи направляют сообщения именно сюда.
auth.log: Содержит сообщения, связанные с аутентификацией: успешные и неудачные попытки входа, смена пароля, события проверки пользователей.
kern.log: Фиксирует сообщения ядра: ошибки оборудования, загрузку модулей ядра и другие активности, связанные с ядром системы.
messages: Универсальный журнал, в котором записываются разные системные события: загрузка и выключение системы, а также другие события общего характера.
dmesg: Отображает кольцевой буфер сообщений ядра — в реальном времени показывает события, связанные с ядром и обнаружением оборудования при запуске системы.
cron: Журналирует работу заданий cron и запланированных задач: время выполнения, а также ошибки, возникшие при выполнении.
secure: Записывает сообщения, связанные с безопасностью: попытки аутентификации, эскалация привилегий и другие важные для безопасности события.
apache/access.log и apache/error.log: Журналы веб-сервера Apache. access.log хранит логи HTTP-доступа, а error.log — ошибки и предупреждения Apache.
nginx/access.log и nginx/error.log: Аналогичные журналы для веб-сервера Nginx, фиксируют события доступа и ошибки.
mysql/error.log: Содержит ошибки и предупреждения MySQL-сервера, включая ошибки запуска, сбои запросов и аварийные завершения работы базы данных.
Эти журналы предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при поиске и устранении неполадок. Регулярный мониторинг и анализ этих логов позволяют поддерживать стабильность системы и выявлять потенциальные проблемы до их возникновения.
❤2
Работа с архивами
Создать .tar.gz:
Распаковать .tar:
Распаковать gz:
Распаковать многотомный архив:
Получить листинг файлов в архиве:
Извлечь конкретный файл из архива:
Скопировать файл на сервер:
Создать .tar.gz:
tar -czvf file.tar.gz /full/path — создать .tar.gz (архив)
tar -cjvf file.tar.bz2 /full/path — создать .tar.bz2 (архив)
Распаковать .tar:
tar -xvf file.tar.gz
Распаковать gz:
gunzip yourfile.gz
Распаковать многотомный архив:
7za x arch.7z.001
Получить листинг файлов в архиве:
tar -tf <path_to_tarfile>
Извлечь конкретный файл из архива:
tar -xf <path_to_tarfile> [<file_1_in_archive> <file_2_in_archive> ..]
Скопировать файл на сервер:
scp -P 12322 file.tar login@111.111.111.111:/home/user
❤1
Контроль оплаты домена через Zabbix
Позвонил клиент, говорит почта не работает. Стал смотреть – домен отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать Zabbix.
На сервере с Zabbix’ом установим Zabbix-агент. Он и будет у нас заниматься проверкой наших доменов.
https://telegra.ph/Kontrol-oplaty-domena-cherez-Zabbix-09-26
Позвонил клиент, говорит почта не работает. Стал смотреть – домен отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать Zabbix.
На сервере с Zabbix’ом установим Zabbix-агент. Он и будет у нас заниматься проверкой наших доменов.
https://telegra.ph/Kontrol-oplaty-domena-cherez-Zabbix-09-26
❤1
📌 Bash-совет дня: Быстрый мониторинг TCP/UDP портов
Иногда нужно оперативно узнать, какие порты слушает сервер и какие подключения активны. Вот простой однострочник, который поможет:
Пояснение ключей:
-
-
-
-
-
Хочешь отсортировать по порту или найти конкретный? Добавь
Альтернатива на случай, если нет
Полезно для отладки фаервола, проверки работы сервисов или просто для уверенности, что сервер не слушает ничего лишнего
Иногда нужно оперативно узнать, какие порты слушает сервер и какие подключения активны. Вот простой однострочник, который поможет:
sudo ss -tunlp
Пояснение ключей:
-
-t
— TCP -
-u
— UDP -
-n
— не разрешать имена хостов и портов (быстрее) -
-l
— только слушающие сокеты -
-p
— показать PID и имя процесса Хочешь отсортировать по порту или найти конкретный? Добавь
grep
:
sudo ss -tunlp | grep 8080
Альтернатива на случай, если нет
ss
:
sudo netstat -tunlp
Полезно для отладки фаервола, проверки работы сервисов или просто для уверенности, что сервер не слушает ничего лишнего
❤2
Iptables - Официальная документация
Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).
https://help.ubuntu.ru/wiki/iptables
Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).
https://help.ubuntu.ru/wiki/iptables
❤1
Команды мониторинга и отладки
top
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)ps -eafw
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)ps -e -o pid,args --forest
вывести PID’ы и процессы в виде дереваpstree
отобразить дерево процессовkill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)kill -TERM 98989
Корректно завершить процесс с PID 98989kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурацииlsof -p 98989
отобразить список файлов, открытых процессом с PID 98989lsof /home/user1
отобразить список открытых файлов из директории /home/user1strace -c ls > /dev/null
вывести список системных вызовов, созданных и полученных процессом lsstrace -f -e open ls > /dev/null
вывести вызовы бибилотекwatch -n1 ‘cat /proc/interrupts’
отображать прерывания в режиме реального времениlast reboot
отобразить историю перезагрузок системыlast user1
отобразить историю регистрации пользователя user1 в системе и время его нахождения в нейlsmod
вывести загруженные модули ядраfree -m
показать состояние оперативной памяти в мегабайтахsmartctl -A /dev/hda
контроль состояния жёсткого диска /dev/hda через SMARTsmartctl -i /dev/hda
проверить доступность SMART на жёстком диске /dev/hdatail /var/log/dmesg
вывести десять последних записей из журнала загрузки ядраtail /var/log/messages
вывести десять последних записей из системного журнала❤2
Настройка NVMe over TCP — для тех, кому надо подключить больше 1 диска единственной конфигурации из всех примеров в Сети
Технология NVMe через различные фабрики (далее NVMeOF) оформлена в качестве стандарта летом 2016 года, она была встроена в пятую ветку ядра Linux.
Поэтому, когда было решено мигрировать объемные базы данных с легаси-решений на общедоступные платформы, возник вопрос — можно ли применить эту технологию увеличения дискового пространства для создания зеркал локальных дисков?
Чтобы все зеркала не вышли из строя сразу, принимать такие диски надо бы небольшими группами с нескольких машин из разных стоек. Идея показалась достойной рассмотрения, поэтому создали небольшой стенд.
https://habr.com/ru/companies/beeline_tech/articles/770174/
Технология NVMe через различные фабрики (далее NVMeOF) оформлена в качестве стандарта летом 2016 года, она была встроена в пятую ветку ядра Linux.
Поэтому, когда было решено мигрировать объемные базы данных с легаси-решений на общедоступные платформы, возник вопрос — можно ли применить эту технологию увеличения дискового пространства для создания зеркал локальных дисков?
Чтобы все зеркала не вышли из строя сразу, принимать такие диски надо бы небольшими группами с нескольких машин из разных стоек. Идея показалась достойной рассмотрения, поэтому создали небольшой стенд.
https://habr.com/ru/companies/beeline_tech/articles/770174/
❤2👍1
Список полезных команд для работы с
Основные команды
1. Подключение к удаленному хосту:
Пример:
Подключается к хосту
2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:
Затем введите:
3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:
Это выполняет запрос к домашней странице на порту 80.
Встроенные команды
1. help
Показывает список доступных команд
2. open
Открывает новое соединение с указанным хостом:
3. close
Закрывает текущее соединение:
4. display
Показывает текущие параметры подключения:
5. mode
Переключает режим работы
6. send
Отправляет управляющие символы (например,
7. status
Показывает статус текущего соединения:
8. set и unset
Настраивают параметры подключения (например, установка режима эхо):
Примеры использования
1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:
2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:
Затем можно вручную ввести SMTP-команды, такие как:
3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:
Эти команды помогут вам для отладки, диагностики и проверки сетевых служб.
telnet
, которые могут помочь при подключении и отладке сетевых служб:Основные команды
telnet
:1. Подключение к удаленному хосту:
telnet <hostname> <port>
Пример:
telnet example.com 80
Подключается к хосту
example.com
на порту 80 (HTTP).2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:
Ctrl + ] (переход в режим команд)
Затем введите:
quit
3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:
GET / HTTP/1.1
Host: example.com
Это выполняет запрос к домашней странице на порту 80.
Встроенные команды
telnet
(используйте в режиме команд после нажатия `Ctrl + ]`):1. help
Показывает список доступных команд
telnet
:
telnet> help
2. open
Открывает новое соединение с указанным хостом:
telnet> open <hostname> <port>
3. close
Закрывает текущее соединение:
telnet> close
4. display
Показывает текущие параметры подключения:
telnet> display
5. mode
Переключает режим работы
telnet
(например, line
или `character`):
telnet> mode line
6. send
Отправляет управляющие символы (например,
send escape
для отправки escape-секвенции):
telnet> send escape
7. status
Показывает статус текущего соединения:
telnet> status
8. set и unset
Настраивают параметры подключения (например, установка режима эхо):
telnet> set echo
telnet> unset echo
Примеры использования
telnet
:1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:
telnet <hostname> <port>
2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:
telnet smtp.example.com 25
Затем можно вручную ввести SMTP-команды, такие как:
EHLO example.com
3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:
telnet <dns-server> 53
Эти команды помогут вам для отладки, диагностики и проверки сетевых служб.
❤1
mRemoteNG
Это форк mRemote: мультипротокольный менеджер удаленных соединений с открытым исходным кодом для Windows. mRemoteNG добавляет исправления ошибок и новые функции в mRemote и позволяет просматривать все ваши удаленные соединения в простом, но мощном интерфейсе с вкладками.
Поддерживаемые протоколы:
RDP (Remote Desktop Protocol)
VNC (Virtual Network Computing)
SSH (Secure Shell)
Telnet (TELecommunication NETwork)
HTTP/HTTPS (Hypertext Transfer Protocol)
rlogin (Remote Login)
Raw Socket Connections
Powershell remoting
https://mremoteng.org/
https://github.com/mRemoteNG/mRemoteNG
Это форк mRemote: мультипротокольный менеджер удаленных соединений с открытым исходным кодом для Windows. mRemoteNG добавляет исправления ошибок и новые функции в mRemote и позволяет просматривать все ваши удаленные соединения в простом, но мощном интерфейсе с вкладками.
Поддерживаемые протоколы:
RDP (Remote Desktop Protocol)
VNC (Virtual Network Computing)
SSH (Secure Shell)
Telnet (TELecommunication NETwork)
HTTP/HTTPS (Hypertext Transfer Protocol)
rlogin (Remote Login)
Raw Socket Connections
Powershell remoting
https://mremoteng.org/
https://github.com/mRemoteNG/mRemoteNG
❤2
Более чем 80 средств мониторинга системы Linux
По ссылке будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.
https://habr.com/ru/companies/ua-hosting/articles/281519/
По ссылке будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.
https://habr.com/ru/companies/ua-hosting/articles/281519/
❤1
Libtree
Утилита, позволяющая получить список разделяемых библиотек (shared libraries) в виде дерева, либо в виде путей до этих библиотек в системе.
1. Скачиваем libtree:
2. Проверяем нужный нам файл:
При необходимости углубиться и получить зависимости для отображаемых библиотек просто добавляем
Отобразить полный путь до файла на сервере можно с помощью опции
По умолчанию, информация о некоторых библиотеках не выводится в libtree. Подробнее об этом в выводе команды:
https://github.com/haampie/libtree
Утилита, позволяющая получить список разделяемых библиотек (shared libraries) в виде дерева, либо в виде путей до этих библиотек в системе.
1. Скачиваем libtree:
$ wget https://github.com/haampie/libtree/releases/download/v3.0.1/libtree_x86_64 -O libtree
$ chmod +x libtree
2. Проверяем нужный нам файл:
$ ./libtree /bin/nano
/bin/nano
├── libmagic.so.1 [default path]
│ └── libz.so.1 [default path]
├── libtinfo.so.6 [default path]
└── libncursesw.so.6 [default path]
└── libtinfo.so.6 [default path]
При необходимости углубиться и получить зависимости для отображаемых библиотек просто добавляем
-v
, -vv
или -vvv
соответственно.
$ ./libtree -vvv /bin/nano
/bin/nano
├── libmagic.so.1 [default path]
│ ├── libz.so.1 [default path]
│ │ └── libc.so.6 [default path]
│ │ └── ld-linux-x86-64.so.2 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
├── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
├── libtinfo.so.6 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
└── libncursesw.so.6 [default path]
├── libtinfo.so.6 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
└── libc.so.6 [default path]
└── ld-linux-x86-64.so.2 [default path]
Отобразить полный путь до файла на сервере можно с помощью опции
-p
:
$ ./libtree -p -vvv /bin/ping
/bin/ping
├── /lib64/libcap.so.2 [default path]
│ └── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
├── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
└── /lib64/libidn2.so.0 [default path]
├── /lib64/libunistring.so.2 [default path]
│ └── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
└── /lib64/libc.so.6 [default path]
└── /lib64/ld-linux-x86-64.so.2 [default path]
По умолчанию, информация о некоторых библиотеках не выводится в libtree. Подробнее об этом в выводе команды:
$ ./libtree --help
https://github.com/haampie/libtree
❤2👍1
Перенос VM с Hyper-V на Proxmox
Перенос виртуальной машины (VM) с Hyper-V на Proxmox включает несколько шагов, поскольку Hyper-V и Proxmox используют разные форматы виртуальных дисков. Hyper-V использует формат VHDX, а Proxmox предпочитает формат QCOW2 или RAW. Основная задача заключается в конвертации дисков и настройке виртуальной машины на новом гипервизоре.
📌1. Подготовка виртуальной машины в Hyper-V
1. Выключите виртуальную машину в Hyper-V.
Чтобы избежать проблем с консистентностью данных, убедитесь, что VM выключена перед экспортом.
2. Экспортируйте виртуальную машину.
Откройте Hyper-V Manager и выполните экспорт виртуальной машины:
- Выберите нужную виртуальную машину.
- Нажмите "Экспортировать" и выберите директорию для сохранения экспортированных файлов.
В результате экспорт сохранит всю конфигурацию виртуальной машины и файлы дисков (обычно в формате VHD или VHDX).
📌2. Конвертация виртуального диска
Proxmox поддерживает несколько форматов виртуальных дисков, таких как
1. Перенесите диск (VHDX/VHD) на сервер Proxmox.
Скопируйте файл виртуального диска с Hyper-V на сервер Proxmox с помощью SCP или другого метода передачи файлов.
Пример использования SCP:
2. Установите `qemu-utils` (если он не установлен).
Для конвертации используйте утилиту
3. Конвертируйте VHDX в формат QCOW2 или RAW.
Выполните команду для конвертации:
- В QCOW2:
- В RAW:
-
-
📌3. Создание новой VM на Proxmox
1. Создайте новую виртуальную машину на Proxmox.
В интерфейсе Proxmox:
- Нажмите "Создать VM".
- Укажите настройки (например, процессоры, память, сетевые адаптеры), соответствующие параметрам вашей VM на Hyper-V.
- На этапе создания жесткого диска выберите небольшой размер временного диска (он не будет использоваться).
2. Подмените созданный диск на сконвертированный.
После создания VM:
- Перейдите в директорию, где хранится диск новой VM:
- Удалите временный диск и замените его на сконвертированный диск:
3. Проверьте и отредактируйте конфигурацию виртуальной машины.
Откройте файл конфигурации VM, который находится по пути
📌4. Запуск виртуальной машины
1. Запустите виртуальную машину в Proxmox.
В интерфейсе Proxmox запустите VM и проверьте, корректно ли она работает.
2. Установите необходимые драйвера.
Если в Hyper-V VM использовала специфичные драйвера, возможно, потребуется установить новые драйвера в ОС, чтобы она корректно функционировала в Proxmox (например, драйвера для сетевого адаптера или виртуальных дисков).
Заключение
После выполнения этих шагов виртуальная машина должна корректно работать на платформе Proxmox. Если возникнут проблемы с драйверами или загрузкой системы, возможно, потребуется дополнительно настроить параметры виртуальной машины или обновить конфигурацию ОС.
Перенос виртуальной машины (VM) с Hyper-V на Proxmox включает несколько шагов, поскольку Hyper-V и Proxmox используют разные форматы виртуальных дисков. Hyper-V использует формат VHDX, а Proxmox предпочитает формат QCOW2 или RAW. Основная задача заключается в конвертации дисков и настройке виртуальной машины на новом гипервизоре.
Шаги для переноса VM с Hyper-V на Proxmox
📌1. Подготовка виртуальной машины в Hyper-V
1. Выключите виртуальную машину в Hyper-V.
Чтобы избежать проблем с консистентностью данных, убедитесь, что VM выключена перед экспортом.
2. Экспортируйте виртуальную машину.
Откройте Hyper-V Manager и выполните экспорт виртуальной машины:
- Выберите нужную виртуальную машину.
- Нажмите "Экспортировать" и выберите директорию для сохранения экспортированных файлов.
В результате экспорт сохранит всю конфигурацию виртуальной машины и файлы дисков (обычно в формате VHD или VHDX).
📌2. Конвертация виртуального диска
Proxmox поддерживает несколько форматов виртуальных дисков, таких как
QCOW2
и RAW
. Вы можете использовать утилиту qemu-img
для конвертации формата.1. Перенесите диск (VHDX/VHD) на сервер Proxmox.
Скопируйте файл виртуального диска с Hyper-V на сервер Proxmox с помощью SCP или другого метода передачи файлов.
Пример использования SCP:
scp /path/to/your/disk.vhdx user@proxmox:/var/lib/vz/images/
2. Установите `qemu-utils` (если он не установлен).
Для конвертации используйте утилиту
qemu-img
. На Proxmox по умолчанию установлена эта утилита, но если её нет, установите:
apt-get install qemu-utils
3. Конвертируйте VHDX в формат QCOW2 или RAW.
Выполните команду для конвертации:
- В QCOW2:
qemu-img convert -f vhdx -O qcow2 /path/to/your/disk.vhdx /var/lib/vz/images/VMID/vm-disk.qcow2
- В RAW:
qemu-img convert -f vhdx -O raw /path/to/your/disk.vhdx /var/lib/vz/images/VMID/vm-disk.raw
-
/path/to/your/disk.vhdx
— путь к вашему файлу VHDX.-
/var/lib/vz/images/VMID/vm-disk.qcow2
— путь, куда будет сохранен новый виртуальный диск, с указанием идентификатора VM (`VMID`).📌3. Создание новой VM на Proxmox
1. Создайте новую виртуальную машину на Proxmox.
В интерфейсе Proxmox:
- Нажмите "Создать VM".
- Укажите настройки (например, процессоры, память, сетевые адаптеры), соответствующие параметрам вашей VM на Hyper-V.
- На этапе создания жесткого диска выберите небольшой размер временного диска (он не будет использоваться).
2. Подмените созданный диск на сконвертированный.
После создания VM:
- Перейдите в директорию, где хранится диск новой VM:
/var/lib/vz/images/VMID/
.- Удалите временный диск и замените его на сконвертированный диск:
mv /path/to/vm-disk.qcow2 /var/lib/vz/images/VMID/
3. Проверьте и отредактируйте конфигурацию виртуальной машины.
Откройте файл конфигурации VM, который находится по пути
/etc/pve/qemu-server/VMID.conf
, и убедитесь, что строка с указанием диска ссылается на ваш новый файл:
scsi0: local:VMID/vm-disk.qcow2
📌4. Запуск виртуальной машины
1. Запустите виртуальную машину в Proxmox.
В интерфейсе Proxmox запустите VM и проверьте, корректно ли она работает.
2. Установите необходимые драйвера.
Если в Hyper-V VM использовала специфичные драйвера, возможно, потребуется установить новые драйвера в ОС, чтобы она корректно функционировала в Proxmox (например, драйвера для сетевого адаптера или виртуальных дисков).
Заключение
После выполнения этих шагов виртуальная машина должна корректно работать на платформе Proxmox. Если возникнут проблемы с драйверами или загрузкой системы, возможно, потребуется дополнительно настроить параметры виртуальной машины или обновить конфигурацию ОС.
❤1😁1
📌 Руководство-шпаргалка по UFW (Uncomplicated Firewall)
▪️Uncomplicated Firewall — простой интерфейс для управления
▪️Основы
▪️Разрешение и запрет трафика
▪️Расширенные параметры
▪️Политики по умолчанию
▪️Проверка и отладка
▪️Советы
- Разреши SSH до включения UFW:
- Для сервера: сначала запрети всё входящее, затем добавляй нужные порты.
- Используй
- Делай резервные копии правил (
▪️Uncomplicated Firewall — простой интерфейс для управления
iptables
в Ubuntu/Debian.▪️Основы
# Включить UFW
sudo ufw enable
# Отключить UFW
sudo ufw disable
# Проверить статус
sudo ufw status verbose
# Перезапустить (сбросить) UFW
sudo ufw reset
▪️Разрешение и запрет трафика
# Разрешить порт
sudo ufw allow 22 # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443 # HTTPS
# Разрешить диапазон портов
sudo ufw allow 1000:2000/tcp
# Запретить порт
sudo ufw deny 23 # Telnet
# Разрешить IP
sudo ufw allow from 192.168.1.100
# Разрешить IP к порту
sudo ufw allow from 10.0.0.1 to any port 22
# Запретить IP к порту
sudo ufw deny from 192.168.1.200 to any port 80
▪️Расширенные параметры
# Ограничить подключение (анти-флуд)
sudo ufw limit ssh/tcp
# Удалить правило
sudo ufw delete allow 22
# Интерфейсы и подсети
sudo ufw allow in on eth0 from 192.168.1.0/24 to any port 3306
▪️Политики по умолчанию
# Запретить всё входящее, разрешить исходящее
sudo ufw default deny incoming
sudo ufw default allow outgoing
▪️Проверка и отладка
# Сухой запуск (не применяет правила)
sudo ufw --dry-run enable
# Просмотр всех правил с номерами
sudo ufw status numbered
▪️Советы
- Разреши SSH до включения UFW:
sudo ufw allow ssh
- Для сервера: сначала запрети всё входящее, затем добавляй нужные порты.
- Используй
limit
для SSH — защита от брутфорса.- Делай резервные копии правил (
ufw status > ufw-backup.txt
).❤2
Горячие клавиши VirtualBox
Основные ярлыки в VirtualBox
Host ярлыки в VirtualBox
Alt ярлыки в VirtualBox
Основные ярлыки в VirtualBox
F1
: Отображает справку.Ctrl + D
Мы получаем доступ к виртуальному медиа-менеджеру.Ctrl + G
: Мы получаем доступ к настройкам VirtualBox.Ctrl + S
: Открываем окно настроек виртуальной машины.Ctrl + I
: Импорт виртуализированной службы.Ctrl + E
: Экспорт виртуализированной службы.Ctrl + L
: Показывает журнал событий виртуальной машины.Ctrl + N
: Создает новую виртуальную машину.Ctrl + P
: Мы приостанавливаем виртуальную машину.Ctrl + R
: Мы удаляем виртуальную машину.CTRL+Q
: Мы выходим из приложения.Ctrl + Alt + L
: Блокировка сеансаCtrl + Alt +
⬆ или ⬇: Переход между различными рабочими столамиCtrl + Alt + Shift +
⬆ или ⬇: Расположение рабочих столов, один на другом или под другим.Ctrl+Alt+ T
: Открываем новый терминалCtrl+Alt+ Tab
: Мы переключаемся между компонентами системы.Ctrl + Windows +
⬆ или ⬇: Максимизировать или минимизировать окноCtrl + Windows + D
Показать текущий рабочий стол.Host ярлыки в VirtualBox
F1
: Отображает справку.Host + F
: Вход в полноэкранный режим.Host + A
: Настройка размера окна.Host + L
: Вход в режим «fluid».Host + G
: Отключить автоматическую подгонку экрана гостя.Host + I
: Отключить интеграцию мыши.Host + S
: Создание снимка.Host + N
: Диалоговое окно информации о сеансе (это информация о машине плюс данные выполнения).Host + P
: Приостановка виртуальной машины.Host + R
: Перезапуск виртуальной машины.Host + Q
: Закрыть виртуальную машину.Host + H
: ACPI отключен.Host + Del
: Это то же самое, что нажатие Ctrl + Alt + Del
.Host + Пробел
: Отправка Ctrl + Alt + Backspace
на систему гостя (специфично для GNU / Linux).Alt ярлыки в VirtualBox
Alt+Tab
: Переключение между приложениями.Alt+Shift+Tab
: Переключение между приложениями в обратном направлении.Alt+F1
: Открытие меню поиска.Alt+F2
: Открытие окна запуска.Alt+F7
: Прокрутка окна.Alt + F8 +
⬆ или ⬇: Изменение размера окна.❤1