How to Set Up Automated Headless Debian Upgrades with Unattended-Upgrades

What unattended-upgrades does on a headless Debian server

unattended-upgrades is Debian's package for automatically downloading and installing selected APT updates without an interactive login. On a headless server, that makes it useful for security maintenance when no desktop session is available and nobody is expected to run apt upgrade every day.

As of October 2026, Debian 13 "trixie" is the stable Debian release, and the stable unattended-upgrades package is version 2.12. The package is meant for normal package updates, especially security and stable updates. It is not a substitute for the separate, planned process of upgrading from one major Debian release to another.

The practical model is simple: APT's periodic machinery refreshes package indexes, apt-daily-upgrade.service invokes the unattended-upgrade backend on schedule, and your policy decides which package origins are allowed. Debian logs the result under /var/log/unattended-upgrades/.

Quick setup checklist

GoalRecommended action
Install the updatersudo apt update && sudo apt install unattended-upgrades
Enable daily periodic workSet APT::Periodic::Update-Package-Lists "1"; and APT::Periodic::Unattended-Upgrade "1";
Keep local policy maintainablePut overrides in a later file such as 52unattended-upgrades-local
Test before relying on itsudo unattended-upgrade --debug --dry-run
Confirm schedulingInspect apt-daily.timer and apt-daily-upgrade.timer
Watch resultsReview /var/log/unattended-upgrades/ and your monitoring alerts

1. Install unattended-upgrades

Run the installation from an administrative shell:

sudo apt update
sudo apt install unattended-upgrades

Installing the package is safe to repeat: APT will simply report that it is already installed if the host already has it. Debian describes the package as an automatic installer for security upgrades and other updates selected by policy.

Debian 터미널에서 apt update 명령 실행 후 unattended-upgrades 패키지 설치가 진행되는 화면입니다.
Example terminal view for installing unattended-upgrades. Repository names and package counts vary by Debian release and host.

For a fleet, do not assume every image has the same default state. Some Debian installations already include unattended upgrades; others do not, and an existing configuration may have been disabled. After installation, inspect the effective configuration instead of assuming that package presence means the policy you want is active.

2. Enable periodic package-list refreshes and unattended runs

Debian's upstream README says a manual setup needs these two APT periodic values:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

The value "1" means the activity is eligible to run daily. A practical local fragment is:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Then add the two lines above. You can inspect the merged APT configuration with:

apt-config dump | grep -E 'APT::Periodic::(Update-Package-Lists|Unattended-Upgrade)'
Nano 에디터에서 APT의 주기적인 설정을 보여줍니다. 이 설정은 일일 패키지 목록 업데이트 및 무인 업그레이드에 사용됩니다.
APT periodic settings that request daily package-list refreshes and unattended upgrade runs.

이것은 작업이 매일 정확히 자정에 시작된다는 약속으로 받아들이지 마십시오. systemd 기반 Debian 시스템에서 APT는 타이머 단위를 사용하며 무작위 스케줄링 방식을 채택합니다. 운영 작업 시에는 추측에 기반한 시간으로 모니터링을 설계하기보다는 호스트의 실제 타이머 상태와 다음 트리거 시간을 확인하십시오.

3. 패키지를 자동으로 업그레이드할 수 있는 저장소를 정의합니다.

핵심 정책은 Unattended-Upgrade::Origins-Pattern이전 Allowed-Origins형식 아래에 있습니다. 데비안 2.12 문서에서는 패키지된 50unattended-upgrades파일을 기준으로 정렬하는 로컬 APT 조각을 생성하는 것을 권장합니다. 예를 들면 다음과 같습니다.

sudo nano /etc/apt/apt.conf.d/52unattended-upgrades-local

이는 패키지 업그레이드 시 공급업체에서 관리하는 구성이 교체되거나 충돌할 수 있으므로 배포된 파일을 영구적으로 편집하는 것보다 더 나은 방법입니다. 패턴을 작성하기 전에 APT가 실제로 보는 릴리스 메타데이터를 검사하십시오.

apt-cache policy

