목록분류 전체보기 (67)
/var/log/messages
2주 전에, 일반 배열을 선언하는 방법에 대해서 설명했었습니다. 그런데, 이 일을 하다보면 배열의 원소들을 직접 만드는 것이 아닌, 파일에 존재하는 데이터들을 직접 읽은 후, 원소로 취급하는 배열을 선언할 것 입니다. 이때 사용하는 명령어인 readarray와 mapfile을 권장하고자 합니다. readarray와 mapfile의 사용 권장 이유는 다음과 같습니다. 1. 간결성: readarray와 mapfile은 파일의 내용을 배열로 읽는 작업을 단순화합니다. 이를 사용하면 몇 줄의 코드로 파일의 각 줄을 배열의 요소로 쉽게 로드할 수 있습니다. 2. 내장 기능: readarray와 mapfile은 Bash에 내장된 명령어입니다. 따라서 별도의 의존성 없이 사용할 수 있습니다. 3. 유연성: mapfi..
배열을 이용하면 한개의 데이터를 상자안에 저장해서 필요한 것만 찾아볼 수 있는 이점이 있다. 쉘 스크립트에선, 배열을 이용해서 데이터를 한 개의 필드의 데이터를 저장할 수가 있다. 예시로 서버에 등록이 된 계정만 배열에 저장하려고 한다. 저장이 되어야 할 목록은 다음과 같다. 명령어: awk -F: '$3 >= 0 && $3 < 1000 {print $1}' /etc/passwd 그럼, 이 명령어를 그대로 배열에 대입하면 완성이 될 것 같다. 오류가 출력이 되었다. 이유는 awk로 출력이 된 파일을 배열로 저장하려면 readarray 혹은 mapfile을 이용해야 한다. 의미하는 바는, 한번에 여러개의 파일을 저장하길 원한다면 전에 글에서 제공했던 내용대로 하면 안 된다는 것이다. 다음의 명령어를 사용해..
어떤 언어를 하든 간에, 코딩에서 배열은 너무나도 중요한 역할을 한다. 특히 쉘 스크립트에서의 배열은 명령어의 결과들 중 한 라인을 배열에 입력해서 사용자가 원하는 형태로 설정 할 수 있다. 예를 들어 킬로바이트를 메가바이트로 수정한 후 저장, 소수점을 반올림 한 채로 저장 등등 값을 가공한 채로 수정할 수 있다. 물론 그렇게 하기 위해선 awk라는 명령어도 사용해야 하지만, 그건 다음 글에 소개하기로 한다. 오늘은 간단하게 배열을 선언하는 방법에 대해서 소개를 하려고 한다. 1. 순차적 배열 선언 추천 사용 경우: 데이터의 순서가 중요한 경우 연속된 항목 목록이 필요한 경우 파일 이름 목록, 사용자 이름 목록 2. 연관 배열 선언 추천 사용 경우: 키 값을 매칭할 때 설정 값, 사용자 정보 사용자 이름..
perf는 sar -f -P ALL의 %idle 필드보다 더 자세하게 cpu의 사용량을 확인할 수 있습니다. 1. CPU 코어의 중요성: 현대의 대부분의 시스템은 멀티코어 프로세서를 사용합니다. 각 코어는 독립적으로 연산을 수행할 수 있으므로, 소프트웨어는 병렬 처리를 통해 성능 향상을 꾀할 수 있습니다. 하지만, 모든 스레드나 프로세스가 고르게 코어를 사용하지 않는 경우 성능 저하의 원인이 될 수 있습니다. 2. perf와 CPU 코어: 코어별 분석 perf를 사용하면 각 CPU 코어에서 어떤 이벤트가 발생하는지 모니터링할 수 있습니다. 예를 들면, 특정 코어에서의 CPU 캐시 미스, 분기 예측 실패 등의 이벤트를 측정할 수 있습니다. 스레드/프로세스 추적 perf로 특정 프로세스나 스레드가 어느 코어..
메모리 사용량을 볼 때는 크게 free, sar를 이용한다. 그런데, 이게 자세하게는 확인하지 못한다. 무슨 뜻인지는 이 글을 읽어보자. 어느 날 무의식적으로 들었던 생각이 있었다. 라우터에서 show running-config를 입력하면 그 라우터의 메모리에 있는 모든 것들을 볼 수 있는데, 그럼 리눅스에서는 어떻게 해야 볼 수 있을까? 이에 대한 답은 생각보다 간단했다. 그러나, 생각보다 만족스럽지 않았다. 자세하지 않았던 이유였다. 그러나 pmap [pid] 을 알아봤는데 생각보다 너무 자세했다. pmap을 이용하면 프로세스가 메모리 자원을 얼마나, 어떻게 사용했는지를 그 어떤 명령어보다 자세하게 알 수 있다. 이 명령어는 메모리의 어떤 주소에 있었는지 까지도 출력을 하기 때문에 매우 많은 내용들이..
현재 방화벽 상태는 다음과 같다. firewall-cmd --get-active-zones를 입력해보자 docker를 사용하지도 않는데, docker zone이 설정 되어있고 interfaces 또한 docker로 잡혀 있다. yast로 docker zone에서 public zone으로 수정해보자 한다. 프롬프트에서 yast를 입력 후, Security and Users로 이동 후, Firewall로 이동해야 한다. Tab 키와 방향키를 이용해서, 사진과 동일하게 맞춘 후, alt+m을 입력해보자. alt+m을 입력하니, 사라진 것을 볼 수 있다. 이제 가장 대중적인, public zone으로 이동해보자, 이동하면 다음과 같은 화면일 것이다. 서비스 별로 방화벽을 등록 할 수 있고, Ports 별로 등록..
최근에 SCE라는 자격증을 취득을 했다. 필자가 잘했다기 보다는, 시험 문제가 거의 동일하게 나왔다. 이 자격증의 출제 범위는 다음과 같았다. 1. 고급 시스템 관리 2. 암호화 3. 쉘 스크립트 4. 하드웨어 5. 고급 네트워킹 6. 저장소 관리 7. 중앙 집중식 인증 8. 패키지 및 업데이트 9. Salt를 사용한 구성 관리 개인적인 소견을 말해보자면, RHEL이 이런 기능을 가지고 있는 지는 모르겠지만, Salt라는 시스템은 신기 했던 시스템이었다. 마스터 노드 미니언 노드들에게 동시에 명령을 내려서 미니언들이 그 명령을 수행하는 것이 신기했다. 교재의 페이지는 710쪽이어서 내용이 많았다. 그렇다 보니 하나하나 알고 싶어하는 욕심이 생길 수도 있다. 개인적인 견해를 말해보자면 책의 내용을 본인이 ..
마스터에서 미니언한테 패키지를 배포 sysstat를 배포 하고자 한다. 증명하기 위해, 이 패키지가 미니언에서 없는 것을 확인한다. salt ‘’ pkg.install sysstat를 입력해서 해당 호스트에 sysstat를 설치한다. procmail이 설치 되는 이유는 이 패키지의 요구사항이기 때문이다. https://opensuse.pkgs.org/15.4/opensuse-oss-x86_64/sysstat-12.0.2-3.33.1.x86_64.rpm.html 이제 미니언에서 확인이 가능하다. 마스터에서 미니언한테 서비스를 배포 1. 마스터가 서비스 패키지를 저장할 곳을 지정한다. /etc/salt/master에서 경로를 지정할 수 있다. 주석 문을 복사해서 새로 만들어준 것이다. 2. /srv/salt..