Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash AWS EC2用户数据未正确解码_Bash_Amazon Web Services_Amazon Ec2_User Data - Fatal编程技术网

Bash AWS EC2用户数据未正确解码

Bash AWS EC2用户数据未正确解码,bash,amazon-web-services,amazon-ec2,user-data,Bash,Amazon Web Services,Amazon Ec2,User Data,我正在尝试创建一个EC2实例来托管Performce服务器。我的实例配置了以下用户数据: #!/bin/bash # Add a newline to the ec2-user prompt string echo PS1=\"\\n\$PS1\" >> /home/ec2-user/.bashrc # Update all packages yum update –y # Install Perforce packages # The RHEL/7 part of the b

我正在尝试创建一个EC2实例来托管Performce服务器。我的实例配置了以下用户数据:

#!/bin/bash

# Add a newline to the ec2-user prompt string
echo PS1=\"\\n\$PS1\" >> /home/ec2-user/.bashrc

# Update all packages
yum update –y

# Install Perforce packages
# The RHEL/7 part of the baseurl should be replaced with
# the latest RHEL version that both Amazon and Perforce support
rpm –import https://package.perforce.com/perforce.pubkey
cd /etc/yum.repos.d/
echo [perforce] > perforce.repo
echo name=Perforce >> perforce.repo
echo baseurl=http://package.perforce.com/yum/rhel/7/x86_64 >> perforce.repo
echo enabled=1 >> perforce.repo
echo gpgcheck=1 >> perforce.repo
yum install –y helix-p4d

# Make directories for the server, owned by new “perforce” user
cd /opt/perforce/servers/
mkdir danware
cd danware
mkdir danware-db danware-chkpts journal
chown –R perforce:perforce danware
我已经测试了上面的每一个命令,并且知道它们在按照这个顺序手动执行时可以工作。然而,亚马逊base64编码/解码系统的某些方面似乎遇到了阻碍。启动(并通过所有系统检查)后,当我从EC2控制台转到“操作>实例设置>查看/更改用户数据”时,我会看到以下用户数据。请注意,几乎每个连字符“-”都被一些奇怪的“a”字符所取代

但是,我不确定这是否是问题所在,因为位于/var/log/cloud-init-output.log的日志文件提供了以下输出(为了节省空间,我用[…]替换了一些重复的文本)。请注意,
运行失败/var/lib/cloud/instance/scripts/part-001
我已验证此part-001文件是否具有正确显示的连字符

[...]
Cloud-init v. 0.7.6 running 'modules:final' at Fri, 09 Sep 2016 06:23:39 +0000. Up 86.66 seconds.
Loaded plugins: priorities, update-motd, upgrade-helper
No Match for argument: –y
No packages marked for update
RPM version 4.11.2
Copyright (C) 1998-2002 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL

Usage: rpm [-aKfgpqVcdLilsiv?] [-a|--all] [-f|--file] [-g|--group] [...]
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> [...]

Dependencies Resolved

================================================================================
 Package                  Arch        Version               Repository     Size
================================================================================
Installing:
 helix-p4d                x86_64      2016.1-1429894        perforce       24 k
Installing for dependencies:
 helix-cli                x86_64      2016.1-1429894        perforce      8.8 k
 helix-cli-base           x86_64      2016.1-1429894        perforce      1.4 M
 helix-p4d-base           x86_64      2016.1-1429894        perforce      3.1 k
 helix-p4d-base-16.1      x86_64      2016.1-1429894        perforce      2.4 M
 helix-p4dctl             x86_64      2016.1-1429894        perforce      1.2 M

Transaction Summary
================================================================================
Install  1 Package (+5 Dependent packages)

Total download size: 5.0 M
Installed size: 13 M
Is this ok [y/d/N]: Exiting on user command
Your transaction was saved, rerun it with:
 yum load-transaction /tmp/yum_save_tx.2016-09-09.06-23.dRP_r2.yumtx
