목록전체 글 (768)
우노
; 하나의 라인에 주어진 명령어들을 성공, 실패와 관련 없이 전부 실행합니다. ls ; pwd || 첫 번째 명령어가 실패하면 두 번째 명령어를 실행합니다. 첫 번째 명령어가 성공하면 두 번째 명령어는 실행되지 않습니다. echo "first" || echo "second" && 첫 번째 명령어가 성공적으로 실행되면 두 번째 명령어를 실행합니다. 첫 번째 명령어가 실패하면 두 번째 명령어는 실행되지 않습니다. make && make install | 한 명령어의 출력을 다른 명령어의 입력으로 전달할 때 사용합니다. ps -ef | grep python > 명령어의 출력을 파일로 리다이렉션합니다. 파일이 이미 존재하면 덮어씁니다. echo abcde > test.txt >> 명령어의 출력을 파일로 리다이렉..
들어가기 앞서, 컨테이너 생성 시, Dockerfile 하단 지시문(CMD, ENTRYPOINT)을 통해 컨테이너 실행 상태를 유지해주지 않는다면, 컨테이너는 생성된 뒤 실행 상태를 유지하지 않고 종료됩니다. 따라서, 해당 포스팅에선 컨테이너 실행 상태를 유지할 수 있는 간단한 지시문을 다뤄보겠습니다. 지시문 예제 FROM ubuntu CMD ["sh", "-c", "tail -f /dev/null"] tail 로그 파일 또는 텍스트 파일의 내용을 보여주는 명령어입니다. f tail 명령어의 옵션 중 하나로, 파일의 내용을 실시간으로 모니터링하고 파일에 새로운 내용이 추가될 때마다 화면에 표시합니다. /dev/null 표준 출력(standard output)을 버릴 때 사용되는 특별한 파일입니다. 이 파..
들어가기 앞서, Dockerfile 하단 CMD, ENTRYPOINT 지시문 앞에 “sh -c”를 추가하는 경우가 있습니다. 실제로 CMD, ENTRYPOINT 지시문은 “sh -c” 추가 여부에 따라 실행 방식에 차이가 발생하게 됩니다. 해당 포스팅에선, 실행 방식에 따른 차이에 대해서 설명하겠습니다. 지시문 앞에 “sh -c”를 추가하는 경우 FROM ubuntu CMD ["sh", "-c", "mkdir test && tail -f /dev/null"] 원하는 작업은, "mkdir test” 명령어로 test 폴더를 생성하고 "tail -f /dev/null” 명령어로 컨테이너 실행 상태를 유지하는 것입니다. 만약, 지시문 앞에 “sh -c”를 추가한다면 해당 명령어는 원하는 의도대로 실행됩니다. ..
들어가기 앞서, .npmrc 파일은 Node.js 프로젝트에서 npm (Node Package Manager) 구성을 저장하는 설정 파일입니다. 이 파일을 사용하여 프로젝트별로 npm 관련 설정을 구성할 수 있습니다. 해당 포스팅에선 사용자 지정 패키지 스코프와 인증 정보를 설정하는 방법에 대해서 다뤄보겠습니다. .npmrc 사용자 지정 패키지 스코프와 인증 정보 설정 예제 @yourscope:registry=https://registry.npmjs.org/ //registry.npmjs.org/:_authToken=YOUR_AUTH_TOKEN @yourscope:registry=https://registry.npmjs.org/ 사용자 지정 스코프(@yourscope)가 npm 기본 레지스트리에서 호스팅..
들어가기 앞서, 테이블에 새로운 행이 추가될 때 다른 테이블에도 해당 내용을 자동으로 반영하고 싶다면 트리거(Trigger)를 사용해 해결할 수 있습니다. 데이터베이스의 트리거(Trigger)는 특정 이벤트(예: 삽입, 갱신, 삭제 등)가 발생할 때 자동으로 실행되는 데이터베이스 내의 저장 프로시저입니다. 존재하는 트리거 확인 SHOW TRIGGERS; Trigger_name : 트리거의 이름 Event : 트리거가 작동하는 이벤트 유형 (INSERT, UPDATE, DELETE) Table : 트리거가 연결된 테이블의 이름 Statement : 트리거의 실행 내용 (BEGIN과 END 사이의 SQL 문장) Timing : 트리거가 실행되는 시기 (BEFORE 또는 AFTER) Created : 트리거가..
에러 내용 logger=tsdb.mysql t=2023-09-13T04:45:43.605367314Z level=error msg="Query error" error="Error 1267: Illegal mix of collations (utf8mb4_0900_ai_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation '='” 에러 설명 MySQL에서 콜레이션(collation)은 데이터베이스에서 문자열을 저장하고 비교하는 방법을 정의하는 규칙 세트입니다. 즉, 문자열을 어떻게 비교할지, 정렬할지, 대소문자를 어떻게 다룰지와 같은 문자열 처리 규칙을 결정합니다. 간단한 예를 통해 설명해보겠습니다: 문자열 비교 콜레이션은 두 문자열을..
발생 에러 HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods is forbidden: User "system:serviceaccount:composer-1-20-8-airflow-2-4-3-c5d909a1:default" cannot list resource "pods" in API group "" in the namespace "composer-1-20-8-airflow-2-4-3-c5d909a1"","reason":"Forbidden","details":{"kind":"pods"},"code":403} 원인 및 해결 방법 Airflow Pod에서 다른 Pod를 생성하..
들어가기 앞서, 해당 포스팅에선, kubernetes_manifest 자원을 terraform import 하는 명령어에 대해서 다뤄보겠습니다. 예제 코드 kubernetes_manifest 예제 코드 resource "kubernetes_manifest" "example" { manifest = { apiVersion = "apps/v1" kind = "Deployment" metadata = { name = "example-deployment" namespace = "example-namespace" } spec = { replicas = 3 selector = { matchLabels = { app = "example-app" } } template = { metadata = { labels = {..
들어가기 앞서, 해당 포스팅에선 gcloud 명령어를 사용해 Composer의 파이썬 패키지를 업데이트하는 방법에 대해서 다뤄보겠습니다. 예제 코드 # 작업할 GCP 프로젝트 설정 gcloud config configurations activate "설정해놓은 GCP 프로젝트 Config 이름" # Composer 파이썬 패키지 업데이트 gcloud composer environments \ update "" \ --update-pypi-packages-from-file "" \ --location "" update “” Composer의 이름을 지정합니다. --update-pypi-packages-from-file “” 업데이트할 파이썬 패키지 목록이 적힌 소스(ex. requirements.txt) ..
들어가기 앞서, 해당 포스팅에선 gcloud 명령어를 사용해 Composer의 DAG 파일을 업데이트하는 방법에 대해서 다뤄보겠습니다. 예제 코드 # 작업할 GCP 프로젝트 설정 gcloud config configurations activate "설정해놓은 GCP 프로젝트 Config 이름" # Composer DAG 파일 업데이트 gcloud composer environments storage dags import \ --environment "" \ --location "" \ --source "" \ --destination "" --environment "" Composer의 이름을 지정합니다. --location "" Composer 환경이 위치한 지역을 지정합니다. --source "" 업..