전체 글 191

rtsp feed 에서 이미지 저장하기

stack overflow 링크 : stackoverflow.com/questions/56439798/how-to-check-if-rtsp-url-is-up-down-using-python-script ffmpeg를 이용하여 rtsp feed의 이미지를 저장할 수 있습니다. /usr/bin/ffmpeg -y -frames 1 snapshot.png -rtsp_transport tcp -i rtsp://test_url_here 또한 Gstreamer를 이용해서 여러 장의 이미지를 저장할 수도 있습니다. stack overflow 링크 : stackoverflow.com/questions/59025321/capture-jpeg-images-from-rtsp-gstreamer gst-launch-1.0 -v ..

Video Processing 2021.01.04

Tx2 에서 안쓰는 CPU코어 사용하기 (JTOP, nvpmodel 사용)

출처 : forums.developer.nvidia.com/t/cannot-enable-denver-cores-for-tx2-jetpack-4-4-dp/124708/38 Tx2를 사용하다 보면 jtop을 사용할 수 있는데, jtop이란, pc 의 상태를 확인하게 해 주는 것이고, 이 command로 설치가 가능합니다. $ sudo -H pip install -U jetson-stats 6개의 cpu중에 2개를 사용하지 않는 것을 확인할 수 있습니다. Jetson에서는 CPU의 전력제한을 풀어주는 모드가 있는데, 이를 조절하는 옵션을 nvpmodel 이라 하고, 다음과 같은 커맨드로 바꿀 수 있습니다. $ sudo nvpmodel -m 0 # 0번 모드로 설정 $ sudo nvpmodel -q –verbo..

GRPC (1) - grpc란 무엇일까요?

출처 : grpc.io/docs/what-is-grpc/introduction/ (영어, 어려움) 출처 : blog.naver.com/n_cloudplatform/221751268831 (한국어, grpc가 나오게 된 과정) 1. HTTP/2 GRPC란 google 에서 만든 google remote procedure call의 준말입니다. 회사에서 사용하기로 해서 공부를 해 보기로 했습니다. GRPC가 나오기 전에, Server - Client model, Socket, RPC, REST 등 여러 프로토콜이 있었는데, 이 모든 프로토콜의 문제는 HTTP/1.1 을 사용한다는 점이었습니다. http/1.1 과 http/2.0의 차이는 상당히 큰데, 그림으로 보시는 것 과 같이 http/2 는 비동기 통신..

Network/protocols 2020.12.29

SFTP 사용법과 사용하는 이유

보통 linux 서버에 접속할 때 ssh를 사용합니다. 파일을 전송할 때는 scp를 사용합니다만, ssh를 외우고 있는 사람도 scp 커맨드를 다 외우고 있지는 않은 경우가 많습니다. 특히 scp는 연결되어 있는 상태에서 하다 보니깐 모든 커맨드를 외워서 해야하기 때문에 바로바로 debugging을 하기가 힘든 경우가 많아서 여러 커맨드를 할 때 불편합니다. 그럴 때 SFTP를 사용하면 편합니다. 윈도우라면 PUTTY 를 사용하는 것도 좋은 방법일 수 있을 것입니다. www.digitalocean.com/community/tutorials/how-to-use-sftp-to-securely-transfer-files-with-a-remote-server (영어. 자세함) hongci.tistory.com/..

Linux/Ubuntu 2020.12.18

컨테이너 업데이트와 Docker Compose

출처 : subicura.com/2017/01/19/docker-guide-for-beginners-2.html Container Update 지금까지 도커를 왜 사용하는지, 도커가 왜 좋은지, 그리고 도커의 사용방법에 대해서 알아보았습니다. 하지만 도커가 이미지에서 컨테이너를 만드는 방법이라면, 이미지에서 컨테이너를 만들때마다 Fresh한 컨테이너가 계속 생성될 텐데, 그 데이터는 어떡하나요? 이를 방지하기 위해 쌓아놨던 데이터는 AWS S3같은 스토리지에 저장하거나, 아님 호스트의 데이터 볼륨을 이용하여 저장하여야 합니다. 이를 위해 run 명령어에 -v 를 추가해서, 추가해줍니다. # before docker run -d -p 3306:3306 \ -e MYSQL_ALLOW_EMPTY_PASSWOR..

