분류 전체보기 1188

[Python] cron schedule로 datetime 구하기

croniter _ _ ___ _ __ ___ _ __ (_) |_ ___ _ __ / __| '__/ _ \| '_ \| | __/ _ \ '__| | (__| | | (_) | | | | | || __/ | \___|_| \___/|_| |_|_|\__\___|_| base 시각으로부터 cron 스케줄에 일치하는 datetime을 구할 수 있는 라이브러리이다. 간단히 사용 방법을 정리해 본다. 설치 및 import Python 기본 라이브러리가 아니기 때문에 별도로 설치가 필요하다. pip install croniter croniter 패키지로부터 필요한 모듈을 import 하여 사용한다. from croniter import croniter 기본 사용법 기본적으로 crontier 라이브러리는 생성자..

Python 2023.02.13

[Python] 명령행 인자 전달 - 2

argparse 사용자 친화적인 명령줄 인터페이스 작성을 도와주는 모듈이다. 프로그램이 어떤 매개변수를 요구하는지 정의하고 sys.argv부터 인자값을 분석한다. 또한 help와 usage 메시지를 자동으로 생성한다. argparse는 기본적으로 다음과 같은 방식으로 사용한다. argparse 모듈 import ArgumentParser 인스턴스 생성 add_argument 함수로 인수 추가 parser 실행하여 분석 인자값 사용 이 글에서는 2023.02.11 - [Python] 명령행 인자 전달 - 1에 이어 argparse 모듈을 이용해 명령행 인자 전달하는 방법을 마저 정리한다. 모듈 import 아래와 같이 모듈을 import 하여 사용한다. import argparse ArgumentParse..

Python 2023.02.12

[Python] 명령행 인자 전달 - 1

개요 Python 코드는 아래와 같은 python 명령어로 직접 실행시킬 수 있다. python 이 때 명령어 실행 시 인자값을 전달하여 Python 코드 내에서 사용할 수 있다. 이 글에서는 명령행 인자값을 전달하여 사용하는 방법을 간단히 정리한다. sys.argv python 명령어 뒤로 전달한 문자열은 공백을 기준으로 sys.argv 리스트의 원소로 저장된다. 실제로 그런지 sys.argv를 그대로 출력하는 코드를 실행해본다. ## argv_test.py import sys print(sys.argv) python 명령어 뒤로 전달된 문자열이 나열된 것을 알 수 있다. 이 때 실행할 python 파일 이름도 sys.argv에 저장된 것을 확인할 수 있다. 따라서 명령행 인자에 접근하거나 사용할 때는..

Python 2023.02.11

[Python] __init__.py

__init__.py Python에서 하나의 Python 파일(*. py)을 모듈(Module)이라고 한다. 그리고 모듈의 집합을 패키지(Package)라고 한다. __init__.py 파일은 디렉터리가 파이썬 패키지의 일부임을 알려주는 역할을 하는데, 여러 Python 모듈을 import 하는 메커니즘을 제공한다. Python 3.3 이후부터는 필수적인 파일이 아니게 되었으나 하위 버전 간의 호환성과 패키지의 명확성을 위해 생성하는 것을 권장한다. 이 글에서는 __init__.py 작성 방법을 정리해둔다. (Python 3.3 미만에서는 정상적으로 동작하지 않을 수 있다.) 예제 예시로 사용할 Package의 구조와 내용은 아래와 같다. ./shape/area.py PI = 3.14 # 원의 면적 de..

Python 2023.02.10

[MySQL] 데이터형 변환 (CAST/CONVERT)

개요 MySQL은 비교나 검색을 수행할 때 데이터 타입이 다른 경우 내부적으로 같은 타입으로 변환하여 처리한다. 또 사용자가 명시적으로 데이터 타입을 변환할 수 있도록 연산자와 함수를 제공하고 있다. CAST 인수로 전달받은 값을 지정한 데이터 타입으로 변환한다. 변환할 타입은 AS 절로 명시하며, 사용할 수 있는 타입은 BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, JSON (MySQL 5.7.8 이상), NCHAR, SIGNED [INTEGER], UNSIGNED [INTEGER]이다. CAST(expr AS type) 예시 ) SELECT 4 / 2, 4 / '2', 4 / CAST('2' AS UNSIGNED); # 실행 결과 | 4 / 2 | 4 / '2' | ..

Database 2023.02.09

[Python] 시스템 명령어 실행

