패키지·시스템 정보 (dnf·rpm)
3. 코드 예제
예제 1: 시스템 식별 — 01_system_info.sh 발췌
uname -r
uname -m
hostname
cat /etc/os-release | head -n 2
nproc5.14.0-427.13.1.el9_4.x86_64
x86_64
app-prod-01
NAME="Red Hat Enterprise Linux"
VERSION="9.4 (Plow)"
8리눅스 서버 출력입니다. el9_4 가 RHEL 9.4 커널이라는 표시이고 nproc 8 이 load average 의 기준선입니다.
예제 2: date — 01_system_info.sh 발췌
date +%F
date +%Y%m%d_%H%M%S
date -d '-7 day' +%F
date +%s
TZ=UTC date +%T2026-09-10
20260910_171431
2026-09-03
1789028071
08:14:31로컬 17:14 가 UTC 08:14 로 9시간 차이입니다. 로그 시각과 DB 시각이 9시간 어긋나면 이 시간대 문제입니다.
예제 3: 환경 변수 상속 — 01_system_info.sh 발췌
MYVAR=hello; bash -c 'echo "자식1: ${MYVAR:-없음}"'
export MYVAR; bash -c 'echo "자식2: ${MYVAR:-없음}"'
type cd
type -p bash자식1: 없음
자식2: hello
cd is a shell builtin
/usr/bin/bashexport 전에는 자식이 못 보고 후에는 봅니다. java 를 띄우는 스크립트에서 JAVA_OPTS 를 export 하지 않아도 되는 이유는 같은 셸 안에서 명령 인자로 넘기기 때문입니다.
예제 4: 패키지 조회 — 01_system_info.sh 명령 목록
rpm -qa | grep -i openjdk
rpm -qf /usr/bin/java
dnf provides */ss
dnf history | head -n 5java-21-openjdk-headless-21.0.4.0.7-1.el9.x86_64
java-21-openjdk-21.0.4.0.7-1.el9.x86_64
java-21-openjdk-21.0.4.0.7-1.el9.x86_64
iproute-6.2.0-5.el9.x86_64 : Advanced IP routing and network device configuration tools
ID | Command line | Date and time | Action(s) | Altered
12 | install java-21-openjdk | 2026-09-01 10:20 | Install | 3dnf provides 가 ss 명령이 iproute 패키지에 있다고 알려 줍니다. dnf history undo 12 로 그 설치를 되돌릴 수 있습니다.