Cloud/Docker 2020.12.10

linux log 생성하기

m.blog.naver.com/ice0423/221932781410 리눅스에서 로그는 정말 중요한 도구입니다. 리눅스 자체에서 echo를 사용하여 출력을 할 수도 있고, python 파일을 실행할 때 print를 하는것도 파일에 저장할 수 있다면 그걸 나중에 볼 수 있기 때문에, 훨씬 좋다고 봅니다. 로그를 저장하는 방법은 간단합니다. > 한개는 파일 생성, (덮어쓰기) >> 두개는 파일 에 붙여쓰기 입니다. $ python3 file.py > file.log # file.log 있을 경우 지우고 새로 생성 $ python3 file.py >> file.log # file.log 있을 경우 그 이후 붙여씀 joonyon.tistory.com/98 쉽게 설명한 nohup 과 &(백그라운드) 명령어 사용법 ..

Linux/Ubuntu 2020.12.08

도커(docker) 기본 commands

출처 : subicura.com/2017/01/19/docker-guide-for-beginners-2.html 컨테이너 목록 확인하기 (ps) docker ps [-a] ps는 실행 중인 컨테이너 목록, -a 옵션은 실행 중이지 않은 컨테이너 목록도 보여줍니다. 컨테이너 중지하기 (stop) $ docker stop [OPTIONS] CONTAINER [CONTAINER...] option은 별거 없고 container id를 여러 개를 띄어쓰기를 이용해서 입력하면 됩니다. $ docker ps # get container ID $ docker stop ${TENSORFLOW_CONTAINER_ID} $ docker ps -a $ show all container 도커 id 는 64자리인데, 앞에 4자..

Cloud/Docker 2020.12.07

도커(docker) version, run으로 여러가지 컨테이너 실행하기

출처: subicura.com/2017/01/19/docker-guide-for-beginners-2.html docker version 버전을 확인합니다 (client와 Server 정보가 출력됩니다) 도커는 Client와 Server역할을 동시에 수행할 수 있습니다. 도커 커맨드를 입력하면 도커 클라이언트가 도커 서버로 명령을 전송하고 결과를 받아 터미널에 출력합니다. docker run 컨테이너를 실행합니다. 이미지가 저장되어 있는지 확인하고 이미지가 없다면 다운로드 (pull)한 후 컨테이너를 생성하고 시작합니다. docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] 자주 사용하는 옵션들입니다. 옵션설명 -d detached mode 흔히 말하..

Cloud/Docker 2020.12.07

도커(docker) 설치하고 실행하기

subicura.com/2017/01/19/docker-guide-for-beginners-2.html 리눅스에 도커 설치하기 curl -fsSL https://get.docker.com/ | sudo sh 도커는 기본적으로 리눅스 컨테이너이기 때문에 이렇게 설치하는게 제일 쉽다. sudo 없이 사용하기 docker 는 기본적으로 root 권한이 필요하기 때문에, root가 아닌 사용자가 sudo 없이 사용하려면 해당 사용자를 docker그룹에 추가합니다. 만약 없다면 docker group을 만들어주고, $sudo groupadd docker groups 치면 어떤 group 이 있는지 알 수 있다. $sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기 $sudo..

Cloud/Docker 2020.12.04

도커(docker)의 기본개념(basics)

전에 일했던 회사에서, LEMP 스택(linux, nginx, mysql, php)을 사용하면서 서버환경의 중요성과 까탈스러움을 알게 되었고, 개발환경과 실제 환경의 차이를 없애기 위해서 가상머신을 사용했습니다. 최대한 실제환경을 똑같이 하기 위해서, Virtual Machine(VirtualBox)과 Vagrant를 사용하였으며, Virtual machine인 만큼 잘 작동하였습니다. 물론, Simulated 된 가상환경을 사용하기도 하고. MAMP나 Laravel Valet 등의 php에 특화된 툴을 사용하기도 하였는데, Virtual machine이 아닌 관계로 에러가 나는 경우가 가끔 있었습니다. 하지만 Virtual Machine의 단점은, 너무 느리다는 점이었습니. 그런 면에서 Docker는 ..

Cloud/Docker 2020.12.04