我有这段代码可以更改文件系统的大小。问题是,即使满足if条件,它也不会进入if条件,而我根本没有检查if条件。直接进入else条件。
post-install-ray.py chpasswd
chpasswd根目录:Deepsky24
df -g | grep -w / | awk'{print $ 3}' 0.89
df -g | grep -w / usr | awk'{print $ 3}' 5.81
chfs -a size = + 4G /文件系统大小更改为10354688
代码:
import subprocess
import sys
import pexpect
from pexpect import pxssh
import logging
password = "Deepsky24"
hostname = "host"
username = "root"
def change_filesystem():
child = pxssh.pxssh()
child.login(hostname, username, password)
child.sendline("df -g | grep -w / | awk '{ print $3 }'")
child.prompt()
output1 = child.before
print output1
child.sendline("df -g | grep -w /usr | awk '{print $3 }'")
child.prompt()
output2 = child.before
print output2
if (output1 <= 1 and output2 >= 4):
child.sendline('chfs -a size=-3G /usr')
child.prompt()
print(child.before)
child.sendline('chfs -a size=+3G /')
child.prompt()
print(child.before)
else:
child.sendline('chfs -a size=+4G /')
child.prompt()
print(child.before)
if __name__== "__main__":
change_filesystem()
答案 0 :(得分:2)
您的两个输出仍然是字符串,您需要将它们转换为浮点数
output1 = float(child.before)
output2 = float(child.before)
答案 1 :(得分:1)
我想你在python 2上。
child.before
返回一个字符串。
您将字符串与整数进行比较,并得到意外的结果。
使用int()
或float()
使用python 3,您可能会有例外