我正在AWS beanstalk上运行一个应用程序,并解决我遇到的一个问题。部署的一部分将创建一个shell脚本并执行它。当命令执行时,第一行工作正常。它是一个简单的“cat file.txt〉〉/etc/httpd/file.conf”命令。
第二行,我需要搜索一个文本字符串并将其放置在文件中,但它从未成功运行。我可以以root用户身份手动运行脚本,没有任何问题。
#! /bin/bash
if ! grep -q 'Clickjacking' /etc/httpd/conf/httpd.conf ;
then
cat /home/ec2-user/httpd-update.conf >> /etc/httpd/conf/httpd.conf
fi
# check if wsgi mod exists and insert into wsgi.conf if necessary
if ! grep -q 'TRACE|TRACK' /etc/httpd/conf.d/wsgi.conf;
then
sed -i -e '/WSGIProcessGroup wsgi/r /home/ec2-user/wsgi-update.conf' /etc/httpd/conf.d/wsgi.conf
fi
sudo service httpd reload
有人知道为什么部署Beanstalk时shell脚本中的sed
命令不起作用吗?
1条答案
按热度按时间nle07wnf1#
所以我没有意识到我们公司有AWS支持计划,就联系了他们。我试图修改的文件也暂存在beanstalk中。所以从技术上讲,当我的文件正在更新时,Beanstalk正在将他们暂存的文件推入生产环境。你可以在beanstalk示例上运行以下命令:
而我试图更新的文件是最后一个。我需要对那个文件运行我的命令,然后亚马逊会推送那个文件。