/var/lib/cloud/instance/scripts/part-001: line 22: cd: /opt/perforce/servers/: No such file or directory
chown: invalid user: ‘–R’
Sep 09 06:23:41 cloud-init[2517]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]
Sep 09 06:23:41 cloud-init[2517]: cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Sep 09 06:23:41 cloud-init[2517]: util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/dist-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
Cloud-init v. 0.7.6 finished at Fri, 09 Sep 2016 06:23:41 +0000. Datasource DataSourceEc2.  Up 88.53 seconds
[…]
云初始化v。0.7.6在2016年9月9日星期五06:23:39+0000运行“模块:最终版”。上升了86.66秒。
加载的插件:优先级、更新motd、升级助手
参数不匹配:–y
没有标记要更新的包
RPM版本4.11.2
版权所有(C)1998-2002-红帽公司。
本程序可根据GNU GPL条款自由重新发布
用法:rpm[-aKfgpqVcdLilsiv?][-a |--all][f |--file][g |--group][…]
加载的插件:优先级、更新motd、升级助手
解决依赖关系
-->运行事务检查
---> [...]
已解决依赖项
================================================================================
包Arch版本存储库大小
================================================================================
安装:
helix-p4d x86_64 2016.1-1429894性能24 k
为依赖项安装:
helix cli x86_64 2016.1-1429894性能8.8 k
helix cli base x86_64 2016.1-1429894性能1.4 M
helix-p4d-base x86_64 2016.1-1429894性能3.1 k
helix-p4d-base-16.1 x86_64 2016.1-1429894性能2.4米
helix-p4dctl x86_64 2016.1-1429894性能1.2米
交易摘要
================================================================================
安装1个软件包(+5个相关软件包)
总下载大小:5.0米
安装尺寸:13米
是否可以[y/d/N]:按用户命令退出
您的事务已保存,请使用以下命令重新运行它:
yum load transaction/tmp/yum_save_tx.2016-09-09.06-23.dRP_r2.yumtx
/var/lib/cloud/instance/scripts/part-001:第22行:cd:/opt/perforce/servers/:没有这样的文件或目录
chown:无效用户:'-R'
Sep 09 06:23:41 cloud init[2517]:util.py[警告]:无法运行/var/lib/cloud/instance/scripts/part-001[1]
Sep 09 06:23:41 cloud init[2517]:cc_scripts_user.py[警告]:无法运行模块脚本用户(在/var/lib/cloud/instance/scripts中的脚本)
Sep 09 06:23:41云初始化[2517]:util.py[警告]:运行模块脚本用户()失败
云初始化v。0.7.6于2016年9月9日星期五06:23:41+0000完成。数据源数据源EC2。上升88.53秒
更令人恼火的是,我假设日志文件中早期的
不匹配参数:–y
行是指我的用户数据中的
yum update-y
行。果不其然,仅从EC2页面运行示例用户数据脚本(该脚本也使用了
yum update-y
)就会出现同样的错误/警告!亚马逊自己的示例脚本不起作用!?那么,有人能回答为什么A)AWS没有正确显示用户数据代码,以及B)为什么我的用户数据会产生上述错误吗?非常感谢您的帮助

对于诸如

yum update –y
您使用的字符是“EN DASH U+2013”

连字符的常用字符是“连字符-U+002D”

修复您的用户数据源以使用“连字符减号”,然后再试一次

我通过剪切n粘贴到这个在线站点来检查字符代码

不知道你是否能看出区别,但这是你的连字符

yum update –y
这是一个“连字符减号”

对于诸如

yum update –y
您使用的字符是“EN DASH U+2013”

连字符的常用字符是“连字符-U+002D”

修复您的用户数据源以使用“连字符减号”,然后再试一次

我通过剪切n粘贴到这个在线站点来检查字符代码

不知道你是否能看出区别,但这是你的连字符

yum update –y
这是一个“连字符减号”


这可能是字符编码问题。尝试从aws设置用户数据-cli@hjpotter92,如果/var/lib/cloud/instance/scripts/part-001文件与我通过AWS控制台输入的用户数据完全匹配,这真的是字符编码问题吗?可能是字符编码问题。尝试从aws设置用户数据-cli@hjpotter92,如果/var/lib/cloud/instance/scripts/part-001文件与我通过AWS控制台输入的用户数据完全匹配,这真的会是一个字符编码问题吗!我现在确实看到了那些连字符之间的区别,但是你怎么知道哪一个是对的,哪一个是错的呢?回顾过去,我认为我的问题的真正根源是我开始用MicrosoftWord写下用户数据脚本(作为更大文档的一部分),然后最终复制到Notepad++中,因为担心会发生编码问题。显然,只是复制粘贴并不能纠正字符代码。显然,Word在单词末尾使用了连字符破折号表示连字符,但在单词内部使用了减号表示连字符!哇,成功了,出色的工作@vorspring!我现在确实看到了那些连字符之间的区别,但是你怎么知道哪一个是对的,哪一个是错的呢?回顾过去,我认为