목록DEV&OPS/Linux & Cloud (31)
삶 가운데 남긴 기록 AACII.TISTORY.COM
docker container도커는 컨테이너를 이용해 application을 구동하는데, 보통 가상 머신과 비교를 많이 합니다.가상머신은 호스트OS에서 게스트 OS를 설치하여 호스트로부터 완전히 분리된 가상화 환경을 구축할 수 있습니다. 도커 컨테이너는 호스트OS에서 사용중인 프로세스를 격리시키고 어플리케이션 실행에 필요한 바이너리를 묶어서 가상화합니다. 도커 컨테이너는 application과 이 application을 실행할 가상 컴퓨터가 같이 들어 있는 셈입니다. 즉, 컨테이너에는 도커가 관리하는 독립적인 가상의 리소스(메모리,디스크,IP,등)들을 가지게 되는 것입니다.컨테이너 안에서는 컨테이너 바깥의 환경에 접근할 수 없도록 고립 시켜서 관리하기 쉽게합니다. 가상 머신은 각각 가상 OS상에서 app..
Windows 10 docker 설치도커 사이트 https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for Developers | DockerDocker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.www.docker.com에서 윈도우용 도커를 다운로드합니다.기본값으로 설치를 합니다.고래 아이콘이 나타나면 설치가 완료된 것입니다. CentOS 7 docker 설치대개 리눅스 배포판에는 도커..
1. Ubuntu 서버 다운로드https://ubuntu.com/download/server https://ubuntu.com/download/server ubuntu.com2. 네트워크 연결우분투 설치에는 큰 어려움이 없겠지만, DHCP가 아닌 Manual로 고정 IP로 설정을 할 때 주의할 점이 있습니다.네트워크 관리자에게 받은 네트워크 설정 정보는 아래와 같다고 가정하겠습니다.SUBNET: 255.255.255.0Address: 192.168.2.60 GATEWAY: 192.168.2.1Name servers: 8.8.8.8우분투를 설치할 때 위와 같이 설정하면 빨간 글씨로 안된다고 나옵니다.결론적으로 말하면 아래처럼 CIDR 표기법으로 설정해야 합니다. SUBNET: 192.168.2.0/24..
여기서는 grep의 다양한 옵션에 대해 다루지는 않겠습니다. 사용하기 유용했던 패턴 샘플만 몇개 언급하도록 하겠습니다. 1. 실행 중인 프로세스 중 "java"를 포함하는 프로세스를 찾을 때 ps -ef | grep java 하지만 이건 우리가 찾으려는 프로세스 외에 프로세스가 grep 자체 프로세스도 표시되는데요. 그래서, 2. 실행 중인 프로세스 중 "java"를 포함하는 프로세스를 찾되, grep로 시작하는 프로세스를 제외할 때 ps -ef | grep java | grep -v grep 요렇게 하면 됩니다. 3. 실행 중인 프로세스 중 "java"를 포함하는 프로세스의 PID만 찾되, grep로 시작하는 프로세스를 제외할 때 ps -ef | grep java | grep -v grep | awk ..
https://aacii.tistory.com/381 /var/cache 디렉터리의 용량 부족 리눅스 서버를 운영하다가 종종 /var/cache 디렉터리의 용량이 부족한 경우가 있습니다. 이럴 때 대처하는 방법을 소개합니다. 캐시 파일 확인 먼저 /var/cache 디렉터리 내의 파일 및 하위 디렉터리 blog.aacii.net /var 파티션이 용량이 부족한 관계로 디스크를 추가했습니다. CentOS 7에서 디스크를 추가하고 /var 파티션 용량을 확장해보겠습니다. 당연하겠지만 root 권한으로 작업해야합니다. su - 디스크 용량 확인 df -h 새 디스크 확인 새로운 디스크가 시스템에 제대로 인식되었는지 확인합니다. fdisk -l 리눅스에 설치된 디스크 목록을 확인합니다. /dev/sda1 /de..
리눅스 서버를 운영하다가 종종 /var/cache 디렉터리의 용량이 부족한 경우가 있습니다. 이럴 때 대처하는 방법을 소개합니다. 캐시 파일 확인 먼저 /var/cache 디렉터리 내의 파일 및 하위 디렉터리를 확인하여 어떤 파일이 공간을 차지하고 있는지 확인합니다. du -sh /var/cache/* 용량 크기순으로 정렬된 목록이 나타납니다. 캐시 파일 정리 불필요한 캐시 파일이나 오래된 파일을 삭제하여 공간을 확보할 수 있습니다. sudo yum clean all 오래된 패키지 캐시를 삭제할 수 있습니다. 패키지 관리 도구 사용 시스템에서 사용하지 않는 패키지를 확인하고 삭제하여 불필요한 파일을 제거합니다. sudo yum autoremove 디스크 용량 확인 df -h
1. host name 등록 sudo vi /etc/hosts ip와 호스트 네임 등록 후 저장합니다. 2. 라이센스 발급 Technet 효율적인 시스템 관리를 위한 기술 전문 포탈, 테크넷서비스 technet.tmaxsoft.com 티맥스 소프트 가입 후 로그인 데모라이선스 신청 버튼 클릭 JEUS Version 5fix#19 or Later 을 선택 후 제출하기 버튼 클릭 그러면 이메일로 라이센스 파일이 첨부되어 옵니다. 리눅스용 라이센스 license.dat 파일을 license 으로 파일명 변경 3. 설치파일 다운로드 https://technet.tmaxsoft.com/ko/front/download/findDownloadList.do?cmProductCode=0101 TmaxSoft Techni..
CATALINA_HOME과 CATALINA_BASE를 분리 Tomcat 하나에서 여러 web application 을 context root를 분리해서 구동시킬 수 있습니다. 그런데 $CATALINA_HOME과 $CATALINA_BASE를 분리해서 하나의 Tomcat으로 여러개의 인스턴스를 각각 다른 포트 번호로 구동할 수도 있습니다. 여러 인스턴스로 구동하게 되면 각각의 구동 환경을 분리해서 webapp을 구동시킬 수 있습니다. 이렇게 하면 tomcat을 업데이트 할 때 인스턴스는 그대로 두고 tomcat만 교체하면 되기 때문에 편리합니다. server.xml 파일 하나에 여러 호스트 정보를 등록해서 관리 할 수도 있는데 이런 경우 Tomcat 재구동시 모든 서비스들이 재시작되므로 추천하지 않습니다. ..
설치 가능한 JDK 확인 sudo yum list java*jdk-devel 설치 가능한 JDK 리스트가 출력됩니다. openjdk11 설치 sudo 나 root계정이 필요합니다. sudo yum install java-11-openjdk-devel.x86_64 JAVA_HOME 설정 .bashrc는 세션이 시작될 때 자동으로 환경 변수가 등록되며 .bash_profile 은 1회용 환경변수이므로 세션이 달라지면 사라집니다. 우선 jdk의 경로를 확인합니다. find / -name "javac" 2>/dev/null 여기서는 로그인한 계정의 홈 디렉토리에있는 .bashrc를 수정하도록 하겠습니다. vi ~/.bashrc 여기서의 JAVA_HOME 경로는 위에서 설치한 jdk의 경로를 지정해둡니다. 만약 ..
gitlab 설치 시에 기본 port가 8080 입니다. 그런데 8080은 흔히 WAS에서 사용하는 포트기 때문에 보통 gitlab의 포트를 8080 포트가 아닌 다른 포트로 변경해서 설치합니다. (external_url 설정으로...) 그런데 gitlab을 구동했을 때 8080 포트가 사용중인 경우가 있습니다. 깃랩 서비스가 시작된 후 사용 중인 포트를 조사해보면 sudo netstat -nltp puma가 8080 포트를 점유중인것을 알 수 있습니다. puma 구글에서 검색해보면 unicorn 설정이 많이 나오지만 gitlab 14.0 부터는 unicorn 의 지원을 제외한다고 합니다. 그런데 puma 가 8080 포트를 기본 값으로 사용하고 있어서 tomcat같은 was를 사용할 때 8080 포트가..
원격 브랜치 로컬로 가져오기(fetch) 원격 저장소(orign)의 모든 원격 브랜치를 로컬로 가져옴 git fetch origin 체크아웃 할 수 있는 브랜치 목록 확인 git branch -a 브랜치 목록 중에서 원격 브랜치에는 remotes/origin 접두사가 붙어 있습니다. 원격 브랜치 업데이트 원격 저장소의 브랜치들을 갱신 git remote update 원격 저장소 브랜치 목록 확인 git branch -r 그런데 삭제된 원격 브랜치가 목록에 나오는 경우가 있습니다. git remote update 명령은 원격 저장소에서 삭제된 브랜치들을 로컬 저장소에서 정리하지는 않기 때문입니다. 모든 원격 저장소에 대해 삭제된 브랜치 정보를 정리(prune)하려면 아래와 같이 입력합니다. git fetc..
RAID(Redundant Array of Independent Disks) 여러개의 디스크를 하나의 디스크 처럼 사용하는 방식 Linear RAID 2개 이상의 디스크를 1개의 볼륨으로 사용합니다. 첫 번째 디스크부터 데이터를 저장한 후 꽉차면 두번째 디스크에 데이터를 저장하는 방식입니다. 그래서 각 디스크의 용량이 달라도 문제없이 사용할 수 있습니다. RAID 0 Linear RAID와는 다르게 데이터를 각 디스크에 분할하여 동시에 저장하는 방식입니다. 동시에 저장하기 때문에 저장 속도가 획기적으로 향상됩니다. 단점은, 여러개의 디스크 중에서 한개가 고장나면 모든 데이터를 잃어버린다는 점입니다. 그래서 속도는 빨라야하지만 잃어버려도 큰 문제가 없는 데이터를 저장할 때 적절한 방식입니다. RAID 1 ..
IDE 장치와 SCSI 장치 IDE는 메인보드 슬롯에 각각 2개씩 총 4개 장착할 수 있습니다 표기는 IDE 0:0, 0:1, 1:0, 1:1처럼 표기합니다. 실제 컴퓨터에 CentOS가 설치되어 있다면 실제 물리 하드디스크를 장착하겠지만, VMware는 기본적으로 IDE 1:0 에 CD/DVD 장치를 장착해 줍니다. SCSI는 총 16개의 장치를 연결할 수 있습니다. 여기서 우리는 VMware에 하드디스크를 SCSI로 추가해볼 것입니다. VMware에서는 총 60개 까지 하드디스크를 사용할 수 있습니다. 리눅스에서는 SCSI디스크 이름을 /dev/sda 라고 부릅니다. 추가로 디스크를 장착하면 /dev/sdb, /dev/sdc, /dev/sdd 등으로 부르고 논리적인 파티션으로 나눠진 것은 /dev/s..
pid 메모리에 로딩된 프로세스를 구분해주는 id 값입니다. kill 명령어와 pid 값으로 강제로 종료할 수 있습니다. 다만 부모 프로세스와 자식 프로세스로 종속되어 실행되는 프로세스들도 있으므로 주의해야 합니다. jobs jobs 명령어를 실행하면 현재 실행되는 백그라운드 프로세스의 번호를 출력해줍니다. ps 현재 프로세스 상태를 확인하는 명령어 입니다. kill 프로세스를 강제 종료하는 명령어 입니다. -9 옵션과 함께 사용하면 무한 루프를 도는 프로세스도 강제 종료 됩니다. pstree 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여주는 명령어 입니다. 단축키 stty -a 하면 정의된 문자를 볼 수 있습니다. 인터럽트 : ctrl-c 강제종료 : ctrl-\ end of file : c..
네트워크 장치 이름 확인 centOS 7은 네트워크 장치(랜카드) 이름을 ens32 또는 ens33 으로 인식합니다. ifconfing ens33 nmtui 이 명령어는 Network Manager Text User Interface로 네트워크 작업 대부분을 할 수 있습니다. ip설정, 서브넷 마스크, 게이트웨이, dns 정보 들을 편집 할 수 있습니다. systemctl start/stop/restart/status network nmtui 명령을 통해 편집할 내용을 적용할 때 쓰는 명령어 입니다. ifup 장치이름 여기서 장치이름은 위에서 언급했던 ens32 또는 ens33을 말합니다. 해당 네트워크 장치를 작동시켜주는 명령어 입니다. ifdown 장치이름 ifup과 반대로 해당 네트워크 장치를 끄는..