Làm thế nào để có được một danh sách tất cả các cập nhật bảo mật đang chờ xử lý?


13

Tôi cần liệt kê (không tính hoặc cài đặt) tất cả các bản cập nhật bảo mật đang chờ xử lý trên hệ thống Ubuntu 14.04. Tôi đã đọc bài viết Làm thế nào để tạo một danh sách chỉ các bản cập nhật bảo mật với apt-get? và câu trả lời được chấp nhận của nó ( apt-show-versions | grep upgradeable | grep security) thực sự cho tôi một danh sách.

Tuy nhiên, lệnh đó liệt kê 62 cập nhật bảo mật đang chờ xử lý. /usr/lib/update-notifier/apt-checknói với tôi rằng tôi có 75 cập nhật bảo mật đang chờ xử lý, nhưng dường như không có cách nào để liệt kê chúng. Làm thế nào tôi có thể dung hòa hai số này? Là một trong hai lệnh làm một cái gì đó khác với những gì tôi muốn?

Câu trả lời:


7

Nếu bạn chỉ muốn thực hiện việc này một lần nhanh chóng, thay vì tạo một kho lưu trữ riêng biệt và tạo kịch bản tự động hóa và tất cả những thứ đó. Tuyệt vời nếu bạn không cần phải thực hiện thay đổi trong khi kiểm tra hệ thống hoặc bất cứ điều gì.

Hai lệnh này sẽ nhổ ra danh sách. Ống đến wc -l để xem có bao nhiêu phía sau. ;-)

grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -oDir::Etc::SourceParts=/some/valid/dir/false -s

Vẫn hợp lệ cho các bản phát hành cũ hơn hoặc nếu bạn đã cập nhật repos, nhưng bảo mật trên:

sudo apt-get upgrade -s| grep ^Inst |grep Security 

Tại sao bạn lại viết ra Vẫn còn hiệu lực đối với các bản phân phối cũ hơn hoặc nếu bạn đã cập nhật repos, nhưng bảo mật trên thì sao? nếu giải pháp đường ống không hoạt động, có thể thêm tùy chọn -V( -verbose-versions)?
myrdd

@myrdd Bởi vì lần đầu tiên sử dụng các tính năng không có sẵn trên các bản phát hành đã lỗi thời vào năm 2016. Có thể không còn là một thứ nữa.
flickerfly

Vì vậy, giải pháp sau nên luôn luôn làm việc, không?
myrdd

1
@myrdd Miễn là định dạng của đầu ra không thay đổi trong phiên bản mới hơn. Đầu tiên là tốt hơn bởi vì nó không phụ thuộc vào định dạng đầu ra.
nhấp nháy

2

Điều này làm việc cho tôi:

sudo unattended-upgrade --dry-run -d 2> /dev/null | awk '/Checking/ { print $2 }'

2
Hiển thị tất cả các bản cập nhật có sẵn, nhưng không giới hạn các bản cập nhật bảo mật nếu tôi không nhầm. Vẫn hữu ích.
delf

2
sudo apt-get -s --no-download dist-upgrade -V | grep "^Inst.*security.*$" | cut -d " " -f 2

Với sự giúp đỡ từ câu hỏi này


2
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                            Command                            |                                                                               Purpose                                                                               |
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| apt list --upgradable                                         | List all updates available                                                                                                                                          |
| apt list --upgradable | grep "\-security"                     | List all updates that are security.                                                                                                                                 |
| apt list --upgradable 2>/dev/null | grep "\-security" | wc -l | Count number of security updates available. and redirects the stderr like "WARNING: apt does not have a stable CLI interface. Use with caution in scripts." to null |
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+

0
sudo apt list --upgradable |grep "/$(lsb_release -cs)-security"

Điều này liệt kê tất cả các bản cập nhật có sẵn thông qua kho bảo mật.


1
apt là để sử dụng tương tác. Bạn nhận được một cảnh báo khi được sử dụng trong một kịch bản. Sử dụng apt-getthay thế.
Bernard

0

có phải là một cách để yêu cầu có bao nhiêu gói là có thể cập nhật và bao nhiêu cập nhật bảo mật ngay bây giờ , nhưng nếu bạn giải quyết cho hỏi nó một lần một ngày bạn chỉ có thể đọc các tập tin / var / lib / update-notifier / cập nhật-có sẵn , mà dường như được cập nhật hàng ngày bởi tập lệnh /etc/cron.daily/update-notifier-common thuộc về gói cập nhật-notifier-common

Thí dụ:

$ sudo cat /var/lib/update-notifier/updates-available

355 packages can be updated.
1 update is a security update.

Đã thử nghiệm trong:

  • Ubuntu 14.04 LTS
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS

Trân trọng,

/Thiên thần

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.