업그레이드 후 체크리스트
Warning
26.10: rc 상태의 OpenSSH 패키지를 대량 제거하지 마세요. 교체 패키지는 여전히 이전 구성을 사용할 수 있으며 제거하면 SSH가 손상될 수 있습니다. 26.10 알려진 문제을 확인하고 원격 유지 관리 전에 복구 액세스를 유지하세요.
시스템 업그레이드가 완료되고 시스템이 재부팅된 후 이 체크리스트 항목을 항목별로 따라 모든 서비스와 기능이 제대로 작동하는지 확인하세요.
1. 기본 시스템 검증
버전 정보 확인
# Confirm system version
lsb_release -a
cat /etc/os-release
# Confirm kernel version
uname -r
# Confirm architecture
uname -m
dpkg --print-architecture시스템 부팅 확인
# View boot time
uptime
systemd-analyze
# Check for errors during boot
systemd-analyze blame
journalctl -b -p err
# Check dmesg for errors
dmesg --level=err,warn | tail -302. 패키지 관리 확인
잠재적인 패키지 문제 수정
# Check for broken packages
sudo dpkg --audit
# Fix broken dependencies
sudo apt --fix-broken install
# Complete any interrupted configuration
sudo dpkg --configure -a
# Check for held-back packages
apt list --upgradable전체 업데이트
# Update package lists and install remaining updates
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y오래된 패키지 정리
# Remove packages that are no longer needed
sudo apt autoremove --purge -y
# Clean package cache
sudo apt clean
# View installed old kernels
dpkg --list | grep linux-image | grep -v $(uname -r)
# Old kernels will be handled by autoremove; you can also remove them manually
# sudo apt purge linux-image-x.x.x-xx-generic3. 서비스 상태 확인
서비스 실행 상태 보기
# Check for failed services
systemctl --failed
# If there are failed services, view details
# systemctl status failed-service-name
# journalctl -u failed-service-name
# View all running services
systemctl list-units --type=service --state=running업그레이드 전 서비스 목록과 비교
# If you saved the service list before upgrading
diff <(cat /backup/services-running-*.txt | awk '{print $1}' | sort) \
<(systemctl list-units --type=service --state=running | awk '{print $1}' | sort)공통 서비스 점검
# SSH
sudo systemctl status ssh
ssh localhost
# Web server
sudo systemctl status nginx 2>/dev/null || sudo systemctl status apache2 2>/dev/null
curl -I http://localhost
# Database
sudo systemctl status mysql 2>/dev/null || sudo systemctl status postgresql 2>/dev/null
# Docker
sudo systemctl status docker
docker ps
# Check all auto-start services
systemctl list-unit-files --state=enabled --type=service4. 네트워크 확인
기본 네트워크 연결
# Check network interfaces
ip addr
# Check routing table
ip route
# Check DNS resolution
resolvectl status 2>/dev/null || cat /etc/resolv.conf
dig ubuntu.com +short
nslookup ubuntu.com
# Test external connectivity
ping -c 3 8.8.8.8
ping -c 3 ubuntu.com
# Check listening ports
ss -tlnp네트워크 변경 사항 비교
# Check Netplan configuration
cat /etc/netplan/*.yaml
# Confirm network management tool
systemctl status systemd-networkd 2>/dev/null
systemctl status NetworkManager 2>/dev/null방화벽
# Check UFW status
sudo ufw status verbose
# Confirm rules are intact
sudo ufw status numbered5. 스토리지 및 파일 시스템
# Check disk space
df -h
# Check inode usage
df -i
# Check for filesystem errors
sudo dmesg | grep -i "ext4\|xfs\|btrfs" | grep -i error
# Check LVM status (if using LVM)
sudo lvs
sudo vgs
sudo pvs
# Check mount points
mount | column -t
cat /etc/fstab6. 보안검색
SSH 구성
# Confirm SSH configuration was not overwritten
sudo sshd -t
grep -E "^(PermitRootLogin|PasswordAuthentication|Port)" /etc/ssh/sshd_config
grep -rE "^(PermitRootLogin|PasswordAuthentication|Port)" /etc/ssh/sshd_config.d/
# Confirm custom SSH configuration is still in effect
sudo systemctl restart ssh사용자 및 권한
# Check user list
cat /etc/passwd | grep -v nologin | grep -v /bin/false
# Check sudo permissions
sudo cat /etc/sudoers.d/*
# Check SSH authorized keys
cat ~/.ssh/authorized_keys자동 보안 업데이트
# Check auto-update configuration
cat /etc/apt/apt.conf.d/20auto-upgrades
cat /etc/apt/apt.conf.d/50unattended-upgrades
# Ensure unattended-upgrades is running
sudo systemctl status unattended-upgrades7. 지원서 확인
웹 애플리케이션
# Check web server configuration syntax
sudo nginx -t 2>/dev/null
sudo apache2ctl configtest 2>/dev/null
# Check PHP version and modules (if using PHP)
php -v
php -m
# Check SSL certificates
sudo certbot certificates 2>/dev/nullDocker 컨테이너
# Check Docker service
docker info
# Check running containers
docker ps
# Check stopped containers
docker ps -a --filter "status=exited"
# Restart Docker Compose projects
cd /path/to/project && docker compose up -d
docker compose ps데이터베이스
# MySQL/MariaDB
mysql -u root -p -e "SHOW DATABASES;"
mysql -u root -p -e "SELECT VERSION();"
# PostgreSQL
sudo -u postgres psql -c "SELECT version();"
sudo -u postgres psql -l8. 제3자 소스 및 PPA
비활성화된 소스 확인
# Third-party sources disabled during the upgrade
ls /etc/apt/sources.list.d/*.distUpgrade 2>/dev/null
# View currently active sources
apt-cache policy | head -30
grep -r "^Types:" /etc/apt/sources.list.d/*.sources 2>/dev/null
grep -r "^deb " /etc/apt/sources.list.d/*.list 2>/dev/null필요한 타사 소스 복원
# Restore after confirming the source supports 26.04
# For example, restoring the Docker source
# sudo mv /etc/apt/sources.list.d/docker.list.distUpgrade /etc/apt/sources.list.d/docker.list
# Or re-add
# sudo add-apt-repository ppa:example/ppa
# Update sources
sudo apt update9. 예약된 작업
# Check user cron
crontab -l
# Check system cron
cat /etc/crontab
ls /etc/cron.d/
ls /etc/cron.daily/
ls /etc/cron.weekly/
# Check systemd timers
systemctl list-timers --all10. 로그 및 모니터링
업그레이드 로그 확인
# Upgrade log directory
ls -la /var/log/dist-upgrade/
# View main log
cat /var/log/dist-upgrade/main.log | grep -E "(ERROR|WARNING)"
# View APT log
cat /var/log/dist-upgrade/apt.log | tail -50로그 정리
# Clean old logs to free space
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=500M체크리스트 요약
- 26.04 LTS로 확인된 시스템 버전
- 파손되거나 보류된 패키지 없음
- 모든 중요 서비스가 정상적으로 실행 중
- 네트워크 연결이 정상입니다(내부 및 외부).
- 방화벽 규칙은 그대로 유지됩니다.
- 디스크 공간이 충분합니다
- SSH 원격 액세스가 작동합니다.
- 정상적으로 응답하는 웹 애플리케이션
- 데이터베이스 서비스가 정상입니다.
- Docker 컨테이너가 정상적으로 실행 중입니다.
- 예약된 작업이 진행 중입니다.
- 자동 보안 업데이트가 활성화되었습니다
- 필요에 따라 복원된 타사 소스
- 오래된 커널과 불필요한 패키지를 정리했습니다.
- 업그레이드 정책이
lts으로 설정되었습니다.
# Final confirmation
grep Prompt /etc/update-manager/release-upgrades
# Should output: Prompt=lts