改变容器状态,等待新的一分钟开始,确保周期任务执行。
更新前的输出内容。
def home(request):
"""
:param request:
:return: 首页
"""
# 获取最新文件内容
os.system(r"C:\Users\PycharmProjects\CMDB\web\tools\getClientData.py")
# 获取'web/clientData/dockerStatus.txt'内容,并进行过滤操作。
dockerStatus = []
try:
with open('web/clientData/dockerStatus.txt', 'r') as file:
# 将文件中内容转化成列表
for line in file:
data = ast.literal_eval(line)
dockerStatus.append(data)
# 删除每个子列表的第一个元素
for sublist in dockerStatus:
del sublist[0]
except FileNotFoundError:
print('文件 web/clientData/dockerStatus.txt 不存在!')
# 获取'web/clientData/allDockerStatus.txt'内容
servicesStatus = ''
try:
with open('web/clientData/allServicesStatus.txt', 'r') as file:
content= file.readlines()
servicesStatus = [line.replace('\n', '') for line in content] # 去除\n
except FileNotFoundError:
print('文件 web/clientData/allDockerStatus.txt 不存在!')
print(servicesStatus)
return render(request, 'home.html', {'dockerStatus': dockerStatus, 'servicesStatus': servicesStatus})
将home页面的行为代码更新。
# 用于获取linux集群中的客户机的信息
import paramiko
# SSH连接参数
hostname = '192.168.3.58'
port = 22
username = 'root'
password = '123456'
def saveFile(remote_file_path, local_file_path):
"""
将remote_file_path保存到local_file_path
:param remote_file_path:
:param local_file_path:
:return:
"""
scp.get(remote_file_path, local_file_path)
# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接SSH服务器
client.connect(hostname, port, username, password)
# 创建SCP客户端
scp = client.open_sftp()
# 下载文件
saveFile('/output/dockerStatus.txt', r'C:\Users\PycharmProjects\CMDB\web\clientData\dockerStatus.txt')
saveFile('/output/allServicesStatus', r'C:\Users\PycharmProjects\CMDB\web\clientData\allServicesStatus.txt')
print('文件下载完成!')
finally:
# 关闭连接
scp.close()
client.close()
修改getClientData.py中的路径为绝对路径。
更新后输出内容。
更改容器状态,等待一分钟后验证效果。
刷新页面,发现效果成功实现。