首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得sudo的完整输出apt-get更新

获得sudo的完整输出apt-get更新
EN

Stack Overflow用户
提问于 2021-03-07 19:17:54
回答 1查看 294关注 0票数 0

有没有一种方法可以打印sudo apt-get update的全部输出?

我有一个脚本,它在python中打印命令的输出:

代码语言:javascript
复制
from subprocess import check_output

output = check_output(["sudo", "apt-get", "update"])
print(output.decode())

目前,我得到的输出是:

代码语言:javascript
复制
Get:1 file:/var/cache/openmediavault/archives  InRelease
Ign:1 file:/var/cache/openmediavault/archives  InRelease
Get:2 file:/var/cache/openmediavault/archives  Release
Ign:2 file:/var/cache/openmediavault/archives  Release
Get:3 file:/var/cache/openmediavault/archives  Packages
Ign:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Get:3 file:/var/cache/openmediavault/archives  Packages
Ign:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Get:3 file:/var/cache/openmediavault/archives  Packages
Ign:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Get:3 file:/var/cache/openmediavault/archives  Packages
Ign:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Get:3 file:/var/cache/openmediavault/archives  Packages
Ign:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Get:3 file:/var/cache/openmediavault/archives  Packages
Ign:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Get:3 file:/var/cache/openmediavault/archives  Packages
Get:4 file:/var/cache/openmediavault/archives  Translation-en
Ign:4 file:/var/cache/openmediavault/archives  Translation-en
Hit:5 http://security.debian.org/debian-security buster/updates InRelease
Hit:6 http://httpredir.debian.org/debian buster-backports InRelease
Hit:7 https://download.docker.com/linux/debian buster InRelease
Hit:8 https://openmediavault.github.io/packages usul InRelease
Ign:9 https://dl.bintray.com/openmediavault-plugin-developers/usul buster InRelease
Hit:10 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:11 http://packages.openmediavault.org/public usul InRelease
Hit:12 http://archive.raspberrypi.org/debian buster InRelease
Get:13 https://dl.bintray.com/openmediavault-plugin-developers/usul buster Release [4363 B]
Fetched 4363 B in 4s (1028 B/s)
Reading package lists...

在此之后,我还想得到以下数据:

代码语言:javascript
复制
Reading package lists... Done
Building dependency tree
Reading state information... Done
64 packages can be upgraded. Run 'apt list --upgradable' to see them.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-07 20:20:37

代码语言:javascript
复制
import subprocess

sb = subprocess.Popen(["sudo", "apt", "update"], stdout=subprocess.PIPE)
# get the command output
cmd_out = sb.communicate()
# convert from byte string to string
output = cmd_out[0].decode()
print("all output in a variable\n" + str(output))
# number of upgradable packages
upgradable_package_count = str(output[-70:-68])
print("Upgradable: ", upgradable_package_count)

产出结束:

代码语言:javascript
复制
...
Hit:12 http://archive.raspberrypi.org/debian buster InRelease
Hit:13 http://packages.openmediavault.org/public usul InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66520425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档