| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 |
- VERR_NEM_VM_CREATE_FAILED
- IT
- os-release
- 디스크
- gid
- 프로세스
- 가상머신
- 모니터링
- LoadAverage
- 파이프
- 필드추출
- 생성
- 로그
- 네트워크
- Linux
- CDPATH
- 포트
- 스트림에디터
- 파일
- SSH
- command
- 리눅스
- xargs
- |
- 조회
- 명령어
- E_FAIL
- 텍스트
- VirtualBox
- IOAPIC
- Today
- Total
목록전체 글 (52)
고양이 집사의 IT 노트
서버에 접속하면 가장 먼저 확인하는 것 중 하나가 이 서버의 IP 주소와 네트워크 상태입니다. 예전에는 ifconfig를 많이 썼지만, RHEL 7부터는 ifconfig가 들어 있는 net-tools 패키지가 최소 설치에 포함되지 않고 ip 명령어(iproute 패키지)가 그 자리를 대신합니다. 이번 글의 예시는 db01 서버(RHEL 9 계열, iproute 6.2)에서 실행했고, 단계마다 실행한 계정을 함께 적었습니다.ip addr (IP 주소 확인)ip 뒤에 어떤 대상(object)을 다룰지 쓰고, 그 뒤에 동작을 씁니다. IP 주소는 address 대상이고, man 페이지에 나와 있듯 address는 addr이나 a로 줄여 쓸 수 있습니다.# 사용법ip [옵션] 대상 [동작]# (oracle) e..
top 글과 iostat, vmstat 글에서 CPU와 메모리 상태를 자세히 보는 방법을 다뤘습니다. 그런데 서버에 접속하자마자 "메모리가 부족한가?", "서버가 바쁜가?"를 빠르게 확인하고 싶을 때가 있습니다. 이때 쓰는 명령어가 메모리를 보는 free와 서버 부하를 보는 uptime입니다. 이번 글의 예시는 CPU 2개, 메모리 8GB인 db01 서버에서 oracle 계정으로 실행했습니다.free (메모리 확인)free는 물리 메모리와 스왑 메모리의 전체 용량과 사용량, 커널이 버퍼와 캐시로 쓰는 양을 보여주는 명령어입니다. 기본 단위가 KiB라서 보통 -m이나 -h 옵션을 함께 씁니다.# 사용법free [옵션]# MiB 단위로 메모리 확인free -m# 결과 예시 total..
grep 글에서 로그 파일의 필요한 줄만 골라내는 방법을 다뤘는데, 골라낸 줄에서도 날짜만, 계정 이름만 같은 일부분만 필요한 경우가 많습니다. 각 줄에서 원하는 부분만 잘라서 출력하는 명령어가 cut입니다. cut (필드 잘라내기) cut은 한 줄을 구분자로 나눈 칸(필드) 단위로 잘라냅니다. -d로 구분자를 정하고 -f로 가져올 칸 번호를 정하며, 칸 번호는 1부터 시작합니다. 아래는 쉼표로 구분된 emp.csv 파일에서 실행한 결과입니다. # 사용법cut 옵션 [파일명]# 예시 파일 emp.csv 의 내용 (cat 글 참고)cat emp.csv# 결과 예시name,dept,citykim,dba,seoullee,infra,busanpark,dba,daegu# -d, : 쉼표로 구분, -f1 : 첫 번..
ls -l로 파일 목록을 보면 크기와 권한, 수정 시각 정도만 나옵니다. 그런데 서버 작업에서는 이 파일이 언제 마지막으로 바뀌었는지, 권한이 정확히 몇 번인지, 같은 파일을 가리키는 링크가 몇 개인지처럼 더 자세한 정보가 필요할 때가 있습니다. 파일과 파일시스템의 상태를 자세히 보여주는 명령어가 stat입니다. stat (파일 상세 정보 확인) stat은 status의 약자로, 파일 하나하나의 크기, 권한, 소유자, inode 번호, 시각 정보를 한 번에 보여줍니다. 파일 이름을 인자로 주면 됩니다. # 사용법stat [옵션] 파일명# 파일 만들기 (touch 글 참고)echo hello > a.txt# 상세 정보 확인stat a.txt# 결과 예시 (inode 번호와 시각은 예시 값) File: a..
lsof 글에서 프로세스가 열고 있는 파일을 확인하는 방법을 다뤘는데, 프로세스 하나가 동시에 열 수 있는 파일 수에는 한도가 있습니다. 이 한도를 넘으면 Too many open files 오류가 발생합니다. 이런 자원 한도를 확인하고 바꾸는 명령어가 ulimit입니다. 이번 글에서는 soft와 hard의 차이부터 실행 중인 DB 프로세스의 한도를 확인하는 방법까지 정리해보겠습니다.ulimit (자원 한도 확인)ulimit은 쉘과 그 쉘에서 실행하는 프로세스에 적용되는 자원 한도를 보여주고 변경하는 bash 내장 명령어입니다. 아래부터는 db01 서버에 oracle 계정으로 접속해서 실행한 예시입니다.# 사용법ulimit [옵션] [값]# 현재 한도 전체 확인ulimit -a# 결과 예시 (일부, 값은..
sort, uniq 글과 xargs 글에서 파이프로 명령어를 이어 붙이는 방법을 다뤘습니다. 그런데 파이프로 넘기면 결과가 다음 명령어로만 흘러가서, 중간 결과를 파일로 남기고 싶을 때 곤란합니다. 화면에 출력하면서 동시에 파일로도 저장할 때 쓰는 명령어가 tee입니다. 이번 글에서는 기본 사용법부터 스크립트 로그를 남길 때 자주 실수하는 부분까지 정리해보겠습니다.tee (화면과 파일에 동시에 저장)tee는 표준 입력으로 들어온 내용을 파일에 복사하면서 표준 출력으로도 그대로 내보내는 명령어입니다. 아래부터는 db01 서버에 oracle 계정으로 접속해서 실행한 예시입니다.# 사용법tee [옵션] [파일...]# 화면에 출력하면서 out.txt 에도 저장echo "hello" | tee out.txt# ..
find 글에서 파일을 찾는 방법을 다뤘는데, 찾은 결과로 다시 다른 명령어를 실행해야 할 때가 있습니다. 이때 앞 명령의 결과를 뒤 명령어의 인자로 넘겨주는 명령어가 xargs입니다. 이번 글에서는 기본 동작부터, 파일이 너무 많아서 rm이 안 될 때나 공백이 들어간 파일 이름을 다룰 때처럼 실무에서 xargs가 꼭 필요한 상황까지 정리해보겠습니다.xargs (입력을 명령어의 인자로 변환)파이프(|)로 연결하면 앞 명령의 출력이 뒤 명령의 표준 입력으로 전달됩니다. 그런데 rm이나 cp처럼 대상 파일을 인자로 받는 명령어는 표준 입력으로 들어온 내용을 읽지 않습니다. xargs는 표준 입력으로 들어온 내용을 읽어서 뒤 명령어의 인자로 바꿔 실행해줍니다. 아래부터는 db01 서버에 oracle 계정으로 ..
curl 글에서 서비스를 올린 뒤 실제 응답까지 확인하는 방법을 다뤘는데, 막상 재기동해 보면 "포트가 이미 사용 중"이라며 서비스가 뜨지 않는 경우가 있습니다. 이때 그 포트를 누가 잡고 있는지 찾아주는 명령어가 lsof입니다. lsof는 포트뿐 아니라 파일과 디렉토리를 어떤 프로세스가 열고 있는지도 보여주기 때문에, 장애 대응에서 쓰임새가 많습니다. 이번 글에서는 실무에서 자주 쓰는 사용법 위주로 정리해보겠습니다. lsof란 lsof는 list open files의 약자로, 현재 열려 있는 파일 목록을 보여주는 명령어입니다. 리눅스는 일반 파일뿐 아니라 디렉토리, 네트워크 소켓까지 모두 파일로 다루기 때문에, lsof 하나로 "이 파일이나 포트를 어떤 프로세스가 쓰고 있는지"를 확인할 수 있습니다. ..