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と、1つのエラーが発生します。

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);

私はperlの経験が0で、これが何をしているのかわかりません。

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

2

私が CPAN で見ている Net::Amazon::EC2 には、その行が 232 ではなく 252 にあるため、おそらく最新バージョンではありませんその行の上を見ると、プログラムは多くのセキュリティ パラメーターを使用して「署名するためのクエリ」を実行しようとしています。使用している認証キーに問題があると思われます。デバッグ フラグがあります。これをオンにして、より多くのメッセージを生成することができます。

于 2012-08-15T15:51:56.030 に答える
0

このページに行くとXMLin()、それが XML::Simple の関数であり、引数としてファイルを取ることがわかります。したがって、$xmlおそらく xml ファイル名を含む変数です。そのファイルは存在しません。

次のステップは、エラーを ec2-consistent-snapshot のソース コードにさかのぼってトレースし、XML::Simple がどのように呼び出されているか、および不正な値が渡された場所を確認することです。

于 2012-08-15T15:24:35.453 に答える