linux AWS Beanstalk -运行命令未成功执行的shell脚本

li9yvcax  于 2023-03-17  发布在  Linux
关注(0)|答案(1)|浏览(136)

我正在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命令不起作用吗?

nle07wnf

nle07wnf1#

所以我没有意识到我们公司有AWS支持计划,就联系了他们。我试图修改的文件也暂存在beanstalk中。所以从技术上讲,当我的文件正在更新时,Beanstalk正在将他们暂存的文件推入生产环境。你可以在beanstalk示例上运行以下命令:

[root@ip-10-0-90-168 ~]# /opt/elasticbeanstalk/bin/get-config container | python -mjson.tool
{
    "app_base_dir": "/opt/python/current",
    "app_deploy_dir": "/opt/python/current/app",
    "app_staging_base": "/opt/python/ondeck",
    "app_staging_dir": "/opt/python/ondeck/app",
    "app_user": "wsgi",
    "app_virtual_env": "/opt/python/run/venv",
    "base_path_dirs": "/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
    "bundle_dir": "/opt/python/bundle",
    "env_deploy_config": "/opt/python/current/env",
    "env_staging_config": "/opt/python/ondeck/env",
    "instance_port": "80",
    "python_version": "2.7",
    "source_bundle": "/opt/elasticbeanstalk/deploy/appsource/source_bundle",
    "wsgi_deploy_config": "/etc/httpd/conf.d/wsgi.conf",
    "wsgi_staging_config": "/opt/python/ondeck/wsgi.conf"
}

而我试图更新的文件是最后一个。我需要对那个文件运行我的命令,然后亚马逊会推送那个文件。

相关问题