Skip to Content
문서운영업그레이드 및 마이그레이션업그레이드 후 체크리스트

업그레이드 후 체크리스트

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 -30

2. 패키지 관리 확인

잠재적인 패키지 문제 수정

# 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-generic

3. 서비스 상태 확인

서비스 실행 상태 보기

# 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=service

4. 네트워크 확인

기본 네트워크 연결

# 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 numbered

5. 스토리지 및 파일 시스템

# 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/fstab

6. 보안검색

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-upgrades

7. 지원서 확인

웹 애플리케이션

# 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/null

Docker 컨테이너

# 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 -l

8. 제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 update

9. 예약된 작업

# 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 --all

10. 로그 및 모니터링

업그레이드 로그 확인

# 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