FreeBSD sysrc для добавления комментариев

Конечно, проще всего поместить обе команды в сценарий bash как часть процесса.

Создать скриптrun.sh:

#!/bin/bash

docker run -itd --restart=always --name=<container> --net=br6 \          
--ip6=2001:db8:8:2::100 <image>. \
&& ip neigh replace proxy "2001:db8:8:2::100" dev ens3

Теперь каждый, кто хочет запустить ваш контейнер, должен сделать это, запустив ./run.shпосле предоставления ему прав на выполнение.

Очень часто используется сценарий, например, для настройки среды перед запуском.

Но в некоторых редких случаях (не так, как у вас, но полностью зависит от вас, )вы должны решить, хотите ли вы, чтобы хост выполнял сценарий автоматически при запуске контейнера.

Это можно сделать с помощью шаблона сервера -клиент -ваш хост выступает в роли сервера -он прослушивает определенный порт и готов выполнить команду по запросу.

Контейнер действует как клиент -в точке входа контейнера, он отправляет http-запрос на сервер по этому конкретному порту и URI, прося его выполнить требуемую команду.

Примером использования этого шаблона в докере является отладка кода сервера -, когда вы хотите, чтобы контейнер отправлял журналы отладки на определенный порт на вашем компьютере, где ваша среда IDE их принимает.

2
14.05.2020, 00:09
1 ответ

sysrc (8)не поддерживает комментарии.

Вы мало даете контекста, но я попробую обрисовать 2 варианта. Может быть, они очевидны -, но такова и справочная страница для sysrc (8);-)

Простое сложение

Во многих случаях вы контролируете файлы конфигурации и можете безопасно добавлять новые элементы.

echo #Set hamster_enable = \“YES\” to enable automatic hamster wheel performance boost; \“NO\” to disable >> /etc/rc.conf
echo hamster_enable=\“NO\” >> /etc/rc.conf

Я добавляю настройки одновременно, чтобы сохранить их в порядке. Затем вы можете просто изменить настройку по желанию, сохраняя порядок.

sysrc hamster_enable=YES

Если память меня подводит и sysrc не сохраняет порядок, вы можете сохранить порядок, используяsed

Встроенное редактирование

Типичным способом обработки файлов конфигурации до sysrcбыло использование потокового редактора sed (1). Давайте сначала рассмотрим пару примеров из реальной жизни.

Изменить суффикс поиска DNS:

sed -I.bak 's/^search.*/search example.com/' /etc/resolv.conf

Установите sudo и разрешите пользователям из группы от wheelдо sudoбез использования пароля.

pkg install -y sudo >> /var/log/postinstall.log 2>&1
sed -I.bak 's/^# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /usr/local/etc/sudoers

Установите порт 22 для sshd.

sed -I '' 's/^Port.*/Port 22/' /usr/jails/flavours/default/etc/ssh/sshd_config

Что приводит нас к хомяку

sed -I '' 's/^hamster_enable=.*/hamster_enable=\"YES\"  # Here be my comment/' /etc/rc.conf

Если вы настаиваете на размещении комментариев в другой строке, посмотрите Sed Insert Multiple Lines

Если мы хотим удалить ваши строки -, то шапка ^является началом строки.

sed -I '' 's/^#Set hamster_enable/d' /etc/rc.conf
sed -I '' 's/^hamster_enable=/d' /etc/rc.conf

Хотя sedболее привередлив, чем sysrc, и вам нужно следить за крайними случаями, в большинстве случаев этого будет достаточно.

2
28.04.2021, 23:14

Теги

Похожие вопросы