поддержание записей в файлах конфигурации Linux как syslog.conf автоволшебно устойчивым способом

Для клиента я посмотрел бы на SecureFTP:

http://www.glub.com/products/secureftp/

Это запустилось как проект для Национальной Лаборатории несколько лет назад и действительно выросло.

4
задан 9 July 2010 в 21:31
3 ответа

Я использовал SVN для этого. Примите это

  • У Вас есть репозиторий SVN для каждого хоста: http://svn.localnet/thishost/ и Вы хотите начать вносить необычные изменения в реальный/etc/syslog.conf на 'thishost'.
  • У Вас уже есть локальный контроль конфигурации repo для этого хоста в/configs/

начните управлять конфигурацией для этого файла

cp /etc/syslog.conf /configs/etc/
svn add /configs/etc/syslog.conf
svn commit -m "Managing syslog.conf"

внесите изменения с помощью сценария

#echo some stuff into the file.. no need for extra markup/metadata
cp /etc/syslog.conf /configs/etc/
svn commit -m "I added some junk temporarily"
service syslogd restart

Теперь можно откатывать к предыдущей версии. Между дополнением и откатом, при создании другого, постоянного, изменения, можно использовать svn для получения различий между версиями и материала слияния вместе.

Конечно, замена в мерзавце или независимо от того, что Вам нравится для управления версиями. И также сделайте некоторые постоянные сценарии для сокращения возможностей для ошибок, как функция удара, что CP файл в checkedout repo на основе пути, берет комментарий фиксации в качестве аргумента.или что бы то ни было.

луг у Вас есть репозиторий конфигурации в svn:///, конфигурирует/, который содержит etc/syslog.conf, и Вы, знают, что новая вещь в репозитории совпадает с живым файлом конфигурации в файловой системе:

0
ответ дан 3 December 2019 в 04:17
  • 1
    Если бы Вы хотите пойти путем управления версиями, существует etckeeper, но я рекомендовал бы марионетке и augeas. –  ptman 29 August 2010 в 14:08

sed обычно не делает многострочных шаблонов как этот. Вы могли сделать:

read -d '' -r replacement<<HEREDOC
###some unique string###
echo "kecrn.*            @syslog.server.local"
###end some unique string###
HEREDOC
sed -e "/beginmark/i\beginmark\n$replacement\nendmark" -e '/beginmark/,/endmark/d'` filename

Вы также не можете перенаправить на тот же файл. Это будет сначала усекать файл и затем работать sed на нем (который теперь пуст). Необходимо использовать временный файл или использовать --in-place (или -i) опция:

sed -i 'sed commands' filename

или

sed 'sed commands' filename > tmpfile
mv tmpfile filename
0
ответ дан 3 December 2019 в 04:17

Часть AS развертывания марионеточного проекта, я обнаружил augeas; http://augeas.net/

который является инструментом управления конфигурационного файла.

1
ответ дан 3 December 2019 в 04:17

Теги

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