답변:
무인 업그레이드 응용 프로그램을 사용하십시오.
sudo unattended-upgrade
이를 통해 보안 업데이트 만 자동으로 설치할 수 있지만 필요한 경우 수동으로 호출 할 수 있습니다.
apt-get upgrade -s | grep -i security
... Nagios check-apt 플러그인이 찾고있는 것과 유사한 보류중인 보안 업데이트를 계산하는 데 사용하는 것입니다.
grep -i xenial-security
수 있으며 오 탐지를 거의 0으로 줄여야합니다.
grep Debian-Security
더 나은 솔루션이 될까요?
regular;security
사용 가능한 업데이트 수 를 얻는 데 유용 합니다. -p
이 보안의 목록을 얻을 수있는 가능한 방법이되지 않도록 업데이트를 사용할 수있는 패키지 이름은 ... (적어도 16.04에) 그러나 일반 및 보안 업데이트를 구분하지 않는 목록 옵션은 지금까지 내가 말할 수있는 가능한 업데이트합니다.
우분투에서는 apt-check를 사용할 수 있어야합니다. 이것은 사용 가능한 보안 업데이트 수로 motd를 채우는 것입니다.
--package-names
( -p
) 을 추가해야 하지만 정기 업데이트와 보안 업데이트를 구분하지 않는 것 같습니다.
이 명령으로 목록을 얻을 수 있습니다.
sudo unattended-upgrade --dry-run -d 2> /dev/null | grep 'Checking' | awk '{ print $2 }'
/dev/null
아무것도 출력하지 않도록 모든 출력을 보냈습니다 !
보안 관련 패키지 이름 만 출력 update-notifier
하는 추가 스위치가 필요한 수정 된 버전이 --security-package-names
있습니다. 요점으로 사용합니다 (런치 패드의 관련 프로젝트에서 병합 요청을 만들 때까지). 그때까지 다음과 같이 실행될 수 있습니다.
운영
curl -s https://gist.githubusercontent.com/ahmadnazir/c2444d6b09fd7bb4963a13bc577d92a3/raw/0231b94a4e46abe0a5959de5f84feda76ad2eb9d/apt-check.py \
| python /dev/stdin --security-package-names \
| column -t -s , \
| sort
산출
package name , installed version 및 후보 버전 형식으로 출력됩니다 .
...
thunderbird 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-gnome-support 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-locale-en 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-locale-en-us 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
...
OP가 묻는 질문에 대답하는 것은 보안 패키지 만 설치하는 방법이 아니라 패키지 목록 을 보는 방법입니다. @topdog의 답을 바탕으로 사용해야합니다 :
플래그가 패키지를 나타내는
/usr/lib/update-notifier/apt-check -p
곳-p
update-notifier-common
You have searched for files named apt-check in suite jessie, all sections, and all architectures. Found 1 results.
했지만 실제로 그 결과에 대한 링크를 클릭하면 알려줍니다Package not available in this suite.
이 두 명령은 목록을 뱉어냅니다. 얼마나 많은 것이 뒤에 있는지 보려면 wc -l로 파이프하십시오. ;-)
grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s
이전 배포판이나 업데이트 저장소를 해제했지만 보안은 설정 한 경우에도 여전히 유효합니다.
sudo apt-get upgrade -s| grep ^Inst |grep Security
-oDir::Etc::Sourcelist
옵션은 표준 리포지토리 세트를 비활성화하지 않는 것 같습니다.
@ smin의 대답은 기본적으로 좋은 접근 방법이지만 @Shnatsel이 지적한 것처럼 정규 표현식으로 약간 느슨하다고 생각합니다.
이건 어때요:
apt-get upgrade -q --dry-run \
| perl -ne 'm/^Inst (\S+) \S+ \(([^\)]+) Debian-Security:8/ && print "$1-$2\n"'
설치하려는 버전과 함께 패키지 이름이 나열됩니다. -$2
버전을 원하지 않으면 인쇄 문 을 제거 할 수 있습니다 .
[이것은 아마도 perl 대신 awk를 사용함으로써 약간 더 가벼워 질 수있다]
우분투 시스템에서 apt-check 스크립트 수정을 해결했습니다. -p 플래그가 제공되면 패키지 이름도 표시하여 보안 업데이트 만 처리합니다.
여기서 요점을 찾을 수 있습니다 : https://gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b