Структура файловой системы в Linux
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
Эта файловая структура помогает упорядочить данные и облегчает навигацию и управление операционной системой.
/bin
: Содержит исполняемые бинарные файлы различных служб, доступные для запуска всем пользователям сервера. Включает базовые команды, такие как echo, cat, cd, pwd, ls и другие./boot
: Содержит файлы загрузчика и ядра операционной системы. Без этих файлов система не сможет запуститься./dev
: Содержит файлы устройств, подключенных к серверу, такие как терминалы (tty*) и специальные устройства, такие как null, random, zero, а также диски и их разделы (vda*)./etc
: Хранит конфигурационные файлы служб по умолчанию. Здесь можно настроить параметры работы различных служб./home
: Предназначена для домашних каталогов пользователей. Здесь создаются домашние директории для локальных пользователей./lib
и /lib64
: Содержат библиотеки, необходимые для работы системных служб и файлы для загрузки системы и модуля ядра. /lib
также является символьной ссылкой на /usr/lib./media
: Автоматически монтирует внешние устройства, такие как USB и CD-ROM./mnt
: Используется для временного монтирования внешних устройств, чаще всего вручную./opt:
Предназначена для установки пользовательского программного обеспечения./proc
: Хранит информацию о процессах и системную информацию в виде «виртуальной файловой системы»./root
: Домашняя папка для корневого пользователя root./run
: Включает данные, обрабатываемые и хранимые в оперативной памяти, такие как PID процессов и информация о ходе их выполнения./sbin
: Содержит исполняемые бинарные файлы системных служб, запуск которых возможен только с правами администратора. Является символьной ссылкой на /usr/
sbin./srv
: Предназначена для общедоступных данных службы, таких как веб-сервер или FTP-сервер. По умолчанию не содержит данных./sys
: Содержит виртуальную файловую систему, в которую экспортируются данные ядра операционной системы и его модулей./tmp
: Используется для хранения временных файлов операционной системой и службами./usr
: Хранит исполняемые файлы, библиотеки и файлы документации для внутренних служб, а также данные программ, установленных пользователями. /bin
, /sbin
, /lib
и /lib64
являются символьными ссылками на соответствующие каталоги внутри /usr
./var
: Содержит часто изменяемые данные, такие как кэши, логи, очереди. Тут хранятся данные сайтов, баз данных, почтового сервера и др.Эта файловая структура помогает упорядочить данные и облегчает навигацию и управление операционной системой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1
alias — команда, позволяющая создавать более краткие или более привычные псевдонимы для часто используемых команд
Команда alias позволяет всего лишь связать псевдоним с произвольной командой. Механизм псевдонимов позволяет устанавливать более короткие или привычные имена для часто используемых команд. Еще одним преимуществом данного механизма является возможность использования в составе псевдонимов аргументов команд. Впервые данный механизм был реализован в рамках командной оболочки csh, после чего он был перенесен в такие командные оболочки, как bash и другие.
Синтаксис команды для установки псевдонима зависит от используемой командной оболочки. В случае командных оболочек, основанных на Bourne shell (ksh, bash, и других, но не sh), синтаксис является следующим:
В том случае, если при вызове команды должна осуществляться передача аргументов, следует использовать одинарные или двойные кавычки:
В случае же командных оболочек, основанных на csh (csh, tcsh и других), кавычки не требуются:
Несложно заметить, что главное отличие в данном случае заключается в использовании знака равенства и необходимости использования кавычек. При вызове команды alias без аргументов будет выведен список объявленных в текущее время псевдонимов.
После установки псевдоним будет работать лишь в рамках текущей сессии командной оболочки. Для того, чтобы активировать этот псевдоним на постоянной основе, вам придется добавить его в один из файлов конфигурации используемой в текущее время командной оболочки. В случае командной оболочки bash псевдонимы для отдельных пользователей чаще всего размещаются в файле конфигурации ~/.bashrc, а общесистемные псевдонимы — в файле конфигурации /etc/profile. В случае командной оболочки tcsh аналогичными файлами конфигурации являются файлы ~/.tcshrc и /etc/login соответственно.
Примеры
Простой псевдоним для пользователей операционной системы DOS:
А это пример более сложного псевдонима:
Данный псевдоним упрощает обращение к списку наиболее часто используемых команд и может стать шаблоном для новых псевдонимов.
А это еще один пример псевдонима для ознакомления со списком смонтированных дисковых разделов:
Механизм функций командной оболочки может выполнять ту же работу, что и механизм псевдонимов, но он гораздо сложнее в использовании. В отличие от функций, псевдонимы не позволяют осуществлять подстановку значений переменных.
Например, даже такая простая функция, как
не может быть преобразована в псевдоним из-за использования переменной "$1".
Установка псевдонима на постоянной основе
Для установки псевдонима на постоянной основе для всех пользователей, всех командных оболочек (ksh, bash, …) и всех типов командных оболочек (использующихся и не использующихся для входа в систему) вам придется:
- модифицировать файл конфигурации /etc/profile для командных оболочек, использующихся для входа в систему
- модифицировать файл конфигурации /etc/bash_bashrc для командных оболочек, не использующихся для входа в систему
Деактивация псевдонима
Используйте команду unalias.
Команда alias позволяет всего лишь связать псевдоним с произвольной командой. Механизм псевдонимов позволяет устанавливать более короткие или привычные имена для часто используемых команд. Еще одним преимуществом данного механизма является возможность использования в составе псевдонимов аргументов команд. Впервые данный механизм был реализован в рамках командной оболочки csh, после чего он был перенесен в такие командные оболочки, как bash и другие.
Синтаксис команды для установки псевдонима зависит от используемой командной оболочки. В случае командных оболочек, основанных на Bourne shell (ksh, bash, и других, но не sh), синтаксис является следующим:
$ alias <псевдоним>=<команда>
В том случае, если при вызове команды должна осуществляться передача аргументов, следует использовать одинарные или двойные кавычки:
$ alias <псевдоним>="<команда> <аргумент> ..."
В случае же командных оболочек, основанных на csh (csh, tcsh и других), кавычки не требуются:
$ alias <псевдоним> <команда> [аргументы …]
Несложно заметить, что главное отличие в данном случае заключается в использовании знака равенства и необходимости использования кавычек. При вызове команды alias без аргументов будет выведен список объявленных в текущее время псевдонимов.
После установки псевдоним будет работать лишь в рамках текущей сессии командной оболочки. Для того, чтобы активировать этот псевдоним на постоянной основе, вам придется добавить его в один из файлов конфигурации используемой в текущее время командной оболочки. В случае командной оболочки bash псевдонимы для отдельных пользователей чаще всего размещаются в файле конфигурации ~/.bashrc, а общесистемные псевдонимы — в файле конфигурации /etc/profile. В случае командной оболочки tcsh аналогичными файлами конфигурации являются файлы ~/.tcshrc и /etc/login соответственно.
Примеры
Простой псевдоним для пользователей операционной системы DOS:
$ alias dir="ls -l"
А это пример более сложного псевдонима:
$ alias topcom='sort ~/.bash_history | uniq -ci | sort -r | less'
Данный псевдоним упрощает обращение к списку наиболее часто используемых команд и может стать шаблоном для новых псевдонимов.
А это еще один пример псевдонима для ознакомления со списком смонтированных дисковых разделов:
$ alias mnt='mount | grep -i /dev/[h]d[a..g] | sort'
Механизм функций командной оболочки может выполнять ту же работу, что и механизм псевдонимов, но он гораздо сложнее в использовании. В отличие от функций, псевдонимы не позволяют осуществлять подстановку значений переменных.
Например, даже такая простая функция, как
$ bak () { cp -a $1 $1.bak }
не может быть преобразована в псевдоним из-за использования переменной "$1".
Установка псевдонима на постоянной основе
Для установки псевдонима на постоянной основе для всех пользователей, всех командных оболочек (ksh, bash, …) и всех типов командных оболочек (использующихся и не использующихся для входа в систему) вам придется:
- модифицировать файл конфигурации /etc/profile для командных оболочек, использующихся для входа в систему
- модифицировать файл конфигурации /etc/bash_bashrc для командных оболочек, не использующихся для входа в систему
Деактивация псевдонима
Используйте команду unalias.
This media is not supported in your browser
VIEW IN TELEGRAM
Как работают протоколы в модели TCP IP?
❤2
Windows Product Policy – меняем политику продукта, добавляем русский в Windows Enterprise G без телеметрии и больше…
Сегодня я хочу начать разговор о редко обсуждаемой в сети, но крайне интересно технологической особенности ОС Windows – о политике продукта (далее буду назвать её оригинальным названием Product Policy). Каким образом Microsoft решает, сколько RDP сессий возможно одновременно открыть на ОС (почему в IOT их 2)? Где сказано, что у издания Windows Enterprise G может быть лишь английский или китайский языковой пакет? Где определено максимальное количество процессоров и памяти, максимальное количество подключений к расшаренной сетевой папке, как решается поддерживает ли ОС RDMA, требует ли SMB Signing, отключаются ли SMB1, Defender и Cortana. Да практически все компоненты и отличия разных изданий Windows контролируются именно через Product Policy, и пора бы нам разобраться, что это такое, где хранится, как изменять, и к чему приведут изменения.
https://habr.com/ru/companies/timeweb/articles/842890/
Сегодня я хочу начать разговор о редко обсуждаемой в сети, но крайне интересно технологической особенности ОС Windows – о политике продукта (далее буду назвать её оригинальным названием Product Policy). Каким образом Microsoft решает, сколько RDP сессий возможно одновременно открыть на ОС (почему в IOT их 2)? Где сказано, что у издания Windows Enterprise G может быть лишь английский или китайский языковой пакет? Где определено максимальное количество процессоров и памяти, максимальное количество подключений к расшаренной сетевой папке, как решается поддерживает ли ОС RDMA, требует ли SMB Signing, отключаются ли SMB1, Defender и Cortana. Да практически все компоненты и отличия разных изданий Windows контролируются именно через Product Policy, и пора бы нам разобраться, что это такое, где хранится, как изменять, и к чему приведут изменения.
https://habr.com/ru/companies/timeweb/articles/842890/
❤1
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/
❤1
Продвинутая работа с логами в Linux
Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.
Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.
Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.
https://habr.com/ru/articles/749714/
Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.
Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.
Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.
https://habr.com/ru/articles/749714/
❤1👍1
Создание уведомлений и напоминаний на рабочем столе из Linux терминала
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
❤1
Полезные команды Linux. Работа с RPM пакетами ( Fedora, Red Hat и им подобные дистрибутивы )
Удалить пакет package
Вывести список установленных в системе пакетов и отобрать, содержащие в своем имени httpd
Вывести список всех установленных в системе пакетов
Вывести информацию о пакете package
Установить пакет с выводом сообщений и прогресс-бара
Обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
Установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей
Обновить пакет только если он установлен
Список предоставляемой функциональности
Вывести историю ревизий пакета
Отобразит скрипты, запускаемые при установке/удалении пакета
Проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла
Отобразить пакеты входящие в группу пакетов ( fedora, redhat )
Вывести список конфигурационных файлов, входящих в пакет
Вывести список файлов, входящих в пакет
Вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
Отображает список файлов, входящих в пакет, но ещё не установленных в систему
Проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!
Установить пакет, собранный из исходных кодов
Проверить пакет, который ещё не установлен в систему
Извлечь из пакета файлы содержащие в своём имени bin
Импортировать публичный ключ цифровой подписи
Проверит подпись пакета
Проверить целостность установленного содержимого пакета
Проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменения пакета
Собрать пакет из исходных кодов
# rpm -e [ package ]
Удалить пакет package
# rpm -qa | grep httpd
Вывести список установленных в системе пакетов и отобрать, содержащие в своем имени httpd
# rpm -qa
Вывести список всех установленных в системе пакетов
# rpm -qi [ package ]
Вывести информацию о пакете package
# rpm -ivh [package.rpm]
Установить пакет с выводом сообщений и прогресс-бара
# rpm -U [package.rpm]
Обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
# rpm -ivh --nodeeps [package.rpm]
Установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей
# rpm -F [package.rpm]
Обновить пакет только если он установлен
# rpm -q [package] --whatprovides
Список предоставляемой функциональности
# rpm -q [package] --changelog
Вывести историю ревизий пакета
# rpm -q [package] --scripts
Отобразит скрипты, запускаемые при установке/удалении пакета
# rpm -qf /etc/httpd/conf/httpd.conf
Проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла
# rpm -qg "System Environment/Daemons"
Отобразить пакеты входящие в группу пакетов ( fedora, redhat )
# rpm -qc [package]
Вывести список конфигурационных файлов, входящих в пакет
# rpm -ql [package]
Вывести список файлов, входящих в пакет
# rpm -q [package] --whatrequires
Вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
# rpm -qp [package.rpm] -l
Отображает список файлов, входящих в пакет, но ещё не установленных в систему
# rpm -Va
Проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!
# rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm]
Установить пакет, собранный из исходных кодов
# rpm -Vp [package.rpm]
Проверить пакет, который ещё не установлен в систему
# rpm2cpio [package.rpm] | cpio --extract --make-directories *bin*
Извлечь из пакета файлы содержащие в своём имени bin
# rpm --import /media/cdrom/RPM-GPG-KEY
Импортировать публичный ключ цифровой подписи
# rpm --checksig [package.rpm]
Проверит подпись пакета
# rpm -qa gpg-pubkey
Проверить целостность установленного содержимого пакета
# rpm -V [package]
Проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменения пакета
# rpmbuild --rebuild [package.src.rpm]
Собрать пакет из исходных кодов
Команда nslookup, получение информации от DNS
Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.
https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.
https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Linux Kernel Manager and Activity Monitor 🐧💻
Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.
https://github.com/orhun/kmon
Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.
https://github.com/orhun/kmon
❤1
PowerShell скрипт смены пароля в AD у всех пользователей. Меняет всем пароль в AD и ставит галку о смене при первом входе.
Import-Module ActiveDirectory
$users = Get-ADUser -Filter * -SearchBase "OU=Пользователи,DC=flammlin,DC=local"
foreach ($user in $users)
{
$password = ConvertTo-SecureString -String "Qwerty123" -AsPlainText –Force
Set-ADAccountPassword -Identity $user -NewPassword $password -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True
}
❤2
Наглядное руководство по 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/
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Yoink.vim
Плагин Vim, который поддерживает историю yank для переключения между ними при вставке.
https://github.com/svermeulen/vim-yoink
Плагин Vim, который поддерживает историю yank для переключения между ними при вставке.
https://github.com/svermeulen/vim-yoink
Создание уведомлений и напоминаний на рабочем столе из Linux терминала
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
❤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
❤1
Как отлаживать bash-script-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам
#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";
👍3❤1
Mikrotik Manual:System/Backup
Функция резервного копирования в RouterOS позволяет сохранить текущую конфигурацию вашего устройства, которую затем можно восстановить на том же или другом устройстве (с тем же названием/номером модели). Это очень удобно, так как позволяет легко восстановить конфигурацию устройства или повторно применить ту же конфигурацию на резервном устройстве. Файл резервного копирования системы также содержит MAC-адреса устройства, которые также восстанавливаются при загрузке файла резервного копирования.
❗️Предупреждение: если на маршрутизаторе установлены The Dude и user-manager, то системная резервная копия не будет содержать конфигурацию этих сервисов, поэтому необходимо дополнительно позаботиться о сохранении их конфигурации. Используйте предоставленные инструменты для сохранения/экспорта конфигурации, если хотите её сохранить.
📌Примечание: системные резервные копии содержат конфиденциальную информацию о вашем устройстве и его настройках, поэтому всегда рассматривайте возможность шифрования файла резервной копии и хранения его в безопасном месте.
Сохранение резервной копии
❗️Предупреждение: если пароль не указан в версиях RouterOS, предшествующих v6.43, то файл резервной копии будет зашифрован паролем текущего пользователя, за исключением случаев, когда используется свойство dont-encrypted или пароль текущего пользователя пуст.
Файл резервной копии будет доступен в меню /file и его можно скачать с помощью FTP или через Winbox.
Загрузка резервной копии
Пример
Чтобы сохранить конфигурацию маршрутизатора в файле test, введите пароль:
Чтобы просмотреть файлы, хранящиеся на маршрутизаторе:
Чтобы загрузить сохраненный файл резервной копии, выполните тест:
Облачное резервное копирование
Начиная с версии RouterOS v6.44, можно безопасно хранить файл резервной копии вашего устройства на облачных серверах MikroTik.
Функция резервного копирования в RouterOS позволяет сохранить текущую конфигурацию вашего устройства, которую затем можно восстановить на том же или другом устройстве (с тем же названием/номером модели). Это очень удобно, так как позволяет легко восстановить конфигурацию устройства или повторно применить ту же конфигурацию на резервном устройстве. Файл резервного копирования системы также содержит MAC-адреса устройства, которые также восстанавливаются при загрузке файла резервного копирования.
❗️Предупреждение: если на маршрутизаторе установлены The Dude и user-manager, то системная резервная копия не будет содержать конфигурацию этих сервисов, поэтому необходимо дополнительно позаботиться о сохранении их конфигурации. Используйте предоставленные инструменты для сохранения/экспорта конфигурации, если хотите её сохранить.
📌Примечание: системные резервные копии содержат конфиденциальную информацию о вашем устройстве и его настройках, поэтому всегда рассматривайте возможность шифрования файла резервной копии и хранения его в безопасном месте.
Сохранение резервной копии
Sub-menu: /system backup save
dont-encrypt
(yes | no; Default: no) Отключить шифрование файла резервной копии. Обратите внимание, что начиная с версии RouterOS v6.43, без указанного пароля файл резервной копии не будет зашифрован.encryption
(aes-sha256 | rc4; Default: aes-sha256) Алгоритм шифрования, используемый для шифрования файла резервной копии. Обратите внимание, что RC4 не считается безопасным методом шифрования и доступен только для обеспечения совместимости со старыми версиями RouterOS.name
(string; Default: [identity]-[date]-[time].backup) Имя файла для резервной копии.password
(string; Default: ) Пароль для зашифрованного файла резервной копии. Обратите внимание, что начиная с версии RouterOS v6.43, без указанного пароля файл резервной копии не будет зашифрован.❗️Предупреждение: если пароль не указан в версиях RouterOS, предшествующих v6.43, то файл резервной копии будет зашифрован паролем текущего пользователя, за исключением случаев, когда используется свойство dont-encrypted или пароль текущего пользователя пуст.
Файл резервной копии будет доступен в меню /file и его можно скачать с помощью FTP или через Winbox.
Загрузка резервной копии
Sub-menu: /system backup load
name
(string; Default: ) Имя файла резервной копии.password
(string; Default: ) Пароль для зашифрованного файла резервной копии.Пример
Чтобы сохранить конфигурацию маршрутизатора в файле test, введите пароль:
[admin@MikroTik] > /system backup save name=test password=<YOUR_PASSWORD>
Configuration backup saved
[admin@MikroTik] > /system backup
Чтобы просмотреть файлы, хранящиеся на маршрутизаторе:
[admin@MikroTik] > /file print
# NAME TYPE SIZE CREATION-TIME
0 test.backup backup 12567 sep/08/2018 21:07:50
[admin@MikroTik] >
Чтобы загрузить сохраненный файл резервной копии, выполните тест:
[admin@MikroTik] > /system backup load name=test
password: <YOUR_PASSWORD>
Restore and reboot? [y/N]:
y
Restoring system configuration
System configuration restored, rebooting now
Облачное резервное копирование
Начиная с версии RouterOS v6.44, можно безопасно хранить файл резервной копии вашего устройства на облачных серверах MikroTik.
👍3❤1
Копируем структуру директорий в Linux
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
Переходим туда
И используя xargs читаем из файла пути и создаем по ним структуру директорий
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2
Переходим туда
# cd /dir2
И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt
❤2