대부분의 헤드리스 서버에서는 자동 업데이트를 데비안의 일반 안정 및 보안 채널로 제한하는 것이 보수적인 정책입니다. 정확한 업데이트 패턴은 저장소 구성, 미러 서버, 타사 공급업체 및 고정 규칙에 따라 다를 수 있으므로 apt-cache policy각 환경에 맞는 표준 정보를 참조하십시오.

자동 업그레이드 원본 정책과 자동 재부팅 비활성화를 보여주는 나노 에디터 화면
정책 편집기 화면 예시입니다. 레이블을 무작정 복사하는 대신, 서버의 apt-cache 정책에서 보고하는 저장소와 출처를 일치시키세요.

알아두면 유용한 선택적 제어 기능

2.12 버전 구성은 패키지 블랙리스트 및 화이트리스트, 자동 재부팅, 메일 보고, 사용하지 않는 종속성 제거, 대역폭 제한, 업데이트 날짜 제한, syslog 출력 등을 지원합니다. 특히 원격 서버에서 유용한 몇 가지 옵션은 다음과 같습니다.

Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::MailReport "only-on-error";
Unattended-Upgrade::SyslogEnable "true";

메일 전송이 정상적으로 작동하는 경우에만 메일 설정을 구성하십시오. 자동 재부팅을 활성화하면 Debian의 기본 동작이 중요합니다. Automatic-Reboot`true`가 참이고 ` /var/run/reboot-requiredis`가 존재하는 경우 호스트는 확인 절차 없이 재부팅될 수 있습니다. Unattended-Upgrade::Automatic-Reboot-Time유지 관리 기간에 재부팅을 예약하도록 설정할 수 있습니다.

대부분의 운영 시스템에서는 서비스가 이중화되어 있거나, 유지 관리 기간이 정의되어 있거나, 재부팅 후 상태 점검이 자동화되어 있지 않는 한 자동 재부팅을 비활성화하는 것이 더 안전합니다.

4. systemd 타이머를 확인하고 간단한 테스트를 실행합니다.

일반적인 systemd 기반 데비안 설치에서는 임의로 만든 unattended-upgrades.timer단위를 찾는 대신 APT 타이머를 확인하십시오.

systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers apt-daily.timer apt-daily-upgrade.timer

apt-daily.timer는 일반적인 패키지 다운로드/인덱스 활동과 관련이 있으며, 는 apt-daily-upgrade.timer무인 업그레이드에 사용되는 업그레이드/정리 서비스 경로를 트리거합니다.

apt-daily.timer와 apt-daily-upgrade.timer의 systemd 터미널 상태는 활성 상태와 대기 상태 모두를 보여줍니다.
APT의 일일 작업에 대한 systemd 타이머 상태입니다. 표시된 날짜는 예시이며, 실제 다음 실행 일정은 호스트에서 systemctl list-timers 명령어를 사용하여 확인하십시오.

다음으로, 패키지를 변경하지 않고 정책을 테스트합니다.

sudo unattended-upgrade --debug --dry-run

이는 실제 APT 구성을 평가하고 디버그 세부 정보를 기록하기 때문에 가장 유용한 사전 점검입니다. 출력 내용을 검토하여 선택되거나 보류될 패키지, 예상치 못한 타사 출처, 종속성 문제 및 구성 파일 프롬프트를 확인하십시오.

시뮬레이션 실행에서 아무것도 선택되지 않는다면, 서버가 최신 상태인 경우 정상적인 현상일 수 있습니다. 실제로 보류 중인 업데이트가 있는지 확인한 후 apt list --upgradable, 해당 업데이트의 출처와 정책을 구성된 패턴과 비교해 보세요.

5. 무인 업그레이드를 모니터링하고 재부팅을 의도적으로 처리합니다.

해당 패키지는 주요 활동 로그와 dpkg 출력 결과를 다음 경로에 기록합니다.

/var/log/unattended-upgrades/unattended-upgrades.log
/var/log/unattended-upgrades/unattended-upgrades-dpkg.log

유용한 점검 사항은 다음과 같습니다.

sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"
test -f /var/run/reboot-required && cat /var/run/reboot-required

