【发布时间】:2014-07-09 19:48:03
【问题描述】:
我正在尝试编写一个快速脚本,可用于检查过去 x 天内创建了哪些 AWS EC2 快照。
虽然我得到一个输出错误
/bin/sh: 1: /usr/local/bin/aws --profile dummydata0 ec2 describe-snapshots --owner-ids 000000000000 --filters Name=start-time,Values=2014-07-08*: not found
运行
/usr/local/bin/aws --profile dummydata0 ec2 describe-snapshots --owner-ids 000000000000 --filters Name=start-time,Values=2014-07-08*
在命令行上工作得很好,所以我猜我对 Linux 的基本理解在这里下降了。
这是我使用python ./script.py从命令行完整运行的脚本
#!/usr/bin/env python
import subprocess
import datetime
# Create your views here.
def main(numdays):
base = datetime.date.today()
date_list = [base - datetime.timedelta(days=x) for x in range(0, numdays)]
environment = {'dummydata0':'000000000000', 'dummydata1':'111111111111', 'dummydata2':'222222222222'}
data = []
for date in date_list:
date_string = str(date) + "*"
# Python 3 prefers .values to .itervalues
for key in environment:
call_snapshots = '"/usr/local/bin/aws --profile {0} ec2 describe-snapshots --owner-ids {1} --filters Name=start-time,Values={2}"'.format((key), (environment[key]), (date_string))
return subprocess.call(call_snapshots, shell=True)
main(7)
【问题讨论】:
-
你可以尝试使用 subprocess.Popen 吗? docs.python.org/2/library/subprocess.html#subprocess.Popen
标签: python linux amazon-web-services amazon-ec2 subprocess