我想用dbpath选项启动mongod,如下所示
mongod --dbpath /var/lib/mongo/ --config /etc/mongod.conf --replSet rs0
这是mongod.service: -
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
如何使用shell脚本在--dbpath and --replSet
ExecStart
文件中添加mongod.service
选项。
我希望我的输出如下所示: -
mongod.service: -
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
ExecStart=/usr/bin/mongod $OPTIONS --dbpath /var/lib/mongo/ --config /etc/mongod.conf --replSet rs0
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
我知道使用以下命令在行尾添加一些文本:
sed '/ExecStart/s/$/ test/' mongod.service
不知道如何添加我上面提到的内容,因为它包含连字符,斜杠等。
答案 0 :(得分:1)
您使用sed
的想法是正确的,但由于替换部分包含/
,因此应对其进行转义,或者需要将单独的分隔符用于sed
。同时双引号sed
表达式可以让您轻松保留空格。但需要确保替换路径中没有$
个表达式。
sed "/^ExecStart=/s/$/ --dbpath \/var\/lib\/mongo\/ --config \/etc\/mongod.conf --replSet rs0/" file
也可以通过将列数递增1并将其填入最后一列来awk
完成
awk -F= '$1=="ExecStart"{NF++; $NF="--dbpath /var/lib/mongo/ --config /etc/mongod.conf --replSet rs0"}1' file