1

一直在尝试解决这个问题,但似乎无法让它发挥作用。我想创建一个看起来像 $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 以执行“审计”时,它工作得很好,但它没有在文件开头创建带有附加主机名的日志文件。它确实为 test_servers 中定义的每个主机创建了一个日志文件,但带有时间戳。任何帮助将不胜感激。

4

1 回答 1

0

看起来 env.hosts 不能在函数中定义,只有 env.host_string 可以。

所以我想你可能会收到一些错误消息,例如:

No hosts found. Please specify (single) host string for connection:
于 2013-04-25T08:11:46.633 回答