【问题标题】:bash or something else: updating configuration files programmatically?bash 或其他东西:以编程方式更新配置文件?
【发布时间】:2012-05-04 20:11:23
【问题描述】:

以编程方式更新/etc/rc.conf配置文件的最佳方法是什么?

具体来说,在 Arch linux 机器上,我希望能够以编程方式更新

DAEMONS=(syslog-ng network sshd ntpd netfs crond)

DAEMONS=(syslog-ng network sshd ntpd netfs crond postgresql)

通过pacman成功安装postgresql后。

我想我可以写一个函数来做这样的事情:

line="DAEMONS=(syslog-ng network sshd ntpd netfs crond)"

sed -i "/${line}/ s/)/ postgresql)/" /etc/rc.conf

专门用于处理这种 postgresql 场景。

但是,更进一步,有没有更通用的方式(如果有可以推荐的库,则使用库)以编程方式包含我的服务(例如memcached,或类似任务我的/etc/rc.conf 文件中的DAEMONS 参数中的zeromq 等服务器?

【问题讨论】:

    标签: bash archlinux rc daemons


    【解决方案1】:

    我不知道通用方式(似乎很少有工具可以对 shell 代码进行任何解析和修改),但是像这样更新简单数组的一种方法可能是实际读取它,更改它,然后写回整行 - 像这样:

    source /etc/rc.conf
    DAEMONS+=(postgresql)
    sed -i -e s/'^DAEMONS=.*'/"DAEMONS=(${DAEMONS[@]})"/ /etc/rc.conf
    

    【讨论】:

    • #archlinux irc 频道上有人推荐 systemd - wiki.archlinux.org/index.php/Systemd 目前正在阅读和试验它。
    • systemd 在 linode 服务器实例上的使用要求我使用带有 pv-grub 的自定义内核,因此如果我不想使用 @ 加载自定义内核,bash 脚本是一种更简单的方法987654326@.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    相关资源
    最近更新 更多