【发布时间】:2020-04-13 17:32:38
【问题描述】:
我正在编写一个从远程主机本身捕获 FQDN 的 python 脚本,只是为了进行一些健全性检查,下面是我试图运行的小代码,并希望从 i 将相同的标准输出捕获到我当前的主机中'正在运行它,而是它在远程主机中创建文件,而不是我正在运行的那个。
#!/usr/bin/python3
system_name = socket.gethostname()
f = open("output.txt", "a")
print("Hostname: {}".format(system_name, file=f)
f.close()
或
#!/usr/bin/python3
system_name = socket.gethostname()
sys.stdout=open("output.txt","a")
print("Hostname: {}".format(system_name)
sys.stdout.close()
即使我尝试过采用like,但也没有用。
name = 'mycurrenthost'
system_name = socket.gethostname()
short_sysname = socket.gethostname().split('.', 1)[0]
if short_sysname == name:
f = open("output.txt", "a")
print("Hostname: {}".format(system_name), file=f)
f.close()
我的例子 myhostlist 看起来像..
mydbhost1
mydbhost2
mydnhost3
mydbhost4
下面是我如何执行上面的代码..
$ for host in `cat myhostlist`;do timeout -t 20 ssh -o "StrictHostKeyChecking no" "$host" "python -s" < ./myPythonScript.py;done
我在当前控制台上的输出,而不是写入文件...
Hostname: mydbhost1.example.com
Hostname: mydbhost2.example.com:
Hostname: mydnhost3.example.com:
Hostname: mydbhost4.example.com:
请帮忙
【问题讨论】:
标签: python python-3.x linux stdout