개인용 랩 환경의 단일 머신이라면 주기적으로 로그를 검토하는 것으로 충분할 수 있습니다. 하지만 비즈니스 시스템의 경우, 저장소 오류, 파일 시스템 용량 부족, 종속성 문제 또는 dpkg 상태 중단과 같은 오류가 눈에 띄지 않게 지속되지 않도록 중앙 모니터링 시스템이나 syslog로 오류를 전송해야 합니다.

일반 서버 정책에 대한 참조 설정

대본정책운영 참고 사항
보안에 중점을 둔 서버Debian 보안 및 안정화 업데이트는 허용하고, 재부팅은 수동으로 유지하세요.시스템 장애로 인한 손실이 재부팅 지연으로 인한 손실보다 클 경우, 이 설정이 적절한 기본 설정입니다.
상태 비저장 또는 중복 노드업데이트 및 예약된 자동 재부팅을 허용합니다.건강 상태 점검 및 로드 밸런서 배수 기능과 함께 사용하세요.
커널에 민감한 기기패키지 블랙리스트는 예외 처리 절차가 문서화된 경우에만 사용하십시오.블랙리스트에 등록하면 알려진 취약점이 패치되지 않은 채로 남을 수 있습니다.
벤더 저장소가 있는 서버해당 공급업체의 업데이트 정책이 검토될 때까지 해당 공급업체의 출처를 허용하지 마십시오.서명, 지원 정책 및 롤백 기대치를 먼저 확인하세요.

문제 해결 빠른 참조

타이머는 활성화되었지만 패키지가 설치되지 않았습니다.

보류 중인 업그레이드가 있는지, 해당 저장소의 출처가 허용된 정책과 일치하는지, 블랙리스트 또는 종속성 제약 조건으로 인해 선택이 차단되는지 확인하십시오. sudo unattended-upgrade --debug --dry-run정책을 임의로 변경하기보다는 증거를 확보하기 위해 실행해 보십시오.

서버는 패키지 구성을 기다립니다.

unattended-upgrades이 기능은 해결되지 않은 dpkg 구성 프롬프트가 필요한 업그레이드를 방지하도록 설계되었습니다. 패키지 업그레이드가 반복적으로 보류되는 경우 로그를 검사하고 구성 파일 관련 결정을 수동으로 처리해야 하는지 판단하십시오.

가상 머신 이미지를 복제한 후에는 업데이트가 실행되지 않습니다.

타이머가 활성화되어 있고 활성화되어 있는지 확인한 다음 검사하십시오 apt-config dump. 골든 이미지에는 패키지 기본값과 다른 로컬 APT 조각, 마스킹 또는 정책 재정의가 포함되는 경우가 많습니다.

자동 업그레이드를 중지해야 합니다.

데비안에서 지원하는 재구성 경로를 사용하십시오.

sudo dpkg-reconfigure -plow unattended-upgrades

해당 패키지를 비활성화한다고 해서 일반적인 패치 관리가 대체되는 것은 아닙니다. 단지 패치 관리 책임이 사용자의 수동 또는 외부 오케스트레이션 프로세스로 돌아갈 뿐입니다.

최종 검증 체크리스트

  • unattended-upgrades신뢰할 수 있는 데비안 저장소에서 설치됩니다.
  • APT 주기적 패키지 목록 새로 고침 및 무인 업그레이드 값이 활성화되었습니다.
  • 로컬 정책은 .과 같은 후속 재정의 파일에 저장됩니다 52unattended-upgrades-local.
  • 허용된 출처는 다음과 같이 확인되었습니다 apt-cache policy.
  • apt-daily.timer그리고 apt-daily-upgrade.timer활동적입니다.
  • sudo unattended-upgrade --debug --dry-run예상치 못한 선택이나 오류 없이 완료됩니다.
  • 로그가 모니터링되며, 재부팅 정책은 유지 관리 모델과 일치합니다.
  • 데비안 주요 릴리스 업그레이드는 별도의 계획된 절차로 진행됩니다.

공식 참고 자료

특정 릴리스에서의 동작을 검증할 때는 데비안 공식 문서를 참조하십시오.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.