배포한 SpringBoot 프로젝트를 Ubuntu서비스에 등록하고 싶어졌다. 의외로 방법은 간단하다. 서비스를 등록하기 위해서 아래와같이 .service로 끝나는 파일을 만든다. sudo vi /etc/systemd/system/humor-api.service 아래와 같이 입력한다. [Unit] Description=Humor Crawler API After=syslog.target network.target mysql.service [Service] ExecStart=/bin/bash -c "exec java -jar [jar가 위치한 full경로]/humor-api.jar" [Install] WantedBy=multi-user.target service파일이 생성되었으면 아래의 명령어들을 실행하여 s..
crontab 리눅스는 예약 녹화처럼 지정한 시각에 명령어를 자도 실행하는 crond라는 서비스가 있다. crontab은 “crond로 실행하고 싶은 명령어와 실행 시각”(cronjob)을 관리하는 명령어 "다. cronjob 날싸 지정 규칙 분, 시, 일, 월, 요일 crontab -e를 실행하면 cronjob 설정을 편집할 수 있다. 0(일), 1(월), 2(화), 3(수), 4(목), 5(금), 6(토), 7(일) 0, 7이 겹치는데 어느쪽도 가능하다. crontab -l을 사용하면 설정된 스케줄들을 확인할 수 있다.
top : 시스템 부하 관련 정보를 수초간격으로 실시간으로 갱신하며 표시해준다. load average : cpu가 처리하는걸 기다리는 작업 개수 load average가 높을수록 과부하가 일어나고 있다는 뜻이다. cpu 코어수 이상이 될 경우 과부하가 일어나고 있다고 보면 될 것 같다. cpu 사용률과 cpu 시간 양쪽이 큰 프로세스는 과부하 원인일 가능성이 높음 과부하 원인인 프로세스는 kill명령어로 종료 하도록 한다. 그런데, cpu사용률이 높지 않더라도 load average가 높은 경우가 있는데, 이러할 경우 메모리가 부족하여 발생하는 경우이다. Swap cpu는 보통 작업 장소로 메인 메모리를 사용하지만 메모리 여유 공간이 부족하면 새로운 작업을 할 수 없다. 그렇게 되면 OS는 메모리에 있..
scp는 네트워크 건너서 파일을 복사할 때 사용한다. scp를 실행하면 우선 scp가 ssh를 호출하고, 그 위에서 ssh 통신 경로를 사용해서 파일을 보낸다. ex) 원격에서 내 서버로 파일 복사하기 scp -r jabel@host:temp/results/ /tmp/ 내 서버에서 원격서버로 파일 복사하기 scp -r /tmp/ jabel@host:temp/results/ 여기서 -r은 recursive의 약자로 하위에 있는 파일들을 모두 복사하도록 해준다.
회사에서 시스템 운영을 하면서 제목과 같은 현상이 발생하고 말았다. df -h 로 확인을 하였더니 디스크가 100% 차버린 것이다. 그러나, du -sh / , ncdu / 등의 명령을 통해 확인해본 폴더들이 차지하고 있는 용량은 전체의 10%도 사용하고 있지 않았었따. 결론적으로 원인은 파일이 삭제되었지만, 프로세스가 해당파일을 열고있기에 실제 디스크의 용량은 차지하고 있었던 것이다. 이를 확인하기 위해서는 아래의 명령을 통해 확인할 수 있다. lsof | grep "(deleted)"