我似乎无法解决这个问题,但当我对localhost执行一个非常简单的测试以使结构执行此命令运行('history')时,命令行上的结果输出是空白的。
这也不会起作用: run('history> history_dump.log')
下面是完整的FabFile脚本,显然我在这里遗漏了一些东西。
- FabFile.py
from fabric.api import run, env, hosts, roles, parallel, cd, task, settings, execute from fabric.operations import local,put deploymentType = "LOCAL" if (deploymentType == "LOCAL"): env.roledefs = { 'initial': ['127.0.0.1'], 'webservers': ['127.0.0.1'], 'dbservers' : ['127.0.0.1'] } env.use_ssh_config = False # Get History # ------------------------------------------------------------------------------------- @task @roles('initial') def showHistoryCommands(): print("Logging into %s and accessing the command history " % env.host_string) run('history') #does not display anything run('history > history_dump.log') #does not write anything out print "Completed displaying the command history"
任何建议/解决方案都会受到欢迎。
答案 0 :(得分:3)
历史记录是内置的shell,因此它不像普通命令那样工作。我认为最好的办法是尝试从文件系统中读取历史文件。
local('cat ~/.bash_history')
or
run('cat ~/.bash_history')
替换相应的历史文件路径。
在进行一些研究后稍微扩展一下,该命令在运行时会成功,但出于某种原因,无论是结构还是捕获或打印输出。或者历史记录打印输出的方式。而像env这样的其他内置命令工作得很好。所以现在我不知道到底发生了什么。