728x90
반응형

MkDocs 설치 방법 

  • MkDocs를 활용해 Markdown(.md) 형식으로 작성된 가이드 문서를 효율적으로 관리 하는 방법에 대해 알아본다.

python 가상환경 생성 

  • MkDocs 는 python 을 통개 개발된 문서 관리 유틸이다. 
  • python  에서 제공 하는 가상환경(venv)을 만들어서MkDocs 를 설치 한다. 
#mkdocs 가상환경 생성 
python3 -m venv venv_mkdocs

#가상환경 활성화 
source venv_mkdocs/bin/activate
[guide_doc@my-rocky9.4:/home/guide_doc]$ python3 -m venv venv_mkdocs  
[guide_doc@my-rocky9.4:/home/guide_doc]$ ll
합계 0
drwxr-xr-x. 5 guide_doc guide_doc 74  1월 13 14:39 venv_mkdocs
[guide_doc@my-rocky9.4:/home/guide_doc]$ source venv_mkdocs/bin/activate 
(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ 

MkDocs 설치 

  • pip 를 이용한 mkdocs 를 설치 한다. 
  • 설치후 mkdocs --version 를 이요해 버전을 확인 합니다. 
  • 삭제는 pip uninstall mkdocs 명령을 통해 삭제 할수 있습니다. 
pip3 install mkdocs
pip install --upgrade pip

# mkdocs 버전확인
mkdocs --version
mkdocs, version 1.6.1 from /home/guide_doc/venv_mkdocs/lib/python3.8/site-packages/mkdocs (Python 3.8)

 

MkDocs 프로젝트 생성 

  • mkdocs new 명령을 통해 문서를 관리할 프로젝트를 생성한다. 
mkdocs new md_guide

 

(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ mkdocs new md_guide
INFO    -  Creating project directory: md_guide
INFO    -  Writing config file: md_guide/mkdocs.yml
INFO    -  Writing initial docs: md_guide/docs/index.md
(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ ll
합계 0
drwxr-xr-x. 3 guide_doc guide_doc 36  1월 13 14:51 md_guide
drwxr-xr-x. 5 guide_doc guide_doc 74  1월 13 14:39 venv_mkdocs
(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ tree -a md_guide/
md_guide/
├── docs
│   └── index.md
└── mkdocs.yml

 

 

MkDocs 서버 실행 

  • mkdocs serve 명령을 실행하면 브라우저에서 실시간으로 작성된 문서를 확인 할수 있다. 
  • 기본 수행시 로컬에서만 접속이 가능 하다. 
    • http://127.0.0.1:8000
## 로컬에서만 접속 가능 
mkdocs serve 

##외부 접속을 허용하려면 -a 0.0.0.0:8000 옵션을 사용 한다.
mkdocs serve -a 0.0.0.0:8000

#백그라운드 실행
nohup mkdocs serve -a 0.0.0.0:8000 > mkdocs.log 2>&1 &
  • 브라우저에 접속을 하면 아래 URL 을 통해 문서를 확인할수 있다. 

 

 

MkDocs  테마 적용 

pip install mkdocs-dracula-theme
  • vi mkdocs.yml 
site_name: My Docs
theme:
      name: dracula
theme:
    name: dracula

 

pip install mkdocs-material

MkDocs  플러그인 설치 

mkdocs-awesome-pages-plugin

  • 사이드바와 네비게이션을 자동 정렬 하는 플러그인
pip install mkdocs-awesome-pages-plugin
  • vi mkdocs.yml 
plugins:
    - search
    - awesome-pages

 

markdown_extensions

  • markdown 기능을 확장해서 사용 할수 있는 기능 
pip install markdown_extensions
pip install pymdown-extensions

 

  • vi mkdocs.yml
markdown_extensions:

  # Python Markdown
  - abbr
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - toc:
      permalink: true

  # Python Markdown Extensions
  - pymdownx.arithmatex:
      generic: true
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.details
  - pymdownx.highlight
  - pymdownx.inlinehilite
  - pymdownx.keys
  - pymdownx.mark
  - pymdownx.smartsymbols
  - pymdownx.superfences
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde

확장 이름기능 설명설치 필요 여부

toc 문서 내 목차 생성 기본 제공
admonition 강조 블록 (노트, 경고, 팁 등) 생성 기본 제공
tables Markdown 표 지원 기본 제공
pymdownx.superfences 코드 블록 기능 확장 설치 필요
pymdownx.highlight 코드 강조 기능 향상 설치 필요
pymdownx.tabbed 탭으로 콘텐츠 구분 설치 필요
pymdownx.tasklist 체크박스 스타일 지원 설치 필요
pymdownx.details 접을 수 있는 세부정보 블록 생성 설치 필요
pymdownx.progressbar 진행 바 생성 설치 필요
abbr 약어 지원 기본 제공
meta 문서의 메타데이터를 추가 기본 제공

mkdocs-mermaid2-plugin

  • Mermaid 를 이용한 다이어그램을 표시해주는 기능 
pip install mkdocs-mermaid2-plugin
  • vi mkdocs.yml
markdown_extensions:
  - pymdownx.superfences:
        # make exceptions to highlighting of code:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:mermaid2.fence_mermaid_custom  
plugins:
  - mermaid2:
      version: 10.0.2
      theme: "dark"       # Mermaid 다이어그램 테마 (default, dark 등)
      # securityLevel: "loose" # 보안 수준 (loose로 설정하면 외부 자원 로드 가능)

MkDocs PDF

  • pdf 파일을  브라우져에서 출력해주는 기능입니다. 
pip install mkdocs-pdf
  • vi mkdocs.yml
# mkdocs.yml
markdown_extensions:
  - attr_list
plugins:
  - mkdocs-pdf
  • 사용법
![Alt text](<path to pdf>){ type=application/pdf style="min-height:25vh;width:100%" }

MkDocs navigator 설정 

  • material 테마 기준으로 nav 항목에서 좌측 side bar 와 top bar 매뉴 설정이 가능 하다.
  • vi mkdocs.yml
nav:
  - Home: index.md
  - About: about.md
  - Guides:
      - Getting Started: guides/getting-started.md
      - Advanced Topics: guides/advanced.md
 
  •  index.md
# Welcome to MkDocs

For full documentation visit [mkdocs.org](https://www.mkdocs.org).

## Commands

* `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
* `mkdocs build` - Build the documentation site.
* `mkdocs -h` - Print help message and exit.

## Project layout

    mkdocs.yml    # The configuration file.
    docs/
        index.md  # The documentation homepage.
        ...       # Other markdown pages, images and other files.​
 

 

  • mkdocs 디렉토리 구조
$ tree -L 4
.
├── docs
│   ├── about.md
│   ├── doctech
│   │   ├── README.md
│   │   └── guides
│   │       ├── advanced.md
│   │       └── getting-started.md
│   └── index.md
├── mkdocs.yml
└── overrides

 

 

728x90
반응형

'IT지식' 카테고리의 다른 글

쉘스크립트  (0) 2024.11.08
[IT지식] REST FUL 이란?  (0) 2022.06.04
[IT 지식]스케일 아웃 vs 스케일 업  (0) 2022.04.18
728x90
반응형

Gitlab 프로젝트 VS Code 연결 

  • Gitlab 과  VS Code를 연동   하는 방법에 대해 설명 한다. 

GitLens, Git History  설치

  • VS code 실행 후 마켓 플레이스 에서GitLens, Git History  를 설치한다. 

 

VSCode Git Clone 방법 

  • F1 버튼을 눌러 git clone 선택합니다.
  • Git url 주소를 입력한다. 
    • VS Code 레파지토리 URL 정보 입력 <- gitlab http url 입력 

  • 복제할 로컬 디렉토리를 선택합니다. 
  • 없을경우 신규 생성 합니다. 
  • 작업영역을 추가하면 해당 폴더에 Gitlab 리소스가 로컬 Repository 에 다운로드 됩니다. 

 

VSCode 파일 변경 사항 커밋 

  • 테스트를 위해 test.md 파일을 생성 합니다. 
  • 파일에 간단한 내용을 작성합니다. 

 

  • Source Control  항목에 들어가서 변경 사항에 대한 커밋 메시지를 작성한후 커밋 버튼을 클릭합니다. 

 

  • 이후 변경 내용 동기화 버튼을 클릭 합니다. 
  • 동기화 하지 않으면 Git 서버에 변경내용이 저장 되지 않습니다. 

  • 정상 업로드가 되면 Gitlab 에 추가된 test.md 파일이 업로드 된것을 확인 할수 있습니다. 

 

VS Code MarkDown 확장 패키지 설치 

  • Gitlab 에서 Mark down 문법으로 작성된 문서를 수정하고 또 편하게 보기 위해서는 몇가지 확장 패키를 설치 하면 유용합니다. 
    • Diagram and chart  를 보기위해 아래 패키지를 설치 합니다. 
    • Markdown Preview Mermaid Support

 

  • 확장자를 추가하면 Gitlab 에서 지원하는 다양한 플로우 차트와 다이그램을 VS Code 에서 작성 하고 미리보기 를 통해 확인해볼수 있다. 

 

 

728x90
반응형
728x90
반응형

"postmaster.pid" 잠금 파일이 이미 있음 에러 

  • 원인
    • postmaster.pid 파일은 PostgreSQL 서버가 실행 중일 때 생성되며, 서버가 종료되면 자동으로 삭제 되지만 
    • PostgreSQL  가 비정상 종료 할경우에  파일이 남아있어 에러가 발생 할수 있다. 
  • 조치방법 1
    • postmaster.pid 파일 삭제 
    • PostgreSQL 서비스 재시작 
cd /var/lib/pgsql/<version>/data
ls postmaster.pid
rm postmaster.pid
systemctl start postgresql

 

  • 조치방법 2
    • 권한 확인 및 소유자 변경
    • 이후에도 정상 기동이 되지 않으면 OS reboot 이후  PostgreSQL 서비스 재시작 
ls -ld /var/lib/pgsql/<version>/data
chown -R postgres:postgres /var/lib/pgsql/<version>/data

#os reboot
shutdown -r now 
systemctl start postgresql

 

728x90
반응형
728x90
반응형

Remote SSH 원 격 접속 (비번 입력 없이)  방법

  • VSCode 에서 Remote 접속 시에 비밀 번호 없이 입력 없이 접속 하는 방법에 대해 설명합니다. 
  • 아래처럼 Remote 서버 접속시 매번 비밀번호를 입력하게 된다. 
  • 이런 불편한점을 없애고 ssh 인증키를 발급받아 접속하고자하는 Remote 원격 서버에 키를 등록한후 
  • 매번 비밀 번호를 입력한후 접속 하는 수고를 덜수 있다. 

윈도우 ssh-key 발급 

  • Windows PowerShell 을 실행 시킨후 ssh key 를 발급 받습니다. 

 

#ssh 인증키 발급
ssh-keygen -t rsa -b 4096

#인증키 확인 
Get-Content .\.ssh\id_rsa.pub

 

 

authorized_keys  파일 생성(Remote 서버) 

.ssh 디렉토리 이동후 authorized_keys  파일 생성후 윈도우 에서 발급 받은 key 값을 복사 한다. 

[rocky@my-rocky9 .ssh]$ ll
합계 12
-rw-r--r--. 1 rocky rocky  578 11월 18 15:40 authorized_keys
-rw-------. 1 rocky rocky 3381 11월 18 15:39 id_rsa
-rw-r--r--. 1 rocky rocky  743 11월 18 15:39 id_rsa.pub

 

VSCode ssh Config 파일 수정

  • vscode ssh 접속 설정 파일에  발급받은 키값을 추가 한다. (IdentityFile D:\200.MyConfig\VSCode\.ssh\id_rsa )
Host rocky-192.168.116.xxx
    HostName 192.168.116.xxx
    User rocky
    Port 22
    IdentityFile D:\200.MyConfig\VSCode\.ssh\id_rsa

 

추가후 재섭속시 비밀번호 없이 Remote SSH 접속시 비밀번호 업이 접속 할수 있다. 

 

 

728x90
반응형
728x90
반응형

SVN 설치 

dnf instatall subversion
svn  --version

 

SVN 기본 명령어 

  • 리소드 체크 아웃 
svn checkout https://example.com/svn/my_project/trunk
  • 리소스 업데이트 (체크아웃 받은 리소스에 대해 변경된 사항을 로컬로 업데이트 합니다.) 
svn update
  • 파일 상태 확인 
    • M: 수정 파일
    • A: 추가 파일
    • D: 삭제 파일
    • ?: 버전 관리되지 않은 파일
svn status
  • 파일 정보 저장 및 변경 
#파일 추가 
svn add new_file.txt 

#파일 저장 
svn commit -m "추가한 내용 기록"

#파일 삭제 
svn delete old_file.txt

#파일 내용 비교 
svn diff current_file.txt

#파일 변경 내용 확인
svn log current_file.txt

SVN 트러블 슈팅 

svn: warning: cannot set LC_CTYPE locale 에러 

  • 해당 에러는 SVN 클라이언트가 로케일 설정이 맞지 않을때 발생하는 에러 입니다. 
  • 위 현상을 해결 하기 위해서는 아래 단계로 현재 로케일 설정을 확인하고 환경에 맞는 로케일 로 설정을 맞춰 줍니다. 
  •  
$ svn checkout svn://1~~~
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is UTF-8
svn: warning: please check that your locale name is correct

 

728x90
반응형

'04.DevTools' 카테고리의 다른 글

[IntelliJ] Intellij Gitlab 연동  (0) 2024.08.16
[Nexus]Centos7 nexus 설치 및 이클립스 연동  (0) 2022.04.21
728x90
반응형
  • 리눅스환경 에서 날짜를 변경하는 방법에 대해 설명 합니다. 
  • Rocky Linux 환경에서는 Centos 에서 지원하는 rdate 를 더이상 지원하지 않는다 
  • Rokcy Lunux 에서 시간을 변경하는 방법으로 timedatectl  명령을 사용하여 시간을 변경할수 있다 
  • timedatectl 명령을 통해 현재 서버의 날짜와 시간을 변경하는 방법에 대해 알아보겠습니다. 

timedatectl  설명

  • 현재시간을 확인하고 임으로 날짜 및 변경하는 방법은 아래 작성한 내용과 같다. 
  • 단  임으로 시간 병경후 NTP  동기화 설정시 바로 현재 시간으로 동기화 되지 않는 이유는 
  • NTP 가 시간이 일정 간격으로 서서히 조정되도록 설계 되어 있어 바로 현재 시간이 적용 되지 않는다고 한다. 
  • 바로 현재 시간으로 동기화를 하기 위해서는 chrony 나 ntpd(Rocky Linux 에서는 지원하지 않음) 를 이용해서 현재 시간으로 업데이트 할수 있다 . 

timedatectl  기능 

#현재 시간 확인 하기
timedatectl


#시간대 설정방법 (ex: 서울):
timedatectl set-timezone Asia/Seoul


#직접 날짜와 시간 설정  하기
#timedatectl set-time 'YYYY-MM-DD HH:MM:SS'
timedatectl set-time '2024-11-10 15:30:00'

#NTP(Network Time Protocol) 동기화 활성화
timedatectl set-ntp true
#timedatectl set-ntp false

 

chrony 사용법 

  • 설치 및 서비스 시작 방법
#설치
dnf install chrony

#서비스 시작
systemctl enable --now chronyd

#서버시간 즉시 시간 동기화 
chronyc -a makestep

 

 

시간 변경 방법

  • ntp 동기화 설정이 되어있다면 임으로 시간 변경을 할수 없다 .
    • Failed to set time: Automatic time synchronization is enabled 발생
  • timedatectl set-ntp false 를 통해  ntp 동기화 설정을 꺼두고 시간 변경이 완료 된후 현재 시간으로 
  • 시간으로 동기화 하고 싶다면 timedatectl set-ntp true 이후 chronyc 서비스를 활성화 시키면 된다. 
[root@rocky9.4:/root]$ date
Tue Nov 12 13:43:48 KST 2024
[root@rocky9.4:/root]$ timedatectl set-time '2023-11-10 15:30:00'
Failed to set time: Automatic time synchronization is enabled
[root@rocky9.4:/root]$  timedatectl set-ntp false
[root@rocky9.4:/root]$ timedatectl set-time '2023-11-10 15:30:00'
[root@rocky9.4:/root]$ date
Fri Nov 10 15:30:01 KST 2023
[root@rocky9.4:/root]$ timedatectl set-ntp true
[root@rocky9.4:/root]$ date
Fri Nov 10 15:30:06 KST 2023
[root@rocky9.4:/root]$ chronyc -a makestep
200 OK
[root@rocky9.4:/root]$ date
Fri Nov 10 15:30:10 KST 2023
[root@rocky9.4:/root]$ systemctl enable --now chronyd
[root@rocky9.4:/root]$ date
Tue Nov 12 13:44:20 KST 2024
[root@rocky9.4:/root]$ 

 

 

 

728x90
반응형
728x90
반응형

Rocky  리눅스 호스트 네임 변경 방법 

현재 Hostname 정보를 확인 합니다.

hostnamectl

 

[root@localhost.localdomain:/root]$ hostnamectl
   Static hostname: (unset)                           
Transient hostname: localhost
         Icon name: computer-desktop
           Chassis: desktop 🖥️
        Machine ID: 3e35814fabc440c3b52a0d066c4cb597
           Boot ID: 3cbdfef1a6dc4dbfb22d2356fd23fce8
  Operating System: Rocky Linux 9.4 (Blue Onyx)       
       CPE OS Name: cpe:/o:rocky:rocky:9::baseos
            Kernel: Linux 5.14.0-427.13.1.el9_4.x86_64
      Architecture: x86-64
   Hardware Vendor: Gigabyte Technology Co., Ltd.
    Hardware Model: B360M-D3H
  Firmware Version: F11
[root@localhost.localdomain:/root]$ 

 

변경할 Hostname 을 설정 합니다. 

 

# hostname [변경할 hostname]
hostname rocky9

 

Hostname 영구적으로 변경 

# hostnamectl set-hostname [new-hostname]
hostnamectl set-hostname rocky9.4

 

/etc/hostname 변경 

[root@rocky9.4:/root]$ vi /etc/hostname
rocky9.4

 

Rocky  리눅스 방화벽 해제 

#방화벽 중지 
systemctl stop firewalld.service 

#방화벽 영구 비활성화
systemctl disable firewalld.service 

#방화벽 상태 확인 
status firewalld

#방화벽 활성화
#systemctl start firewalld.service

 

[root@rocky9.4:/root]$ systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:firewalld(1)

Nov 05 09:33:36 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 05 09:33:36 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 06 19:27:56 rocky9.4 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Nov 06 19:27:56 rocky9.4 systemd[1]: firewalld.service: Deactivated successfully.
Nov 06 19:27:56 rocky9.4 systemd[1]: Stopped firewalld - dynamic firewall daemon.

 

SSH Root 로그인하는 접속허용방법

  • Rocky 리눅스에서는 ssh 접속시  기본적으로 ROOT 접속을 허용 하지 않는다.
  • root 로 ssh 접속하기 위해서는 아래의 수정 사항이 필요하다.
  • /etc/ssh/sshd_config 파일을 수정 하여 PermitRootLogin yes 를 추가한다. 
  • 이후 ssh 를 재시작 한다. 
#vi /etc/ssh/sshd_config
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes

#ssh 데몬 재시작
systemctl restart sshd

 

728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[Linux]Rocky 9.4 시간 변경  (0) 2024.11.13
[Rocky]Linux FileSystem Mount 정보 확인하기  (0) 2024.11.09
[문자열 검색] 문자열 찾기 방법  (0) 2024.11.08
[Linux]Curl 사용 방법  (1) 2024.09.26
[Rocky] Rocky Linux 웹 콘솔  (0) 2024.06.07
728x90
반응형
  • 리눅스에 추가된 디스크가  Mount 되었는지 확인하는 방법에 대해 설명 합니다. 
  • mount -l 명령을 통해 확인을 해볼수 있지만 확인하는게 불편하고 가독성도 떨어집니다. 
  • findmnt 는 mount 명령보다 사용자가 보기쉽게 마운트된 디스크 정보를 가독성 있게 출력 해줍니다. 

findmnt 사용 방법 

  • findmnt 명령은  mount, /etc/fstab, /proc/mounts  정보를 트리 형태로 한번에 제공하는 명령입니다. 
  • 아랯 추가된 디스크 정보에 대해 현재 Mount 된 디스크 정보를 확인하는 방법에 대해 설명 합니다. 
fdisk -l
lsblk
mount -l 
df -Th

 

 

기본 사용법

#마운트된 모든 파일 시스템이 트리 구조로 표시 함.
findmnt

 

특정 파일 시스템 조회

findmnt -t ext2,xfs

마운트된 디렉토리 디스크 정보 조회

findmnt /home
findmnt /data

디스크 마운트 정보 확인 

findmnt /dev/nvme0n1 

findmnt /dev/sdc1

출력 헤더 지정 

findmnt -o TARGET,SOURCE,FSTYPE

 

추가 ) 마운트 안된 디스크 마운트 하기 

#디스크 포멧
mkfs.ext2 /dev/sda    
mkfs.ext2 /dev/sdb    

#마운트할 디렉토리 생성 
mkdir /ssd
mkdir /hdd

#mount 
mount -t ext2 /dev/sda /ssd
mount -t ext2 /dev/sdb /hdd

#/etc/fstab 적용 (디스크 마운트 영구 적용) 
/dev/sda              /ssd                  ext2    defaults        0 0
/dev/sdb              /hdd                  ext2    defaults        0 0

 

추가 증설한 Disk 에대해 파티셔닝 하는 방법은 아래 글을 확인 하세요 

https://growupcoding.tistory.com/84

 

[Linux] 하드 디스크 추가(mount) 하기

리눅스 하드 디스크 추가 방법 리눅스에 새로운 하드디스크 추가시 마운트 하는 방법에 대해 알아 보겠습니다. umount umount /dev/sda1 하드디스크 마운트 정보 확인 (fdisk -l ) [root@centos7:/root]$ fdisk -l D

growupcoding.tistory.com

 

728x90
반응형
728x90
반응형
  • 문자열을 찾는 방법에 대해 작성 합니다. 

Grep 을 사용한 문자열 찾기 

  • 아래 테스트 로그를 이용해 문자열을 찾는 방법을 알아본다 .
  • test.log 파일 내용
--- 0 Error in 17 cases - ._130_line_3729_case
--- 0 Warning in 18 cases - ._143_line_7455_case
--- 0 Error in 19 cases - ._147_line_7455_case
--- 0 fails in 17 cases - ._130_line_3729_case
--- 0 Warning in 18 cases - ._143_line_7455_case
--- 0 Info in 19 cases - ._147_line_7455_case
--- 0 Info in 19 cases - ._148_line_7455_case
--- 0 Info in 19 cases - ._149_line_7459_case
--- 0 Info in 19 cases - ._150_line_7459_case
--- 0 Info in 19 cases - ._151_line_7459_case
--- 0 Info in 19 cases - ._152_line_7459_case

 

대소문자 구분없이 문자열 라인 찾기

# test.log 파일 에서 Error 또는 Warning 문자를 포함한 라인을 출력 하는 예제이다.
grep -in -E "Error|Warning" test.log

 

 위 예제에서 사용한 옵션은 아래와 같다. 

  • -i: 대소문자 구분 없이 검색
  • -n: 라인 번호 출력
  • -E: 확장된 정규 표현식 사용 
  • "Error|Warning": Error 또는 Warning 을 의미하는 정규 표현식 (둘 중 하나가 포함된 라인을 찾음)
  • test.log: 검색할 파일명

찾은 문자열을 분리해서 특정 숫만 출력 하기 

  • 정규식 과 sed 사용 
grep -o 'line_[0-9]\+_case' test.log | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g'
$ grep -o 'line_[0-9]\+_case' test.log | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g'
3729
7455
7455
3729
7455
7455
7455
7459
7459
7459
7459

 

찾은 문자열을 중복 제거하고 정렬 하기 

  • 정규식 과 sed 사용 + sort (정렬) + uniq(중복 제거) 
grep -o 'line_[0-9]\+_case'  test.log  | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g' | sort -n | uniq
$ grep -o 'line_[0-9]\+_case'  test.log  | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g' | sort -n | uniq
3729
7455
7459

 

 

 

728x90
반응형
728x90
반응형

커널파라미터 변경 함수 

test.sh 
cat() {
  declare -A PROC=(
    ["/proc/sys/kernel/shmmax"]=42949675
    ["/proc/sys/kernel/shmmni"]=4096
    ["/proc/sys/kernel/shmall"]=2097152
    ["/proc/sys/fs/file-max"]=6815744
  )
  [[ ${PROC[$1]} == "" ]] && /usr/bin/cat $* || echo ${PROC[$1]}
}
free() { echo "Swap: 2048 0 2048"; }
free
cat /proc/sys/kernel/shmmax

 

Linux grep 사용법

  • 특정 문자열일 찾아서 중복 제거 하는 명령 
grep "찾는 문자열" log_file.log | sort | uniq

 

  • cut 명령을 사용해 중복 문자열 제거 하는 방법 
    • grep "첫번째 문자열 기준으로 로그의 패턴 문자를 1차 선별 한다. " log_file.log: ERROR_INVALID_PROTOCOL(-12030)를 포함한 줄을 로그 파일에서 검색합니다.
    • cut -d ' ' -f  5-14 : 공백(' ')을 구분자로 하여 다섯 번째 필드부터 끝까지의 메시지를 추출합니다. 즉, 오류 코드 및 그 이후 메시지 5-14 문자열 부분 만 추출합니다.
    • sort: 추출한 결과를 정렬 하고 
    • uniq: 중복된 항목을 제거 한다. 
 grep "찾는 문자열을 포함 하는 패턴" sys.log | cut -d ' ' -f 5-14 |sort | uniq

 

 

IPC(Inter-Process Communication) 자원 삭제(ipcrm)

  • 현재 사용자가 생성한 메시지 큐, 세마포어, 공유 메모리 자원을 모두 해제하여 시스템 리소스를 정리하는 스크립트이다 .
#MSGID, SEMID, SHMID  조회 하여 삭제 
MSGID=ipcs -q | grep $USER | cut -d " " -f 2
SEMID=ipcs -s | grep $USER | cut -d " " -f 2
SHMID=ipcs -m | grep $USER | cut -d " " -f 2

#메시지 큐(Message Queue)  삭제 
for msgq in $MSGID
do
        ipcrm -q $msgq
done

#세마포어(Semaphore) 자원 정리 
for sem in $SEMID
do
        ipcrm -s $sem
done

#공유 메모리(Shared Memory) 자원해제 
for shm in $SHMID
do
        ipcrm -m $shm
done

 

728x90
반응형

'IT지식' 카테고리의 다른 글

[Mkdocs] Mkdocs 설치 및 사용 방법  (0) 2025.01.14
[IT지식] REST FUL 이란?  (0) 2022.06.04
[IT 지식]스케일 아웃 vs 스케일 업  (0) 2022.04.18

+ Recent posts