본문 바로가기

linux7

[Linux] Ubuntu - OOM(Out Of Memory) 메모리 부족과 대응 목차대응방안 및 개요메모리 확인Cache/buff 메모리 정리CronTab 으로 자동화Linux - OOM 과 대응방안 개요- Linux 서버를 운영하다 보면 수많은 장애와 오류를 마주할 수 있다. 그 중 제일 무섭다고 생각되는 장애중 하나는OOM(Out Of Memory) 일 것이다.  해당 장애는 `시스템 메모리 부족` 상태를 의미하며, 서버에서 가용가능한 메모리가 없는 상태를 뜻한다. 해당 장애가 발생했을때 무서운점은 모든 프로세스(OS, APP)가 멈출뿐 아니라, 대응하기도 쉽지 않다는점이다.   필자의 경우, 홈서버에서 실행중인 Process(Memory 많이 사용)가 많은 상황에서 발생하였으며, 수동으로 Server를 재시작하였다.추후 확인해보니 Cache Memory의 사용비율이 너무 높았다.. 2024. 9. 18.
[Docker] NextCloud - 홈서버 나만의 무료 클라우드 만들기 NextCloud - 나만의 무료 클라우드 만들기클라우드 기술이 널리퍼져있고 유용하게 쓰이는 시대에, 다들 Cloud 하나씩은 사용하고 있을것이다. (iCloud, Google Cloud, One Drive, ...) 사실 월 구독료가 부담되는 금액은 아니지만, 더 많은 용량을 사용하게 될수록 금액적인 부담이 발생한다.  NextCloud 는 오픈소스이기 때문에, 누구든 무료로 사용할 수 있다. 특히나 홈서버가 존재한다면 활용가치는 더욱더 높다.(개인적으로 파일 공유가 주 목적인 NAS 보다 효율성이 높다고 생각한다) 홈서버가 없더라도 평생 무료로 쓸 수 있는 Oracle Cloud 서버를 구축뒀다면, 100Gb 가량의 나만의 무료 클라우드 서비스를 만들 수 있다. 위에서 서술했던대로, 오픈소스이고 나만.. 2024. 8. 3.
[Linux] alias로 자주쓰는 커맨드 설정 alias 설정으로 자주쓰는 명령어 커맨드 설정 Shell 커맨드는 다양한 분야에서 사용하고 있고, 커맨드의 수 또한 굉장히 많다. (조합하거나, 다양한 옵션들 등등) alias 설정을 해야겠다고 생각한 이유는, 현재 진행중인 사내 프로젝트의 경우 수동으로 배포를 진행하는데, WAS 서버에 있는 Tomcat 에 war 파일을 배포하는 방식을 사용하고 있다. 물론 Shell Script 를 통해서 war 파일 이름 변경, tomcat 실행 등등 자동으로 하긴 하지만, 서버 1대당 2개의 war 파일을 배포하고, 로그확인까지 해야 한다. 현재 프로세스로 진행한다면 수많은 cd 커맨드,, tail 등등 폴더 이곳저곳을 옮겨 다니며 많은 커맨드를 작성해야 한다. 이걸 자동화를 할 수 없을까,, 생각하다가 ali.. 2023. 10. 25.
[Linux]Ubuntu 설치 (Docker 컨테이너) 및 테스트(Ubuntu 초기 설정 Shell Script 제공) Docker 컨테이너를 통한 Ubuntu 설치 및 테스트 ○서론 - 개발을 하다보면 Linux 환경에서의 작업을 해야할 경우가 생긴다 (혹은 테스트), 그럴 경우 공부 목적이나, 테스트 목적으로 리눅스 환경을 구성하여, 진행 하는 경우가 생기게 되는데 docker 를 사용하기 이전에는 VMware(유료), VirtualBox(무료) 와 같은 가상화 소프트웨어를 사용했었다. 필자가 사용했던 Virtual Box를 예를 들자면, 설정 -> 설치 -> 실행 까지 시간이 꽤 오래 걸림, 설치 및 설정을 위해 신경써야할 것 많음. 위와 같은 이유로 매번 새로운 가상환경 설정을 하기가 여간 귀찮은 작업이라고 생각되었다. (시간적 소요 + 파일 크랙으로인한 실행 불가 등등) 최근에 Linux 환경에서 테스트 할 일이.. 2023. 8. 12.
[AWS] EC2 포트 포워딩 (Port forwarding) - 포트연결 AWS EC2 포트 포워딩 - 포트 포워딩(port forwarding)이란? 외부에서 접속한 (IP주소 : 포트)를 내부의 port로 연결(매핑)하는것을 의미한다. 즉 기본포트인 80으로 접속하게 된다면, 내가 설정한 port로 요청되는것을 말한다. 예) Client 접속 (IP주소:8080) -> 내부적으로 매핑 -> port: 3000번으로 Redirect ○ 사용상황 필자의 경우 EC2 인스턴스 1개에 Spring-boot, React(Front) 2개의 서버가 구동 되고, 무엇을 호출하던간에 3000(React)포트로 포워딩을 해야 했다. (8080(SpringBoot)포트는 외부에서는 접근이 안되는 port로 지정해주었다.) 포트 포워딩 설정 ○ 명령어 sudo iptables -t nat -.. 2023. 2. 14.
[Linux] Linux(Unix) 2038년 문제 - Y2K38 새해가 되면 많은 개발자, IT 업계에 종사하고 있는 사람들은 Linux 2038년 문제에 대해서 이야기를 나누고는 한다. 2023년인 현재에 비해서는 15년이나 남았다. (하지만 하루하루 살다보면 2038년은 금방 올 수 있기 때문이다...!) 그렇다면 Linux 2038년 문제는 무엇일까? [문제] 32bit 운영체제를 사용하는 OS(Linx,Unix)는 2038/01/19 03:14:07초 를 지나게 되면 1901/12/31, 혹은 1970/01/01 시점으로 타임슬립하는 문제이다. 정식 명칭은 Y2K38, Y2038 라고 한다. - 문제 원인 컴퓨터에서 '그레고리 력' 시간을 계산하는 방법에는 여러가지가 있는데, 현재 보편적으로 사용하는 방법은 Unix Time을 사용한다. 해당 방법은 -> 32.. 2023. 1. 4.
[Git] Git clone - 로컬에 프로젝트 가져오기 Git clone 이란? 개발을 할 때 코드를 관리하거나, 다른 사람과의 협업을 해야 할 때 GitHub의 Repository를 통하여 코드를 공유, 관리하게 된다. 여기서 이미 GitHub에 Repository 가 존재하는 경우 해당 Repo를 local로 가져오는것을 'git clone' 한다고 한다. * 이 글에서는 Git Hub에 이미 Repository가 존재 할 경우 * 저는 Mac 환경 에서 사용하는것을 기준으로 합니다! -> windows 에서는 git bash 사용! * Https 방식 사용 기본 명령어 git clone [GitHub Repo 주소] [DIR] 1. 터미널에 해당 명령어 + 주소, 실행하면 현재 폴더에 Repostiory가 복제된다. 2. 주소뒤의 [DIR] = Dire.. 2022. 12. 7.