【发布时间】:2023-03-23 08:13:01
【问题描述】:
1我正在尝试通过 ssh 将配额命令的结果输入 python,我正在使用:
cmd = 'quota -gsl user1'
try:
output = subprocess.check_output(
cmd,
stderr=subprocess.STDOUT,
timeout=5,
shell=True,
universal_newlines=True
)
except subprocess.CalledProcessError as e:
exit()
如果 user1 在配额范围内,这可以正常工作,并且返回类似
Disk quotas for group user1 (gid 9999):
Filesystem space quota limit grace files quota limit grace
/dev/sda2 666M 10240M 12560M 1141 0 0
但如果用户超过配额,它不会返回
Disk quotas for group user1 (gid 9999):
Filesystem space quota limit grace files quota limit grace
/dev/sda2 11000M* 10240M 12560M 1141 0 0
但只有False 用于output。甚至当我使用quota -q 时也是如此,它仅在超过配额时才返回更简单的输出。我也用quota -gslq 2>&1 试过这个,但没有用,我认为stderr=subprocess.STDOUT, 应该已经处理了这个问题。那么为什么我不能得到超额用户的结果呢?
【问题讨论】:
标签: python ssh subprocess quota