首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑配置文件w/o临时文件

编辑配置文件w/o临时文件
EN

Stack Overflow用户
提问于 2013-08-26 17:22:24
回答 2查看 149关注 0票数 0

我试图编写一个简单的脚本,在文件的顶部添加一些配置,我就是这样做的:

代码语言:javascript
复制
 #! /bin/bash

 sudo apt-get install monit
 # BELOW IS THE CODE THAT I'M INTERESTING TO CHANGE 
 echo '
 set eventqueue basedir /etc/monit/eventqueue/ slots 1000
 set mmonit http://monit:monit@xxx.xxx.xxx.xxx:8080/collector
 set httpd port 2812 and use address ec2-xxx.xxx.xx.xx.com 
     allow localhost
     allow 0.0.0.0/0.0.0.0
     allow admin:swordfish
 ' | sudo tee -a /etc/monit/monitrc_tmp
sudo cat /etc/monit/monitrc >> /etc/monit/monitrc_tmp
sudo rm /etc/monit/monitrc
sudo mv /etc/monit/monitrc_tmp /etc/monit/monitrc
# UP TO THIS POINT
sudo sed -i 's/set daemon 120/set daemon 20/' /etc/monit/monitrc
exit 0

如您所见,我正试图在文件的顶部添加一些配置,只想知道是否有任何flagcommand可以帮助我在不创建tmp文件的情况下完成此操作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-26 17:32:06

因为你在Linux上,所以看起来像sed -i的一个例子。另外,由于这是系统管理工作,所以保留备份。

代码语言:javascript
复制
sudo sed -i.bak -e '1i\
set eventqueue basedir /etc/monit/eventqueue/ slots 1000\
set mmonit http://monit:monit@xxx.xxx.xxx.xxx:8080/collector\
set httpd port 2812 and use address ec2-xxx.xxx.xx.xx.com\
    allow localhost\
    allow 0.0.0.0/0.0.0.0\
    allow admin:swordfish
' /etc/monit/monitrc

这意味着‘在第1行之前插入以下行’.这些行一直持续到并包括末尾没有反斜杠的行。

您也可以编辑set daemon行,即使您说它超出了范围:

代码语言:javascript
复制
sudo sed -i.bak -e '1i\
set eventqueue basedir /etc/monit/eventqueue/ slots 1000\
set mmonit http://monit:monit@xxx.xxx.xxx.xxx:8080/collector\
set httpd port 2812 and use address ec2-xxx.xxx.xx.xx.com\
    allow localhost\
    allow 0.0.0.0/0.0.0.0\
    allow admin:swordfish
s/set daemon 120/set daemon 20/
' /etc/monit/monitrc
票数 3
EN

Stack Overflow用户

发布于 2013-08-26 17:35:50

这应该会将行添加到文件的顶部。

代码语言:javascript
复制
  echo -e " set eventqueue basedir /etc/monit/eventqueue/ slots 1000 \n
  set mmonit http://monit:monit@xxx.xxx.xxx.xxx:8080/collector \n
  set httpd port 2812 and use address ec2-xxx.xxx.xx.xx.com \n
      allow localhost \n
      allow 0.0.0.0/0.0.0.0 \n
      allow admin:swordfish \n 
  $(cat /etc/monit/monitrc)" > /etc/monit/monitrc

 sudo sed -i 's/set daemon 120/set daemon 20/' /etc/monit/monitrc
 exit 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18449552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档