Study 46

도커 컨테이너에서 가장 마지막으로 수정한 파일을 호스트로 가져오기

후 드디어 명령어 만들었다. docker exec [container] ls -tr | tail -1 | xargs -I {} docker cp [container]:{} [host_dir] 예시 : hpcg 컨테이너에서 가장 최근에 수정된 파일을 test라는 이름으로 복사해오기 docker exec hpcg ls -tr | tail -1 | xargs -I {} docker cp hpcg:/AddedFiles/hpcg-3.1/bin/{} ./test 지금은 workdir을 정해줘서 바로 특정 디렉토리 내에서만 검색하는데, 만약 컨테이너 전체를 검색하고 싶다면 `ls`대신 `find`를 이용하면 된다.

Study/linux 2019.10.13

디렉토리에서 가장 최근 파일의 이름 바꾸기

디렉토리에서 가장 최근 파일 이름 바꾸는 법을 알아보자. mv명령어를 이용하므로, 이름말고 위치를 바꿀 때도 동일하게 사용하면 된다. ls -tr | tail -1 | xargs -I{} mv {} new_name 해석: ls -tr : 시간(-t)을 내림차순(-r)으로 정렬해서 보여준다(ls) | tail -1 : 앞 명령어로 나온 결과중에 ( | ) 맨 마지막 한 가지만 고른다 (tail -1) | xargs -I {} mv {} new_name : 앞 명령어 결과를 이용하여 (|) 다음 명령어의 인자로 전달한다 (xargs) 전달하는 위치는 다음 변수가 있는 곳으로 한다 (-I, {}... {}는 변수 이름이고 변경 가능) 전달받은 인자의 이름을 new_name으로 바꾼다 ( mv {} new_na..

Study/linux 2019.10.13

jmeter cli로 실행 시 각종 파라미터 넘기기(ip, thread, port 등)

jmeter를 cli로 사용하는 법을 알아보자. cli로 실행할때마다 ip주소를 유동적으로 넘겨주고 싶다면 아래 포스팅 참고 https://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/ Jmeter – command line script execution with arguments Its a common practice to create Performance script in GUI mode and run the test in CUI (command user interface) mode. Some time we need to pass some arguments to script as input. ..

Study/linux 2019.10.09

[Error]undefined reference to ~ 해결법

vscode로 코딩하고있었는데 이런 에러가 떴다. 이 에러가 뜨는 이유는 링커가 저 `TestClass()`의 위치를 못 찾았기 때문이다. 일단 이것부터 확인하자. - 메소드를 구현했는가? .h에 선언만 해 놓고 .cpp에 구현은 아직 안 한게 아닌가? - .cpp에 scope를 잘 지정했는가? void ClassName::method(){}이렇게 namespace를 잘 지정해줬는가? 위 조건을 지키면 웬만하면 해결된다. 만약 해결되지 않는다면 문법 오류가 아니고 링커 오류다. 링커 오류가 났을 때 해결법은 두 가지다. 1. 생성자 구현을 헤더 파일안에서 inline으로 해주거나, 2. g++로 컴파일할때 링크를 건드리거나. 1. 헤더 안에서 구현하기 간단한 방법이다. 헤더에서 구현해버리자. 대신 이렇게..

Study/C,C++ 2019.10.07

[Remote API] 외부 컴퓨터에서도 도커를 이용하기

도커가 깔려 있지 않은 컴퓨터에서도 도커를 이용할 수 있다. 어떻게? 외부에서 접속해서! RemoteAPI를 이용하면 원격으로 도커 데몬에 명령을 내릴 수 있다. pull이나 attach같은 몇몇 복잡한 명령어들은 안되지만, 대부분은 가능하다. 외부에서 apach server를 열어 테스트해보자. 도커 데몬 TCP 소켓 열기 같은 컴퓨터 내에서 프로세스끼리 통신할땐 UNIX소켓, 다른 컴퓨터끼리 네트워크로 통신할 땐 TCP소켓을 이용한다. 나는 다른 컴퓨터에서 원격으로 이용할 것이니 TCP소켓을 열어준다. 1. TCP소켓 Listen하기 # listen using the default unix socket, and on 2 specific IP addresses on this host. $ service..

Study/linux 2019.10.06

[Error] 도커에서 mpirun실행시 errno=1 에러

mpirun을 했는데 이런 에러가 뜬다. > Read -1, expected 13212, errno = 1 원인은 CMA였다. 도커에서 쓰는 네임스페이스가 host와 달라서 그렇다나 뭐라나 해결방법: 도커 안에서 다음 명령을 실행한다. $ export OMPI_MCA_btl_vader_single_copy_mechanism=none 참고 https://github.com/open-mpi/ompi/issues/4948 Vader in a Docker Container · Issue #4948 · open-mpi/ompi Background information What version of Open MPI are you using? (e.g., v1.10.3, v2.1.0, git branch name an..

Study/linux 2019.10.04

하이퍼쓰레드 켜고 끄기

하이퍼쓰레딩 확인하기 제일 편한 방법: `lscpu`명령 방법 1; siblings 가 cpu core 2배면 hyperthreading on cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2 방법 2 ; Thread Count가 Core Count의 2배면 hyperthreading on dmidecode -t processor | egrep 'Core Count|Thread Count' | head -2 방법 3; hyperthreading on이면 HTT(Hyper-threading), off면 HTT(Multi-threading) dmidecode -t processor | grep HTT | head -1 하이퍼쓰레드 설정 bash파일 만들기 ..

Study/linux 2019.10.04

LiveCD를 이용해서 루트 디렉토리 fsck 실행하기

fsck: file system check . 파일 검사 & 수리하는 명령어. 루트 디렉토리에 fsck를 실행하면 아래와 같은 경고문구가 뜨며 실행이 되지 않는다. 뭐시기뭐시기/ is mounted. Cannot continue, aborting. 이유는 루트 디렉토리가 mount된 상태이기 때문이다. liveCD를 이용해서 루트 디렉토리에 fsck를 실행하는 방법을 알아보자. 1. Live CD ( Install USB )에서 Try Ubuntu 실행 컴퓨터를 재시작한다. F11을 눌러 부팅 디스크를 _ubuntu install usb_로 선택한다. USB로 부팅이 됐다면 Try Ubuntu를 실행한다. Nvidia 그래픽카드를 쓰는 경우 만약 Nvidia 그래픽카드를쓴다면 Try Ubuntu가 실행이..

Study/linux 2019.10.03

도커에서 HPL 이용하기

도커에서 HPL 컨테이너 사용하기 도커에서 HPL (High-Performance Linpack) 컨테# 도커에서 HPL 컨테이너 사용하기 도커에서 HPL (High-Performance Linpack) 컨테이너를 사용하는 방법을 알아보자. 아직 도커에 HPL이나 linpack의 공식 이미지가 없다. (2019.09.24. 기준) 그래서 그냥 내가 만들어 쓰기로 했다. 목차: 0. HPL과 준비물 컨테이너에서 직접 실행시켜보기 Dockerfile 작성하기 컨테이너 실행 확인하기 HPL이 뭔가? 우선 HPL이 무엇인지 감부터 잡아보자. HPL은 "High-Performance Linpack"의 약자인데, 여기서 Linpack은 벤치마크 프로그램 이름이다. 즉, HPL은 "High-Performace Com..

Study/linux 2019.09.30