전체 글 1155

명령어 경로 찾기

일반적으로 패키지를 설치하면, 설치한 프로그램을 실행할 수 있는 명령어를 제공한다. 당연하지만 하나의 명령어는 하나의 실행파일을 가리키고 있다. 따라서 패키지 하나의 여러 버전을 설치해서 사용할 때, 명령어가 바라보고 있지 않은 다른 버전을 실행하기 위해서는 실행파일을 직접 지정해서 명령을 실행해야 한다. 명령어의 위치를 찾는 명령어는 다음과 같다. 1. which 실행파일의 위치를 찾는 명령어 which alias가 있으면 alias를 먼저 보여준다. 명령어로 실행하는 것과 실행 파일을 지정하는 것은 동일한 결과를 보여준다. 2. whereis 바이너리, 소스, 매뉴얼 페이지 파일 같은 특정한 파일의 위치를 찾는 명령어 whereis # -b : 바이너리 파일만 검색 # -m : 매뉴얼 파일만 검색 #..

Linux 2021.06.22

Python 첨부 파일 메일 전송

2021.06.20 - Python 텍스트 메일 전송 지난 글에 이어 이 글에서는 첨부파일을 포함한 메일을 전송할 수 있는 코드를 다룬다. 마찬가지로 코드 전체를 복사해서 사용한다면, MAIN 아래의 email_sender부터 attachment_filepath까지의 값을 잘 넣어주면 된다. 전체 코드 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders import os import time class MailSender: def __init__(self, email_..

Python 2021.06.21

Python 텍스트 메일 전송

Python은 기본 내장 모듈인 smtplib을 사용해 비교적 간단하게 이메일을 전송할 수 있다. SMTP(Simple Mail Transfer Protocol)는 메일을 보낼 때 사용하는 프로토콜이다. 참고사항 이 글의 코드는 수신자 한 명에게 제목과 내용으로 구성된 메일을 보내도록 작성되었다. 이 글의 코드는 인터넷에 돌아다니는 코드를 클래스로 래핑(?)한 것이다. 동작 프로세스 : 메일 전송에 필요한 값 초기화 -> 객체 생성 -> 메일 작성 -> 메일 전송 따라서 코드를 그대로 사용할 생각이면 main 아래의 email_sender부터 body까지의 값을 적은 뒤 실행시키면 된다. 메일 전송에 사용할 메일 서버의 주소와 포트는 미리 알아두어야 한다. 전체 코드 import smtplib from ..

Python 2021.06.20

python-gitlab 사용방법

python-gitlab이란? GitLab API에 대한 접근을 제공하는 Python 패키지 GitLab API를 이용하는 대부분의 작업을 Python 프로그램에서 사용할 수 있다. 터미널에서 GitLab API를 사용할 수 있도록 gitlab 명령어를 제공하기도 한다. 지원하는 클래스와 함수는 공식 문서에서 살펴볼 수 있다. 공식 문서 : https://python-gitlab.readthedocs.io/en/stable/# Welcome to python-gitlab’s documentation! — python-gitlab 2.8.0 documentation © Copyright 2013-2018, Gauvain Pocentek, Mika Mäenpää Revision dc535565. python..

Python 2021.06.19

[Docker] 기본 개념

도커; Docker 컨테이너 기반의 오픈소스 가상화 플랫폼 다양한 프로그램과 실행환경을 컨테이너로 추상화하여 동일한 인터페이스를 제공한다. 프로그램 배포 및 관리를 단순화할 수 있다. 컨테이너; Container 격리된 공간에서 프로세스가 동작하는 기술 추가적인 OS를 설치하는 가상화의 성능을 개선하기 위해 등장한 프로세스 격리(리눅스) 컨테이너 이용 컨테이너를 이용하면 가벼운 가상 머신을 사용하는 것과 비슷하다고 느낄 수 있다. 이미지; Image 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것 상태 값은 가지고 있지 않으며 변하지 않는다(immutable). 컨테이너는 이미지를 실행한 상태라고 할 수 있다. 이미지는 도커 허브와 같은 도커 이미지 레지스트리 저장소에 저장하여 관리한다. 레..

Docker 2021.06.18

docker tag - 이미지 이름/태그 변경

Docker Hub 도커 공식 이미지 레지스트리 https://hub.docker.com/ Dockerfile 또는 docker commit 명령으로 만들어진 이미지는 도커 허브에 업로드할 수 있다. GitHub와 비슷하게 생각할 수 있는데, 만든 이미지를 도커 허브로 푸시하기 위해서는 이름과 같은 레포지터리가 있어야 한다. 그런데 이미지 이름에 오타를 냈다. 그러면 이미지를 새로 빌드하거나 다시 저장해야 할까? 아니다. 다행히 이미지 이름을 수정할 수 있는 명령어가 있기 때문이다. Ubuntu 공식 이미지 최신 버전에 개인적으로 사용하는 설정을 추가한 이미지를 생성했다. 근데 실수로 이미지 이름을 우분투가 아니라 부분투라고 만들어버렸다. 아래 명령으로 이미지 이름을 고쳐보도록 한다. docker tag..

Docker 2021.06.17

일반 사용자에 docker 실행 권한 부여

docker 실행에는 root 권한이 필요하다. 보통 일반 사용자가 root 권한이 필요한 명령어를 실행할 수 있도록 하려면 sudo 권한을 부여하는데, 여러 사용자에게 서버 관리 권한을 부여하는 건 위험하기 때문에 권장하지 않는다. 다행히 docker는 사용자가 docker 그룹 멤버인 경우, root 권한 없이도 docker 실행 권한을 가질 수 있다. usermod 명령을 이용하거나 그룹의 멤버 정보를 수정하여 일반 사용자가 docker를 실행할 수 있도록 해본다. 방법 usermod; user modification 사용자 정보 수정 명령어 usermod -aG docker # -a : --append; 사용자를 서브 그룹에 추가한다. -G 옵션과 함께 사용한다. # -G : --groups; 사..

Docker 2021.06.16

No space left on device - inode 100% 사용 시

inode 파일 시스템에서 사용하는 자료구조로, 정규 파일 디렉터리 등 파일 시스템에 관련된 정보를 가진다. 각 파일은 하나의 아이노드를 가지며, 소유자 그룹, 권한, 파일 형태, 아이노드 숫자(inode number) 등 파일에 관한 정보를 가진다. 아이노드에 할당된 공간은 파일 시스템 전체 공간의 1% 정도이다. 아이노드에 할당된 공간이 한정되어 있기 때문에 파일 시스템이 저장할 수 있는 파일의 최대 개수도 한정되어 있다. 아이노드 사용량은 아래 명령어로 확인할 수 있다. df -i 보다시피 각 파일 시스템은 아주 많은 아이노드를, 즉 아주 많은 파일을 가질 수 있다. 하지만 로그 파일 등을 주기적으로 삭제하기 않고 계속 누적시키고 있거나 하는 등의 이유로 아이노드 사용량이 100%가 되는 경우가 있..

Linux 2021.06.15

NAS 마운트

NAS; Network Attached Storage 네트워크 연결형 저장소 컴퓨터에 직접 연결하지 않고, 네트워크를 통해 데이터를 주고 받는 저장장치 mount 저장 장치 에 접근할 수 있는 경로를 디렉터리 구조에 편입시키는 작업 원격 저장소인 NAS를 서버에서 디렉터리처럼 사용하기 위해서는 mount 작업이 필요하다. 그 방법에 대해 정리해둔다. 방법 1. 현재 디스크 정보 확인 df -h NAS는 Filesystem 값이 : 형식으로 표시된다. 2. 연결할 서버의 공유 디렉터리 확인 showmount -e # -e : 원격지의 공유된 디렉터리 목록을 보여준다. 각 디렉터리 앞에 :를 추가하면 mount 설정에 사용하는 NAS 주소가 된다. 즉, NAS는 df 명령으로 확인할 수 있는 Filesyst..

Linux 2021.06.14

Chrome 제로데이 취약점 CVE-2021-30551

제로데이 공격; Zero-Day Attack 소프트웨어의 취약점을 공격하는 기술적 위협 해당 취약점에 대한 패치가 나오지 않은 시점에서 이루어지는 공격 CVE; Common Vulnerabilities and Exposures 공개적으로 알려진 소프트웨어의 보안 취약점을 가리키는 고유 표기 CVE-2021-30551은 2021년 6월 10일에 갓 공개된 따끈따끈한(……) 취약점이다. 실제로 공격에 이용되는 취약점이니 반드시 크롬 브라우저를 업데이트하도록 한다. 취약점 관련 정보 CVE Code : CVE-2021-30551 내용 : 구글의 오픈소스 C++ WebAssembly이자 JavaScript 엔진인 V8에 존재하는 유형 혼동 취약점이라는 정보 외 공개된 정보가 없다. 영향받는 버전 : 91.0.4..

기타 2021.06.13