2012-03-19 44 views
1

我使用bashrc來製作和刪除快照。如何使用grep在ec2-describe-snapshots的響應中查找關鍵字?

要刪除這些文件,我想使用這個命令:

ec2-describe-snapshots | sort -r -k 5 | awk '{print "Deleting snapshot: " $2}' 

,並使用在描述一個grep的,但是當我使用grep直接在該命令,如:

ec2-describe-snapshots | sort -r -k 5 | grep "My Keyword" | awk '{print "Deleting snapshot: " $2}; system("ec2-delete-snapshot " $2)' 

它不返回任何內容,因爲它只搜索快照的ID,不是嗎?

所以我的問題是:如何搜索包含在快照描述中的關鍵字?

回答

2

看完你的腳本後,它看起來應該可以工作。所以我在我的服務器上嘗試了同樣的事情,但不刪除它,我只是想再次描述快照。

ec2-describe-snapshots | sort -r -k 5 | grep <description> | awk '{print "Deleting snapshot: " $2}; system("ec2-describe-snapshots " $2)'

我得到的響應是這樣的

Deleting snapshot: snap-fabaa29e 
SNAPSHOT  snap-fabaa29e vol-cccb4ea6 completed  2012-01-31T16:08:42+0000  100% 362457333706 50  <description> 
Deleting snapshot: snap-ccbaa2a8 
SNAPSHOT  snap-ccbaa2a8 vol-b2cb4ed8 completed  2012-01-31T16:08:42+0000  100% 362457333706 50  <description> 
Deleting snapshot: snap-c0baa2a4 
SNAPSHOT  snap-c0baa2a4 vol-d0cb4eba completed  2012-01-31T16:08:42+0000  100% 362457333706 50  <description> 

該命令的grep的部分工作正常。但是它可能存在你正在搜索的描述有問題。另外,我不確定爲什麼要對結果進行排序,刪除所有結果還是您必須以特定順序刪除驅動器不同?

仔細檢查您的grep子句中的文本。很確定你會在那裏發現一個錯誤。

+0

好的,謝謝,我正在調試快照的描述,所以...感謝幫助我,我會回來給你關於我的情況的信息;-)謝謝 – clement 2012-03-19 14:47:58

+0

好吧,現在腳本可以描述所有的快照,但當我嘗試刪除快照時(但引用到正確的快照之前的行:刪除快照:snap-9f8e46f4)時,我有一個「/ bin/sh:ec2-delete-snapshots:not found」 我該怎麼做執行刪除?謝謝 – clement 2012-03-20 08:21:33

+0

好的,這不是ec2-delete-snapshots,而是ec2-delete-snapshot .... hum 謝謝! – clement 2012-03-20 08:25:59