amazon-web-services - 如何在启动时为root用户设置环境变量?

标签 amazon-web-services amazon-ec2 amazon-cloudwatch

我正在尝试向 console.aws.amazon.com 上的实例的监控选项卡添加内存使用监控。这是一个运行 Amazon Linux AMI 2013.09.2 的实例我找到了 Amazon CloudWatch Monitoring Scripts for Linux尤其是 mon-put-instance-data.pl,它让我收集内存统计信息并将其作为自定义指标报告给 CloudWatch。

为了让这个工作,我需要将环境变量 AWS_CREDENTIAL_FILE 设置为指向包含我的 AWSAccessKeyId 和 AWSSecretKey 的文件。我通过键入:

export AWS_CREDENTIAL_FILE=/home/ec2-user/aws-scripts-mon/awscreds.template

为了避免一遍又一遍地输入,我正在寻找一种在启动时设置环境变量的方法。我尝试将代码添加到这些文件中:
/etc/rc.local file
/etc/profile
/home/ec2-user/.bash_profile

当我切换到 时,在任何一个文件中添加代码行似乎都有效。 root 用户 ,我应该把它放在哪里?如果我在/home/ec2-user/.bash_profile 中设置变量,则该变量是为 ec2-user 而不是为 root 设置的。如果我然后 sudo -E su 它有效,但我不知道这是否是最好的方法?

最佳答案

创建一个sh文件并将代码放入其中。然后把这个sh文件放到/etc/profile.d/文件夹。

注:使用 root 用户创建这个 sh 文件。

创建实例后,此 sh 文件将自动运行并为您创建环境变量,所有用户都可以访问该环境变量。

关于amazon-web-services - 如何在启动时为root用户设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224646/

相关文章:

android - 认知和 DynamoDB : "not authorized to perform: dynamodb:UpdateItem on resource"

python - 如何在AWS CDK中指定源安全组Id?

mysql - 将mysql文件加载到AWS中的rds数据库

ssh - scp 到 Amazon EC2 失败,但 ssh 有效

memory - EC2 CloudWatch 内存指标与 Top 显示的不匹配

amazon-web-services - AWS : How can I allow multiple domains in an S3 CORS configuration?

amazon-web-services - 不需要的属性的 CloudFormation 默认值

amazon-web-services - 如何使用aws autoscaling基于自动缩放组的单个实例进行缩放?

amazon-web-services - 如何使用 AWS CloudWatch Insights 查询 AWS CloudWatch 日志?

amazon-web-services - 具有 Auto Scaling EC2 实例的统一 Cloudwatch 代理