subprocess 새로운 프로세스를 생성하고, 프로세스의 입출력 및 에러 결과에 대한 반환값을 얻을 수 있도록 하는 모듈이다. 파이썬 코드를 통해 다른 프로세스를 실행하고, 그 과정에서 발생하는 데이터의 입출력을 제어할 수 있다. os.system, os.spawn* 모듈을 대체한다. 이 글에서는 subprocess 모듈의 사용방법을 간단히 정리한다. 참고로 Linux 환경에서 실행할 것이다. run 매개변수로 전달받은 명령어를 실행하는 가장 일반적인 함수이다. 명령이 완료되면 CompletedProcess 인스턴스를 반환한다. subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, sh..

Python 2023.02.08

[k8s] 사용자 전체 권한 확인 - 2

개요 2023.01.28 - [k8s] 현재 사용자 전체 권한 확인 - 1에서 쿠버네티스 사용자의 권한 목록을 확인했었다. 이 글에서는 kuectl 플러그인 중 하나인 access-matrix를 이용해 사용자의 권한 목록을 확인해 본다. access-matrix 리소스에 대한 액세스 매트릭스를 보여주는 kubectl 플러그인이다. kubectl auth can-i --list와 유사하게 현재 사용자의 리소스에 대한 액세스 권한을 나열하되, 사람이 읽기 편한 표 형식으로 출력해 준다. 쿠버네티스 클러스터 관리자가 아닌 일반 사용자가 수행할 수 있는 작업을 확인할 때 유용하게 사용할 수 있다. 설치 Krew 또는 소스로 설치할 수 있다. Krew kubectl krew install access-matrix..

Kubernetes 2023.02.07

[k8s] kubectl 플러그인 neat - manifest 정리

neat 쿠버네티스 클러스터에 존재하는 리소스의 정보를 yaml 형식으로 출력하면 다음과 같은 정보가 함께 출력된다. 생성 타임스탬프 또는 내부 ID와 같은 메타데이터 누락된 속성의 기본값 Admission Controller에 의해 추가된 System attribute (예: service account token) 상태 정보 neat 플러그인은 get -o yaml 명령어 결과에서 불필요한 정보를 정리하여 가독성 있는 yaml 출력을 만들어준다. 이 글에서는 설치 및 사용 방법에 대해 정리한다. 설치 krew를 통해 설치한다. kubectl krew install neat 사용법 - 표준/파일 입출력 기본적으로 파이프를 이용해 get 명령의 결과를 neat로 전달하거나 -f 옵션을 이용할 수 있다. ..

Kubernetes 2023.02.06

[k8s] kubectl 플러그인 - kubectx / kubens

kubectx / kubens 멀티 클러스터 / 다중 네임스페이스 간의 쉬운 전환을 도와주는 kubectl 플러그인/도구이다. v0.9.0부터는 Go로 작성되었다. 두 개 도구 모두 https://github.com/ahmetb/kubectx에서 지원하고 있다. kubectx : kubectl에서 context 전환을 빠르게 할 수 있게 해주는 플러그인 kubens : 쿠버네티스 네임스페이스 간 전환을 쉽게 할 수 있게 해주는 플러그인 이 글에서는 설치 방법과 사용 방법을 간단히 정리해둔다. + 2023.02.04 - [k8s] kubectl 플러그인 - kube-ps1와 함께 사용하기 좋아 보인다. 설치 Ubuntu 기준으로 krew를 통한 설치, 수동 설치 방법 두 가지를 고려할 수 있다. Krew를..

Kubernetes 2023.02.05

[k8s] kubectl 플러그인 - kube-ps1

kube_ps1 kubectl에 구성된 현재 쿠버네티스 context와 namespace를 Bash/Zsh 프롬프트($PS1)에 표시한다. kubectl 플러그인 관리자인 krew에는 등록되지 않은 플러그인이다. Git 주소 : https://github.com/jonmosco/kube-ps1 설치 Bash 기준으로는 아래와 같이 설치한다. 1. Git 저장소 Clone git clone https://github.com/jonmosco/kube-ps1.git 2. .bashrc에 설정 추가 및 적용 vi ~/.bashrc # 아래 내용 추가 source /path/to/kube-ps1.sh PS1='[\u@\h \W $(kube_ps1)]\$ ' 3. .bashrc 적용 source ~/.bashrc ..

Kubernetes 2023.02.04