一直试图解决这个问题,但似乎无法使其发挥作用。我想创建一个看起来像$ HOSTNAME-timestamp的日志文件。例如,我有这个:
def test_servers():
env.user = getpass.getuser()
env.hosts = ['servernumber1', 'servernumber2']
def logname():
timestamp = time.strftime("%b_%d_%Y_%H:%M:%S")
'env.hosts' + timestamp
def audit():
name = logname()
sys.stdout = open('/home/path/to/audit/directory/%s' % name, 'w')
run('hostname -i')
print 'Checking the uptime of: ', env.host
if run('uptime') < '0':
print(red("it worked for less"))
elif run('uptime') > '0':
print(green("it worked for greater"))
else:
print "WTF?!"
当我在fabfile.py上运行fabric来执行“audit”时,它工作得很好,但是它没有在文件开头创建带有附加主机名的日志文件。它确实为test_servers中定义的每个主机创建了一个带有时间戳的日志文件。任何帮助将不胜感激。
答案 0 :(得分:0)
看起来env.hosts不能在函数中定义,只有env.host_string可以。
所以我猜你可能会收到一些错误消息:
No hosts found. Please specify (single) host string for connection: