1

我刚刚接到了一项任务,尝试调试并找出我们的 ec2-consistent-snapshot 脚本不工作的原因。

我们的首席程序员关注了这篇博文

我们有一个.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

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

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

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

任何帮助都会很棒。

4

2 回答 2

2

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

于 2012-08-15T15:51:56.030 回答
0

如果你去这个页面,你会看到这XMLin()是一个 XML::Simple 的函数,它接受一个文件作为参数。所以,$xml大概是一个包含xml文件名的变量。该文件不存在。

下一步是将错误追溯到 ec2-consistent-snapshot 的源代码,以查看它是如何调用 XML::Simple 以及错误值在何处传入的。

于 2012-08-15T15:24:35.453 回答