리눅스

HeeJune KIM·2024년 7월 16일
post-thumbnail

학습 메모

1. 리눅스 서버에 대한 설명

리눅스는 오픈 소스 운영 체제(OS)로, 자유롭게 수정 및 배포할 수 있습니다. 유닉스는 1969년에 개발된 상용 OS로, 주로 서버와 워크스테이션에서 사용됩니다. 주요 차이점은 유닉스는 폐쇄형 상용 소프트웨어인 반면, 리눅스는 커뮤니티 기반으로 발전한 자유 소프트웨어라는 점입니다. 리눅스는 유닉스의 철학과 구조를 기반으로 하여 강력한 보안성과 안정성을 제공합니다.

2. SSH 외 원격접속 가능

원격 접속을 위한 방법으로 SSH(Secure Shell) 외에도 다양한 프로토콜과 도구가 있습니다:

  • RDP (Remote Desktop Protocol): 주로 윈도우 환경에서 사용되는 원격 데스크톱 접속 프로토콜.
  • VNC (Virtual Network Computing): 그래픽 기반 원격 접속을 제공하는 프로토콜.
  • Telnet: SSH와 유사하지만, 보안이 취약하여 거의 사용되지 않음.
  • FTP (File Transfer Protocol): 파일 전송을 위한 프로토콜로, 원격 파일 관리에 사용될 수 있음.

3. 우분투 유저 관련

우분투에서 유저를 관리하는 방법을 학습했습니다. 새로운 유저를 추가하려면 adduser 명령어를 사용하고, 비밀번호를 설정하려면 passwd 명령어를 사용합니다. 예를 들어:

sudo adduser newuser
sudo passwd newuser

또한, 유저에게 특정 권한을 부여하거나 그룹에 추가할 수 있습니다.

4. 우분투 권한 및 설정

우분투에서 파일 및 디렉토리 권한을 관리하는 방법을 학습했습니다. chmod 명령어를 사용하여 권한을 설정하고, chown 명령어를 사용하여 소유자를 변경할 수 있습니다. 예를 들어:

sudo chmod 755 /path/to/directory
sudo chown user:user /path/to/directory

또한, sudo를 통해 관리자 권한으로 명령어를 실행할 수 있습니다.

5. 우분투에 코틀린 서버 설치

우분투에 코틀린 개발 환경을 설정하는 방법을 학습했습니다. 자바 개발 키트(JDK)를 설치한 후, SDKMAN을 사용하여 코틀린을 설치합니다:

sudo apt-get install openjdk-11-jdk
curl -s https://get.sdkman.io | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install kotlin

이후, 코틀린 코드를 컴파일하고 실행할 수 있습니다.

6. crontab이란

crontab은 리눅스에서 주기적으로 명령어를 실행하기 위한 스케줄링 유틸리티입니다. crontab -e 명령어로 편집기를 열어 작업을 추가할 수 있습니다. 예를 들어, 매일 자정에 스크립트를 실행하려면 다음과 같이 설정합니다:

0 0 * * * /path/to/script.sh

7. 쉘 스크립트란?

쉘 스크립트는 명령어를 모아 놓은 스크립트 파일로, 반복적인 작업을 자동화하는 데 사용됩니다. 보통 #!/bin/bash로 시작하며, 다양한 명령어와 제어 구조를 포함할 수 있습니다. 예를 들어:

#!/bin/bash
echo "Hello, World!"

위 스크립트는 "Hello, World!"를 출력합니다.

8. Monitoring 방법

시스템 모니터링은 CPU, 메모리, 네트워크 사용량을 실시간으로 확인하고 관리하는 과정입니다. 주요 도구로는 mpstat, free, iperf3 등이 있습니다. 예를 들어, CPU 사용량을 모니터링하려면:

mpstat 1 3

메모리 사용량을 확인하려면:

free -h

네트워크 성능을 테스트하려면:

iperf3 -s # 서버 모드
iperf3 -c <server_ip> # 클라이언트 모드

9. 서버 리소스 관리하기

서버의 리소스를 효과적으로 관리하기 위해서는 모니터링과 조절이 중요합니다. stress 도구를 사용하여 인위적으로 CPU와 메모리 사용량을 증가시키고, 서버의 성능을 테스트하는 방법을 학습했습니다. 예를 들어:

stress --cpu 8 --timeout 60

이 명령어는 8개의 CPU 코어를 60초 동안 100% 사용합니다. 이를 통해 서버의 한계를 파악하고, 적절한 대응 방안을 마련할 수 있습니다.


문헌 참고

  • mpstat 매뉴얼: CPU 사용량을 모니터링하는 방법에 대한 자세한 설명
  • free 매뉴얼: 메모리 사용량을 모니터링하는 방법에 대한 자세한 설명
  • iperf3 매뉴얼: 네트워크 성능을 테스트하고 모니터링하는 방법에 대한 자세한 설명
  • crontab 매뉴얼: 주기적인 작업을 예약하는 방법에 대한 자세한 설명
  • Slack Webhook API 문서: 슬랙으로 알림을 보내는 방법에 대한 자세한 설명
  • 리눅스와 유닉스의 역사적 차이: 운영 체제의 배경과 철학에 대한 심층적인 이해

0개의 댓글