【发布时间】:2019-01-17 13:52:47
【问题描述】:
所以,我的 apache2 配置文件是这样的:
<Proxy balancer://mycluster>
BalancerMember "ajp://10.x.x.xxx:8009" route=node1 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
BalancerMember "ajp://10.x.x.xx:8009" route=node2 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
BalancerMember "ajp://10.x.x.xxx:8009" route=node3 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
BalancerMember "ajp://10.x.x.xx:8009" route=node4 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
BalancerMember "ajp://10.x.x.xx:8009" route=node5 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
BalancerMember "ajp://10.x.x.xx:8009" route=node6 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
BalancerMember "ajp://10.x.x.xxx:8009" route=node7 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
ProxySet lbmethod=byrequests
</Proxy>
我想要做的是在ProxySet lbmethod=byrequests 行之前插入一个带有# 的新BalancerMember。我将使用 shell 脚本来执行此操作。
所以它应该看起来像:#BalancerMember "ajp://10.x.x.xxx:8009" route=node8 loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60
我试过的是:
awk -v s1='"' -v ip="10.0.7.1" -v no="8" '
/ProxySet lbmethod=byrequests/{
print "\n\t\t#BalancerMember " s1 "ajp://" ip ":8009" s1 " route=node" no " loadfactor=1 keepalive=on ttl=300 max=400 timeout=300 retry=60"
next
}
1' /tmp/000-site.conf > /tmp/000-site.conf.tmp && mv /tmp/000-site.conf.tmp /tmp/000-site.conf
}
因此,上述解决方案可以正常工作,但会留下我不想要的换行符。我已尝试移除 ORS。
【问题讨论】:
-
不确定您所说的“正在离开换行符”是什么意思,但您专门用
print "\n..."打印换行符 - 是这个问题吗?如果不是,请发布预期的输出和您实际得到的输出以澄清问题所在。 -
让我粘贴我的代码输出以便更好地理解我的问题。
-
@EdMorton @RavinderSingh13 这是我的错,代码工作正常,只需要删除
\n。对不起,浪费你们的时间了伙计们。我现在觉得自己好傻。
标签: string bash shell awk newline