Как обновить символическую ссылку Linux
Ссылки всегда были уникальной расширенной функцией файловых систем UNIX.
Пользователи UNIX и Linux находят множество применений для ссылок, особенно для символических ссылок. Один из способов использования символических ссылок — управление резервными копиями конфигурации различного ИТ-оборудования.
У меня есть структура каталогов, в которой хранится все, что связано с документацией, обновлениями и другими файлами для компьютеров и устройств в моей сети. Устройства могут включать маршрутизаторы, точки доступа, NAS-серверы и ноутбуки, часто разных марок и версий. Сами резервные копии конфигурации могут находиться глубоко в дереве каталогов, например. /home/alan/Documents/network/device/NetgearRL5000/config
.
Чтобы упростить процесс резервного копирования, у меня дома есть каталог под названием Configuration
. Я использую символические ссылки из этого каталога, чтобы указать на конкретный каталог устройства:
:~/Configuration/ $ ls -F1
Router@
Accesspoint@
NAS@
Примечание. Параметр -F
команды ls
добавляет к каждому имени файла специальные символы, обозначающие его тип. Как показано выше, символ @
указывает, что это ссылки.
Создание ссылки
Символическая ссылка Маршрутизатор указывает на каталог config
моего Netgear RL5000. Команда для его создания: ln -s:
$ ln -s /home/alan/Documents/network/device/NetgearRL5000/config Router
Затем посмотрите и подтвердите с помощью ls -l:
.
:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/NetgearRL5000/config
NAS -> /home/alan/Documents/network/device/NFSBox/config
...
Преимущество заключается в том, что при обслуживании этого устройства я просто перехожу к ~/Configuration/Router
.
Второе преимущество использования символической ссылки станет очевидным, если я решу заменить этот роутер на новую модель. Я мог бы переназначить старый маршрутизатор в качестве точки доступа. Поэтому его каталог не удаляется. Вместо этого у меня есть новый каталог, соответствующий новому маршрутизатору, возможно, ASUS DF-3760. Создаю каталог и подтверждаю его существование:
$ mkdir -p ~/Documents/network/device/ASUSDF-3760/config
:~/Documents/network/device/ $ ls
NetgearRL5000
ASUSDF-3760
NFSBox
...
Другим примером может быть наличие нескольких точек доступа в ваших офисах. Вы можете использовать символические ссылки для логического представления каждой из них либо с помощью общего имени, например ap1
, ap2
и т. д., либо использовать описательные слова, например ap_floor2
, ap_floor3
и т. д. Таким образом, поскольку физические устройства со временем меняются, вам не нужно постоянно обновлять какие-либо процессы, которые могут ими управлять, поскольку они скорее обращаются к ссылкам. чем фактические каталоги устройств.
Обновление ссылки
Поскольку мой основной маршрутизатор изменился, я хочу, чтобы символическая ссылка маршрутизатора указывала на его каталог. Я мог бы использовать команды rm
и ln
для удаления и создания новой символической ссылки, но есть способ сделать это за один шаг, используя только ln
команда с несколькими опциями:
:~/Configuration/ $ ln -vfns ~/Documents/network/device/ASUSDF-3760/config/ Router
'Router' -> '/home/alan/Documents/network/device/ASUSDF-3760/config/'
:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/ASUSDF-3760/config
NAS -> /home/alan/Documents/network/device/NFSBox/config
Параметры, согласно справочной странице, следующие:
-v, --verbose
вывести имя каждого связанного файла
-f, --force
удалить файл назначения (необходимо, поскольку ссылка уже существует)
-n, --no-разыменование
рассматривать LINK_NAME как обычный файл, если это символическая ссылка на каталог
-s, --symbolic
делайте символические ссылки вместо жестких ссылок
Заворачивать
Ссылки — одна из самых мощных функций файловых систем UNIX и Linux. Другие операционные системы пытались имитировать эту возможность, но они никогда не работали так же хорошо и не были такими же пригодными для использования из-за отсутствия фундаментальной структуры ссылок в их файловых системах.
Демонстрация выше — это лишь одна из многих возможностей воспользоваться ссылками для беспрепятственной навигации по постоянно меняющейся структуре каталогов в действующей производственной среде. Links обеспечивает гибкость, необходимую в организации, которая никогда не остается неизменной надолго.