curl 이란 Client for URLs"의 약자로, URL로부터 데이터를 전송받을 수 있는 리눅스 명령어입니다. curl은 HTTP, HTTPS, FTP 등의 프로토콜을 사용하여 데이터를 가져올 수 있으며, 다양한 옵션을 지원하여 다양한 사용자 요구 사항에 맞게 데이터를 가져올 수 있습니다. 옵션 설명 및 기본 예제 -O (or --remote-name) : 가져온 데이터를 파일로 저장합니다. $ curl -O https://www.example.com/file.txt -L (or --location) : 자동적으로 리다이렉션된 URL을 처리합니다. $ curl -L https://www.example.com/redirected -i (or --include) : HTTP 헤더를 포함한 데이터를 가져..
MySQL 저장소를 추가 후 설치합니다. $ wget http://repo.mysql.com/mysql80-community-release-el7-6.noarch.rpm $ sudo rpm -ivh mysql80-community-release-el7-6.noarch.rpm 최신 버전에 대해서는 아래 링크를 참고하세요 https://dev.mysql.com/downloads/repo/yum/ 저장소 내용을 최신 업데이트합니다. $ sudo yum update mysql 설치를 진행합니다. $ sudo yum install mysql-server MySQL 서버를 구동하고, 부팅시 자동으로 구동되도록 설정합니다 $ sudo systemctl start mysqld $ sudo systemctl enable..
ps 명령어란 현재 실행 중인 프로세스의 상태를 보여주는 명령어 입니다. 옵션 설명 -a: 전체 프로세스 (사용자 프로세스 및 시스템 프로세스)를 표시합니다. -e: 모든 프로세스의 정보를 표시합니다. -f: 프로세스 트리의 형태로 프로세스 정보를 표시합니다. -H: 프로세스 트리를 가시화합니다. -l: 프로세스의 상세한 정보를 표시합니다. -u [username]: 지정한 사용자의 프로세스만 표시합니다. -p [PID]: 지정한 PID의 프로세스만 표시합니다. 자주 사용하는 명령어 예제 정리 - 모든 현재 실행 중인 프로세스의 목록을 표시 $ ps -ef - 특정 사용자의 프로세스만 표시 $ ps -u - 특정 프로세스의 상태만 표시 $ ps -p - 특정 프로세스가 속한 프로세스 그룹의 목록을 표시 ..
CORS란? CORS(Cross-Origin Resource Sharing)은 웹 브라우저에서 다른 도메인의 API를 사용할 때, 보안을 위해 설정된 보안 정책입니다. 예를 들어, 웹 사이트 A가 API 서버 B에서 데이터를 가져오려 할 때, API 서버 B에서 CORS 허용 설정이 되어 있지 않으면 웹 브라우저에서 API 접근이 거부될 수 있습니다. CORS 설정은 API 서버에서 HTTP 응답 헤더에 "Access-Control-Allow-Origin" 항목을 추가하여 허용할 도메인을 지정하는 것으로 가능합니다. 예를 들어, 아래와 같이 설정할 수 있습니다. $ Access-Control-Allow-Origin: https://example.com 이렇게 설정된 API 서버는 example.com 도..
append() 함수란 append() 함수는 파이썬에서 리스트의 끝에 새로운 요소를 추가하는 메소드입니다. 함수 형식 list.append(object) 예제. 새로운 정보를 리스트에 추가 # 리스트 생성 fruits = ['apple', 'banana', 'cherry'] # append() 함수를 사용하여 새로운 요소 추가 fruits.append('orange') # 추가 후 리스트 출력 print(fruits) 결과 ['apple', 'banana', 'cherry', 'orange'] 예제. 리스트 안의 리스트를 추가 >>> list1 = [1, 2, 3] >>> list2 = [4, 5, 6] >>> list1.append(list2) >>> print(list1) [1, 2, 3, [4, ..
journalctl 이란 Linux에서 사용되는 전체 시스템 로깅 서비스인 systemd journal에서 로그를 보는 데 사용되는 도구입니다. Systemd journal은 중앙화된 로깅 시스템을 제공하여 로그를 보기, 분석, 관리하기 쉽게 합니다. 설치 방법 Debian/Ubuntu 리눅스에서는 journalctl이 기본적으로 제공되며, 별도의 설치 없이 바로 사용할 수 있습니다. Fedora/RHEL/CentOS에서는 journalctl을 사용하기 위해서는 Systemd 패키지를 설치해야 합니다 $ yum install systemd 옵션 설명 및 예제 -f : 실시간으로 로그를 출력하며, 로그가 생성되는 것을 모니터링하는 데 유용합니다. $ journalctl -f -u [unit] : 특정 서비..
traceroute 란? 특정 대상으로 패킷이 경유하는 경로를 확인하는 도구로, 이를 통해 네트워크 문제를 진단하고 디버깅 할 수 있습니다. traceroute 설치 방법 ### Centos 설치 $ yum install traceroute ### Ubuntu 설치 $ apt-get install traceroute ### 위치 확인 $ which traceroute /usr/bin/traceroute ### 버전 확인 $ traceroute -V Modern traceroute for Linux, version 2.0.22 Copyright (c) 2008 Dmitry Butskoy, License: GPL v2 or any later 옵션 설명 사용법 : traceroute -[옵션] [목적지] -d..
mod_evasive - 아파치 ddos 보안 모듈로, 서버에 많은 요청을 보내는 트래픽을 차단하는 역할을 한다 설치 방법 Centos # Centos $ yum install epel-release $ yum update mod_evasive Ubuntu $ apt isntall libabache2-mod-evasive 설정 파일 위치 /etc/httpd/conf.d/mod_evasive.conf 설정파일 알아보기 LoadModule evasive20_module modules/mod_evasive20.so # 모듈로드 DOSHashTableSize 3097 # HashTable 크기-사이트 분석을 위한 사이즈할당\ # 접속량이 많은 사이트인 경우 크기를 크게 잡을것 DOSPageCount 2 # 지정..
예제 1. ls : 리스트 출력 - 기본 ls 명령어는 단순 파일 또는 디렉토리의 이름만 확인됨 - 이름으로는 파일인지 디렉토리인지 확인 불가 $ ls test1.err test1.log test1 test2 test3 예제 2. ls -l : 리스트 자세하게 출력 - l 옵션으로 결과를 자세하게 출력 - 파일의 속성, 소유자, 소유그룹, 크기, 생성 날짜와 시간, 파일 또는 디렉토리명 까치 출력됨 d : 디렉토리 d가 없으면 : 파일 l : 링크(바로가기) $ ls -l -rw-r--r-- 1 root root 571142 8월 29 13:57 test1.err -rw-r--r-- 1 root root 951113 8월 29 13:57 test1.log drwxr-xr-x 2 root root 22 1..
TCP Segmentation Offload 란? TCP는 전송시 패킷을 분할(Segmentation)하는데, 이 작업을 CPU가 아닌 NIC가 수행하도록 설정하는 것이 TSO이다. (기본 값은 ON이다.) 하지만 10G NIC 서비스 환경에서 우리는 이와 관련된 많은 장애를 겪었다. TCP 패킷 유실 및 지연 TCP 연결 종료 Load Average의 비정상적인 증가 결론적으로 TSO는 모두의 기대만큼 높은 성능을 내지 못하는 것으로 추정된다. (NIC만 1G로 바꿔도 이런 문제는 발생하지 않았다.) 결론적으로 TSO를 OFF로 설정함으로써 서비스는 정상화되었다. 이에 따른 CPU 사용량은 우려할 수준이 아니며 서비스 규모와 비례하는 정직한 지표를 보여 준다. 출처 : https://ston.readt..
커널 업데이트 $ yum update kernel 설치 확인 $ rpm -qa | grep kernel-3 kernel-3.10.0-693.el7.x86_64 kernel-3.10.0-1160.81.1.el7.x86_64 kernel-3.10.0-957.21.3.el7.x86_64 부팅 가능한 커널 리스트 확인 방금 설치한 커널 버전이 보이지 않네요 $ grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2 CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core) grub2-mkconfig 실행 grub2의 설정 파일은 /boot/grub2/grub..
docker 설치 $ apt install docker-ce 에러 내용 containerd.io 패키지 버전 1.4.1 이상 설치 필요 The following packages have unmet dependencies: docker-ce : Depends: containerd.io (>= 1.4.1) but it is not going to be installed E: Unable to correct problems, you have held broken packages. containerd.io 설치 $ apt install containerd.io 에러 내용 이번엔 libseccomp2 패키지 버전 2.5.0 이상 설치 필요 containerd.io : Depends: libseccomp2 ~ 조치..