여기서는 멈추세요
- netplan, UFW, AppArmor, APT 결과에 내부 주소·저장소·보안 정책 등 외부 공유 금지 정보가 포함되면 원문 전달을 멈춥니다.
- 조회 중 변경 명령을 제안받더라도 콘솔 복구 경로와 승인된 작업 계획이 없다면 이 가이드 범위에서 실행하지 않습니다.
UBUNTU READ-ONLY CHEATSHEET
SAFE OPERATING BOUNDARY
이 항목은 Ubuntu 상태를 읽기만 하므로 롤백 작업이 없습니다. netplan apply, ufw enable/disable, apt upgrade 같은 변경 명령은 별도 승인 절차와 전용 가이드에서 수행하세요.
BEFORE YOU START
CHECK THE BRANCH
/etc/os-release의 ID가 ubuntu가 아니면 Netplan, UFW, AppArmor와 APT를 기본 구성으로 가정하지 말고 Linux 공통 가이드를 먼저 사용합니다.
Ubuntu Desktop이나 일부 서버는 systemd-networkd 대신 NetworkManager를 사용합니다. netplan get의 renderer와 networkctl·nmcli 결과를 구분합니다.
UFW inactive만으로 방화벽이 없다고 결론 내리지 않습니다. nftables 규칙, 클라우드 보안 그룹, 네트워크 방화벽과 로드밸런서 정책을 함께 확인합니다.
업그레이드 후보나 kept back 표시는 단계적 업데이트일 수 있습니다. 이 가이드에서는 설치하지 않고 apt policy와 운영 변경 계획으로 분리합니다.
FOLLOW THE FLOW
Ubuntu 릴리스 정보와 Kernel, 패키지 아키텍처, 가상화 유형을 확인합니다.
lsb_release -a 2>/dev/null || cat /etc/os-releaseuname -rdpkg --print-architecturesystemd-detect-virthostnamectlUbuntu 릴리스와 Kernel 수명주기는 별도로 관리됩니다. 이미지·클라우드·하드웨어 enablement Kernel 여부도 운영 기준과 대조합니다.
버전 확인 후 해당 릴리스의 지원 정책과 표준 이미지 정보를 확인합니다.
패키지를 설치하거나 갱신하지 않고 미구성·보류·업그레이드 후보와 자동 업데이트 서비스만 조회합니다.
sudo dpkg --auditapt-mark showholdapt list --upgradable 2>/dev/nullsystemctl status unattended-upgrades.service --no-pager -lapt-cache policydpkg --audit가 비어 있으면 미구성 패키지가 없다는 뜻입니다. 업그레이드 후보는 즉시 적용하라는 의미가 아닙니다.
이상이 있으면 APT·DPKG 복구 가이드에서 잠금과 시뮬레이션 결과를 먼저 확인합니다.
Ubuntu의 선언된 네트워크 구성과 현재 적용된 주소·경로·DNS 상태를 나란히 확인합니다.
sudo netplan get비밀번호나 사설 주소가 포함될 수 있으므로 공유 전에 검토하세요.ip -br addressip routeresolvectl statusnetworkctl list --no-pagerNetplan YAML은 의도한 설정이고 ip·resolvectl 출력은 현재 상태입니다. renderer가 NetworkManager라면 nmcli 정보도 별도로 확인합니다.
선언값과 현재값이 다르면 즉시 apply하지 말고 콘솔 복구 경로와 변경 이력을 확보합니다.
호스트 보안과 시간 동기화, 실패한 systemd unit을 조회합니다.
sudo ufw status verbosesudo aa-statustimedatectl statussystemctl --failed --no-pagersudo ss -lntupUFW, AppArmor, NTP와 unit 상태는 각각 별도 계층입니다. 한 항목이 정상이어도 외부 접근이나 애플리케이션 정상 동작을 보장하지 않습니다.
DENIED, NTP 미동기화, failed unit이 있으면 해당 전용 가이드로 이동합니다.
Ubuntu 전용 운영 항목과 공통 서버 사양을 한 묶음으로 출력합니다.
#!/usr/bin/env sh
printf '%s
' '=== Ubuntu 기본 정보 ==='
lsb_release -a 2>/dev/null || cat /etc/os-release
printf 'Hostname: '; hostname -f 2>/dev/null || hostname
printf 'Kernel: '; uname -r
printf 'Architecture: '; dpkg --print-architecture 2>/dev/null || uname -m
printf 'Virtualization: '; systemd-detect-virt 2>/dev/null || printf '확인 불가
'
printf '%s
' '=== 자원 ==='
lscpu 2>/dev/null | grep -E '^(Architecture|CPU(s)|Core(s) per socket|Socket(s)|Model name):'
free -h
lsblk -e7 -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
df -hT
printf '%s
' '=== 네트워크 / DNS ==='
ip -br address
ip route
resolvectl status 2>/dev/null || cat /etc/resolv.conf
ss -lntup
printf '%s
' '=== Ubuntu 운영 상태 ==='
systemctl --failed --no-pager
sudo ufw status verbose 2>/dev/null || true
sudo aa-status 2>/dev/null || true
timedatectl status
printf '%s
' '=== 패키지 상태 ==='
sudo dpkg --audit
apt-mark showhold
printf '서버 용도/환경/주요 SW/보안 SW/HA: [담당자가 직접 입력]
'조회용 sudo가 포함됩니다. 출력 공유 전 내부 IP, 호스트명, 포트와 서비스 정보를 마스킹하세요.빈 출력이나 command not found는 해당 기능이 없거나 권한이 부족하다는 뜻일 수 있습니다. 자동 수집이 실패한 항목은 추측하지 않습니다.
서버 용도·환경·주요 SW·보안 SW·HA 정보는 운영 담당자가 직접 보완합니다.
PRIMARY REFERENCES
배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.