不确定如何继续创建ec2-consistent-snapshot

时间:2012-08-15 15:15:38

标签: perl amazon-ec2 amazon-web-services sh

我刚刚接受了一项任务,试图调试并弄清楚为什么我们的ec2-consistent-snapshot脚本无效。

我们的首席程序员遵循此blog post

我们有一个.sh脚本,我们想拍摄快照,它看起来像这样:

#!/bin/sh
/opt/aws/bin/ec2-consistent-snapshot --aws-access-key-id MYACCESSKEY --aws-secret-access-key MYSECRETKEY --freeze-filesystem /vol --mysql --mysql-host localhost --mysql-socket /var/lib/mysql/mysql.sock --mysql-username USERNAME --mysql-password PASSWORD --description "Demo MySQL data volume: $(date +%c)" vol-MYVOL

如果我通过执行sudo ./snapshot_script.sh来执行此操作,我会收到一个错误:

ec2-consistent-snapshot: ERROR: create_snapshot: File does not exist: at /usr/share/perl5/vendor_perl/Net/Amazon/EC2.pm line 232

我当然遵循了这个错误,EC2.pm中的第232行是:

my $ref = $xs->XMLin($xml);

我有0次perl经验,我不知道这可能做什么。

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

我在CPAN上看到的Net::Amazon::EC2在252处有这行,而不是232,所以也许你没有使用最新版本。在该行上方,该程序试图使用许多安全参数进行“查询签名”。我怀疑您使用的身份验证密钥存在问题。有一个调试标志,您可能希望将其打开以生成更多消息。

答案 1 :(得分:0)

如果你转到this page,你会发现XMLin()是XML :: Simple的函数,它将文件作为参数。因此,$xml可能是包含xml文件名的变量。该文件不存在。

下一步是将错误追溯到ec2-consistent-snapshot的源代码中,以便了解它如何调用XML :: Simple以及传递错误值的位置。