[Linux 명령어] 다양한 기능이 있는 다운로드 유틸리티 (wget)
wget wget 명령어는 인터넷에서 파일을 다운로드하기 위한 명령줄 유틸리티다. HTTP, HTTPS, FTP 등 다양한 네트워크 프로토콜을 지원한다. 이 명령어는 견고성과 내결함성을 위해 Linux, macOS 및 기타 Unix와 유사한 운영 체제에서 널리 사용된다. wget의 주요 기능에는 느리거나 불안정한 네트워크 연결 처리, 실패한 다운로드 재시도, 중단된 다운로드 재개 등이 있다. 또한 재귀적으로 파일을 다운로드하고, 특정 파일 유형을 필터링하고, 다운로드 속도를 제한하고, 다운로드 디렉토리를 지정하는 옵션을 제공한다. wget 설치 Ubuntu / Debian sudo apt update && sudo apt install wget CentOS / RHEL sudo yum install wg..
2023.03.25
[Linux 명령어] systemd에서 target 활용 및 변경 (systemctl)
목차 systemd 주요 기능 Systemd target 선택 systemd에서 target을 활용하기 위한 systemctl 명령어 활용 systemd systemd는 전통적인 System V init 시스템(SysVinit)을 대체하기 위해 많은 Linux 배포판에서 사용되는 초기화 시스템 및 시스템 관리자다. Lennart Poettering과 Kay Sievers가 개발했으며 2010년에 처음 출시되었다. systemd는 현대적인 디자인, 효율적인 프로세스 관리 및 다양한 Linux 구성 요소와의 통합으로 인기를 얻었다. systemd는 시작하는 동안 사용자 공간을 부트스트래핑하고, 시스템 서비스를 관리하고, 시스템 수명 주기 동안 일관된 상태를 유지하는 역할을 한다. 주요 기능 병렬화 syste..
2023.03.25
[Linux 명령어] 스토리지 관리 명령어 (stratis)
Stratis으로 스토리지 관리 Stratis는 Red Hat 및 업스트림 Fedora 커뮤니티에서 개발한 로컬 스토리지 관리 툴이다. Stratis를 사용하 면 스토리지 초기 구성 수행, 스토리지 구성 변경, 고급 스토리지 기능 사용이 더 쉬워진다. Stratis는 물리적 스토리지 장치 풀을 관리하는 서비스로 실행되며, 새로 생성된 파일 시스템의 볼륨을 투명하 게 생성 및 관리한다. Stratis는 씬 프로비저닝이라는 개념을 사용하여 디스크 장치의 공유 풀에서 파일 시스템을 빌드한다. 파일 시스템을 생성할 때 물리적 스토리지 공간을 즉시 할당하는 대신, Stratis에서는 파일 시스템에서 추가 데이터 를 저장할 때 풀에서 공간을 동적으로 할당한다. 따라서 파일 시스템의 크기가 1TiB로 표시될 수 있지..
2023.03.25
[Linux 명령어] swap이란? (+ swap 관련 명령어)
SWAP 스왑은 Linux 기반 운영 체제에서 가상 메모리로 작동하는 저장 장치(예: HHD, SSD, 가상 저장 장치)의 전용 공간이다. 시스템의 사용 가능한 메모리가 부족할 때 물리적 RAM(Random Access Memory)을 보충하는 데 사용된다. 스왑 공간을 통해 운영 체제는 덜 자주 사용되는 데이터를 RAM에서 스왑 영역으로 이동하여 더 중요하거나 자주 액세스하는 데이터를 위해 RAM의 공간을 확보할 수 있다. 스왑 공간은 스왑 파티션 또는 스왑 파일의 형태일 수 있다. 스왑 파티션은 저장 장치의 전용 파티션인 반면 스왑 파일은 기존 파일 시스템 내의 파일이다. 둘 다 동일한 목적을 수행한다. SWAP 장점 메모리 부족 상황 시스템의 RAM이 부족할 때 스왑 공간은 덜 중요한 데이터를 일시..
2023.03.24
[Linux 명령어] 파티션과 파티션 분할 (parted)
목차 디스크 파티셔닝 MBR 파티션 체계 GPT 파티션 테이블 파티션 관리 명령어 parted 디스크 파티셔닝 디스크 파티셔닝은 디스크 드라이브를 여러 개의 논리 스토리지 파티션으로 나눈다. 파티션을 사용하면 다양 한 요구 사항에 따라 스토리지를 분할할 수 있으며, 이러한 분할은 다양한 이점을 제공한다. • 애플리케이션 또는 사용자가 사용할 수 있는 공간을 제한한다. • 사용자 파일에서 운영 체제와 프로그램 파일을 구분한다. • 메모리 스왑을 위해 별도 영역을 생성한다. • 디스크 공간 사용을 제한하여 진단 도구 및 백업 이미징의 성능을 향상시킨다. MBR 파티션 체계 MBR(Master Boot Record) 파티셔닝 체계는 BIOS 펌웨어를 실행하는 시스템의 표준이다. 이 스키마는 최 대 네 개의 주..
2023.03.24
[Linux 이론] SELinux 파일 컨텍스트 제어 (fcontext)
목차 SELinux 컨텍스트 SELinux 컨텍스트 변경 semanage fcontext SELinux 기본 파일 컨텍스트 정책 정의 예 SELinux 컨텍스트 프로세스, 파일, 포트와 같은 모든 리소스에는 SELinux 컨텍스트로 레이블이 지정된다. SELinux는 /etc/ selinux/targeted/contexts/files/ 디렉터리에서 파일 레이블 지정 정책에 대한 파일 기반 데이 터베이스를 유지 관리한다. 새 파일은 해당 파일 이름이 기존 레이블 지정 정책과 일치하는 경우 기본 레이블을 가져온다. 새 파일의 이름이 기존 레이블 지정 정책과 일치하지 않는 경우에는 파일에 상위 디렉터리와 동일한 레이블이 상속된다. 레이블 상속을 사용하면 파일에 대한 명시적 정책이 존재하는지의 여부와 관계없이 ..
2023.03.24
반응형
wget

wget 명령어는 인터넷에서 파일을 다운로드하기 위한 명령줄 유틸리티다. HTTP, HTTPS, FTP 등 다양한 네트워크 프로토콜을 지원한다. 이 명령어는 견고성과 내결함성을 위해 Linux, macOS 및 기타 Unix와 유사한 운영 체제에서 널리 사용된다.

 

wget의 주요 기능에는 느리거나 불안정한 네트워크 연결 처리, 실패한 다운로드 재시도, 중단된 다운로드 재개 등이 있다. 또한 재귀적으로 파일을 다운로드하고, 특정 파일 유형을 필터링하고, 다운로드 속도를 제한하고, 다운로드 디렉토리를 지정하는 옵션을 제공한다.


wget 설치

Ubuntu / Debian

sudo apt update && sudo apt install wget

CentOS / RHEL

sudo yum install wget
sudo dnf install wget

사용 예시 및 옵션

1. 단일 파일 다운로드

wget http://example.com/path/to/file.txt

 

2. 특정 디렉토리에 파일 다운로드
파일을 특정 디렉토리에 다운로드하려면 -P 또는 --directory-prefix 옵션과 원하는 디렉토리 경로를 차례로 작성한다.

wget -P /path/to/directory http://example.com/path/to/file.txt

 

3. 다른 이름으로 파일 다운로드
다운로드한 파일을 다른 이름으로 저장하려면 -O 또는 --output-document 옵션 다음에 원하는 파일 이름을 작성한다.

wget -O new_file_name.txt http://example.com/path/to/file.txt

 

4. 중단된 다운로드 재개
중단된 다운로드를 재개하려면 -c 또는 --continue 옵션을 사용한다.

wget -c http://example.com/path/to/file.txt

 

5. 다운로드 속도 제한
다운로드 속도를 제한하려면 --limit-rate 옵션과 원하는 속도 제한(예: 100KB/s의 경우 100k)을 작성한다.

wget --limit-rate=100k http://example.com/path

 

6. 여러 파일 다운로드
여러 파일을 다운로드하려면 여러 URL과 함께 하나의 wget 명령어를 사용하거나 URL 목록이 포함된 텍스트 파일을 만들고 -i 또는 --input -파일 옵션을 사용한다.

wget http://example.com/path/to/file1.txt http://example.com/path/to/file2.txt

다른 방법) URL이 포함된 텍스트 파일(예: urls.txt)을 만든다.

sudo vi /path/urls.txt

http://example.com/path/to/file1.txt
http://example.com/path/to/file2.txt

그런 다음 -i 옵션을 사용하여 파일을 다운로드한다.

wget -i urls.txt

 

7. 재귀적으로 파일 다운로드
웹사이트나 FTP 서버에서 파일을 재귀적으로 다운로드하려면 -r 또는 --recursive 옵션을 사용하여라. 이렇게 하면 이미지 및 기타 파일과 같은 콘텐츠와 함께 지정된 URL이 다운로드된다.

wget -r http://example.com/path/to/website

 

8. 재귀 깊이 제어
wget 명령의 컨텍스트에서 재귀 깊이는 지정된 URL에서 파일이나 웹 페이지를 다운로드할 때 명령이 따라야 하는 최대 수준 수를 나타낸다. --recursive 옵션을 사용하는 동안 재귀 깊이를 제한하려면 -l 또는 --level 옵션 뒤에 원하는 깊이를 작성한다.

wget -r -l 1 http://example.com/path/to/website

 

9. 특정 파일 형식만 다운로드
특정 파일 형식만 다운로드하려면 -A 또는 --accept 옵션 다음에 쉼표로 구분된 파일 확장자 목록을 작성한다.

wget -r -A .jpg,.png http://example.com/path/to/website

 

10. 특정 파일 형식 제외
특정 파일 형식을 다운로드에서 제외하려면 -R 또는 --reject 옵션 다음에 쉼표로 구분된 파일 확장자 목록을 작성한다.

wget -r -R .jpg,.png http://example.com/path/to/website

 

11. 지정된 디렉토리에서만 파일 다운로드
지정된 디렉토리에서만 파일을 다운로드하려면 --include-directories 또는 --exclude-directories 옵션 다음에 쉼표로 구분된 디렉토리 목록을 작성한다.

wget -r --include-directories=dir1,dir2 http://example.com/path/to/website

 

12. 상대 링크만 따르기
기본적으로 wget은 절대 링크와 상대 링크를 모두 따른다. 상대 링크만 따라가려면 --no-parent 옵션을 사용한다.

wget -r --no-parent http://example.com/path/to/website

 

13. 재시도 횟수 제어
실패한 다운로드에 대한 재시도 횟수를 제어하려면 --tries 또는 -t 옵션 뒤에 원하는 재시도 횟수를 작성한다.

wget --tries=5 http://example.com/path/to/file.txt

 

14. 시간 초과 설정
연결 설정 또는 데이터 읽기에 대한 시간 초과를 설정하려면 --timeout 또는 -T 옵션 뒤에 원하는 시간 초과 값(초)을 작성한다.

wget --timeout=10 http://example.com/path/to/file.txt

반응형
반응형

목차

  1. systemd
  2. 주요 기능
  3. Systemd target 선택
  4. systemd에서 target을 활용하기 위한 systemctl 명령어 활용

systemd

systemd는 전통적인 System V init 시스템(SysVinit)을 대체하기 위해 많은 Linux 배포판에서 사용되는 초기화 시스템 및 시스템 관리자다. Lennart Poettering과 Kay Sievers가 개발했으며 2010년에 처음 출시되었다. systemd는 현대적인 디자인, 효율적인 프로세스 관리 및 다양한 Linux 구성 요소와의 통합으로 인기를 얻었다.

systemd는 시작하는 동안 사용자 공간을 부트스트래핑하고, 시스템 서비스를 관리하고, 시스템 수명 주기 동안 일관된 상태를 유지하는 역할을 한다. 


주요 기능
  • 병렬화
    systemd는 서비스를 동시에 시작하여 멀티 코어 프로세서를 활용하여 더 빠른 부팅 시간을 허용한다.

  • 종속성
    systemd는 복잡한 서비스 종속성을 관리하여 서비스가 올바른 순서로 그리고 종속성이 충족될 때만 시작되도록 한다.

  • Cgroups
    systemd는 제어 그룹(cgroups)을 사용하여 각 서비스에 대한 리소스를 관리하고 격리하여 시스템 안정성과 리소스 활용도를 향상시킨다.

  • 서비스 관리
    systemd는 서비스를 모니터링하고 감독하며 장애 또는 충돌이 발생할 경우 자동으로 다시 시작한다. 이는 시스템 안정성을 높이고 다운타임을 줄인다.

  • 로깅
    systemd에는 전체 시스템의 로깅을 처리하는 'journald' 서비스가 포함되어 있다. 인덱싱, 압축, 액세스 제어와 같은 고급 로그 관리 기능을 제공한다.

  • 구성
    systemd는 서비스 관리를 단순화하는 단위 파일로 알려진 서비스에 대한 통합 구성 형식을 사용한다.
    systemd에서 서비스를 관리하려면 systemctl 명령을 사용할 수 있다. 몇 가지 일반적인 작업은 다음과 같다.
  1. 서비스 시작: sudo systemctl start service_name
  2. 서비스 중지: sudo systemctl stop service_name
  3. 서비스 재시작: sudo systemctl restart service_name
  4. 부팅 시 서비스 시작 활성화: sudo systemctl enable service_name

Systemd target 선택

systemd target은 원하는 상태에 도달하기 위해 시작해야 하는 systemd 유닛 집합이다. target 파일은 .target 확장자를 가지며 일반적으로 /lib/systemd/system 또는 /etc/systemd/system에 있다. 다음 테이블에는 가장 중요한 target이 나열되어 있다.

 

자주 사용되는 target

  1. graphical.target : 시스템은 멀티 유저, 그래픽 및 텍스트 기반 로그인을 지원
  2. multi-user.target : 시스템이 멀티 유저, 텍스트 기반 로그인만 지원
  3. rescue.target : sulogin 프롬프트, 기본 시스템 초기화
  4. emergency.target sulogin : 프롬프트, initramfs 피벗 완료, /에 읽기 전용으로 마 운트된 시스템 루트에 사용

systemd에서 target은 특정 시스템 상태 또는 실행 수준을 생성하기 위해 다른 장치(서비스, 소켓, 장치 등)를 함께 그룹화하는 장치 구성 파일이다. target은 서로 다른 시스템 상태 간의 시스템 초기화, 종속성 및 전환을 관리하는 데 도움이 된다. 이는 전통적인 System V init 시스템(SysVinit)에서 발견되는 실행 수준의 진화로 간주될 수 있다.


systemd에서 target을 활용하기 위한 systemctl 명령어 활용

1. target 간 전환

예1_ 그래픽 target에서 다중 사용자 target으로 전환(그래픽 인터페이스 비활성화)

sudo systemctl isolate multi-user.target

예2_그래픽 target으로 다시 전환

sudo systemctl isolate graphical.target

2. 기본 target 설정

예_ 기본 target을 multi-user.target으로 설정

sudo systemctl set-default multi-user.target

기본 target을 설정한 후 시스템은 다음 재부팅 시 지정된 target(이 경우 multi-user.target)으로 부팅된다.

3. 맞춤 target 만들기

필요에 따라 특정 서비스 또는 시스템 상태를 그룹화하기 위해 사용자 정의 target을 생성할 수 있다. 사용자 지정 target을 만들려면 다음 단계를 따르십시오.

1_ /etc/systemd/system에서 새 target 파일을 만든다.

sudo nano /etc/systemd/system/my-custom.target

2_ 필요한 구성을 파일에 추가하여 사용자 지정 target을 정의한다. 예를 들어 multi-user.target과 유사하지만 일부 추가 서비스가 있는 사용자 정의 target을 생성하려면 다음 구성을 사용할 수 있다.

[Unit]
Description=My Custom Target
Requires=multi-user.target
After=multi-user.target
Wants=my-additional-service1.service my-additional-service2.service

이 구성에서 사용자 지정 target은 multi-user.target이 필요하고 이후에 시작된다. 또한 사용자 정의 target과 함께 시작되는 my-additional-service1.service 및 my-additional-service2.service 서비스를 원한다는 뜻이다.


4_ 파일을 저장하고 systemd 구성을 다시 로드한다.

sudo systemctl daemon-reload


4. 사용자 지정 target으로 전환

sudo systemctl isolate my-custom.target

 

5. 사용자 정의 target을 시스템이 부팅할 기본 target으로 설정

sudo systemctl set-default my-custom.target

이제 시스템은 다음 재부팅 시 사용자 지정 target으로 부팅된다. 이 사용자 지정 target은 multi-user.target에 필요한 서비스와 함께 구성에 지정된 서비스를 시작한다.

 

6. 현재 지정돼 있는 target 확인

sudo systemctl get-default

실무에서는 server에서 graphical.target 을 거의 사용하지 않는다고 한다. 이 target은 좀 더 가시성을 좋게 만들어주는 것으로 (네트워크를 설정할 때 nmcli가 아닌 nmtui로 보는 느낌) server는 켜져있고 작동만 잘 되면 됨으로 굳이 가시성이 좋을 필요가 없다는 것이다.

반응형
반응형
Stratis으로 스토리지 관리

Stratis는 Red Hat 및 업스트림 Fedora 커뮤니티에서 개발한 로컬 스토리지 관리 툴이다. Stratis를 사용하 면 스토리지 초기 구성 수행, 스토리지 구성 변경, 고급 스토리지 기능 사용이 더 쉬워진다.

 

Stratis는 물리적 스토리지 장치 풀을 관리하는 서비스로 실행되며, 새로 생성된 파일 시스템의 볼륨을 투명하 게 생성 및 관리한다. Stratis는 씬 프로비저닝이라는 개념을 사용하여 디스크 장치의 공유 풀에서 파일 시스템을 빌드한다. 파일 시스템을 생성할 때 물리적 스토리지 공간을 즉시 할당하는 대신, Stratis에서는 파일 시스템에서 추가 데이터 를 저장할 때 풀에서 공간을 동적으로 할당한다.

 

따라서 파일 시스템의 크기가 1TiB로 표시될 수 있지만, 풀 에서 실제로 할당된 실제 스토리지의 크기는 100GiB뿐일 수 있다. 다양한 스토리자 장치에서 여러 개의 풀을 생성할 수 있다. 각 풀에서 하나 이상의 파일 시스템을 만들 수 있다. 현재 풀당 최대 2^24 개의 파일 시스템을 만들 수 있다.

 

Stratis는 Stratis 관리 파일 시스템을 구성하는 구성 요소를 표준 Linux 구성 요소에서 빌드한다. Stratis는 내부적으로 LVM도 사용하는 장치 매퍼 인프라를 사용한다. Stratis는 관리 대상 파일 시스템을 XFS로 포맷 한다. Stratis는 하드 디스크 또는 SSD와 같은 블록 스토리지 장치를 풀에 할당하며, 이러한 장치는 각각 풀에 실제 스토리지를 제공한다. 그런 다음 풀에서 파일 시스템을 생성하고, 필요에 따라 실제 스토리지를 각 파일 시스템에 매핑한다.


주의점

Stratis에서 생성한 파일 시스템은 Stratis 툴 및 명령으로만 재구성해야 한다. Stratis는 저장된 메타데이터를 사용하여 관리되는 풀, 볼륨 및 파일 시스템을 인식한다. Stratis 명령이 아닌 명령을 사용하여 Stratis 파일 시스템을 수동으로 구성하면 해당 메타데 이터를 덮어쓰고 Stratis가 이전에 생성한 파일 시스템 볼륨을 인식하지 못할 수 있다.


명령어 사용 예

1. 다운로드 및 설치

sudo dnf install stratis-cli

systemctl enable --now stratisd

2. 다음으로 시스템에서 사용 가능한 블록 장치를 나열한다. Stratis 풀을 생성하려면 이 정보가 필요하다. 사용 가능한 장치를 나열하려면 lsblk 명령을 사용할 수 있다.

lsblk

3. 사용 가능한 블록 장치 중 하나(예: /dev/sdb)를 사용하여 mypool이라는 새 스토리지 풀을 만든다.

sudo stratis pool create mypool /dev/sdb

4. 풀이 성공적으로 생성되었는지 확인한다.

sudo stratis pool list

5. mypool 스토리지 풀 내에 myfs라는 새 파일 시스템을 만든다.

sudo stratis filesystem create mypool myfs

6. 파일 시스템이 성공적으로 생성되었는지 확인한다.

sudo stratis filesystem list mypool

7. 새로 생성된 파일 시스템의 장치 매퍼 경로를 찾는다.

sudo stratis filesystem list mypool

출력되는 메시지는 DeviceNode 열 아래에 장치 매퍼 경로를 표시한다(예: /dev/stratis/mypool/myfs).

8. 이제 새 파일 시스템의 마운트 지점을 생성한다.

sudo mkdir /mnt/myfs

9. 이전에 얻은 장치 매퍼 경로를 사용하여 파일 시스템을 마운트한다.

sudo mount /dev/stratis/mypool/myfs /mnt/myfs

10. 파일 시스템이 성공적으로 마운트되었는지 확인한다.

df -h

출력되는 메시지에는 /mnt/myfs에 마운트된 새 파일 시스템이 표시되어야 한다.

11. 부팅 시 파일 시스템이 자동으로 마운트되도록 하려면 /etc/fstab 파일에 항목을 추가한다.

vi /etc/fstab (vi, vim 등 파일 편집기 사용)

/dev/stratis/mypool/myfs /mnt/myfs xfs defaults 0 0

이 예에서는 Stratis 스토리지 풀을 생성하고 풀에 파일 시스템을 추가하고 파일 시스템을 마운트하는 방법을 보여주었다. stratis 명령은 스냅샷 생성, 파일 시스템 크기 조정과 같은 Stratis 스토리지 관리를 위한 다른 많은 작업을 제공한다. 

 

원래는 RHEL 9 버전에서 출시할 예정이었으나 아직 안정적이지는 않은지 아직 제대로 나오지는 않은 것 같다. 때문인지 쉽게 스토리지를 관리할 수 있도록 해주는 명령어지만 어려운 느낌이 든다.

반응형
반응형
SWAP

스왑은 Linux 기반 운영 체제에서 가상 메모리로 작동하는 저장 장치(예: HHD, SSD, 가상 저장 장치)의 전용 공간이다. 시스템의 사용 가능한 메모리가 부족할 때 물리적 RAM(Random Access Memory)을 보충하는 데 사용된다. 스왑 공간을 통해 운영 체제는 덜 자주 사용되는 데이터를 RAM에서 스왑 영역으로 이동하여 더 중요하거나 자주 액세스하는 데이터를 위해 RAM의 공간을 확보할 수 있다.

스왑 공간은 스왑 파티션 또는 스왑 파일의 형태일 수 있다. 스왑 파티션은 저장 장치의 전용 파티션인 반면 스왑 파일은 기존 파일 시스템 내의 파일이다. 둘 다 동일한 목적을 수행한다.


SWAP 장점
  • 메모리 부족 상황
    시스템의 RAM이 부족할 때 스왑 공간은 덜 중요한 데이터를 일시적으로 저장하여 더 중요한 데이터를 실제 메모리에 남길 수 있다.

  • 최대 절전 모드
    최대 절전 모드에서 시스템은 RAM의 전체 내용을 스왑 공간에 저장한 다음 전원을 끈다. 시스템이 다시 켜지면 스왑 공간의 내용이 RAM으로 복원되고 시스템은 이전 상태를 재개한다.

스왑 공간의 개념

스왑 공간은 Linux 커널 메모리 관리 하위 시스템에서 제어하는 디스크 영역이다. 커널은 메모리에 비활성 페이지를 보관하여 시스템 RAM을 보완하기 위해 스왑 공간을 사용한다. 시스템의 가상 메모리에는 결합된 시스템 RAM과 스왑 공간이 포함된다.

 

시스템의 메모리 사용량이 정의된 한도를 초과할 경우 커널은 RAM에서 프로세스에 할당된 유휴 메모리 페이 지를 검색한다. 커널은 유휴 페이지를 스왑 영역에 쓰고 RAM 페이지를 다른 프로세스에 다시 할당한다. 프로그램에서 디스크의 페이지에 액세스해야 하는 경우 커널은 메모리의 다른 유휴 페이지를 찾아 디스크에 쓴 다음 스왑 영역에서 필요한 페이지를 불러온다.

 

스왑 영역이 디스크에 상주하므로 스왑은 RAM에 비해 속도가 느리다. 스왑 공간은 시스템 RAM을 늘리는 데 사용되지만, 워크로드에 비해 RAM이 부족한 경우 스왑 공간을 지속 가능한 해결책으로 간주해서는 안 되며, 물리적 메모리를 늘리는 것이 좋다.


스왑 공간 계산

관리자는 시스템의 메모리 워크로드에 따라 스왑 공간의 크기를 조정해야 한다. 애플리케이션 벤더가 스왑 공간 계산에 대한 권장 사항을 제공하는 경우도 있다. 다음 표에는 실제 메모리 총량에 따른 지침이 나와 있다.

RAM SWAP 공간 최대 절전 모드 시 SWAP 공간
2GB 이하 RAM * 2 RAM * 3
2~8 GB RAM과 동일 RAM * 2
8~64GB 4GB 이상 RAM * 1.5
64GB 이상 4GB 이상 권장되지 않음

랩탑 및 데스크탑 최대 절전 모드 기능은 시스템의 전원을 끄기 전에 스왑 공간을 사용하여 RAM 내용을 저장 한다. 시스템을 다시 켜면 커널이 스왑 공간에서 RAM 내용을 복원하므로 완전한 부팅이 필요하지 않다. 해당 시스템의 경우 스왑 공간이 RAM 크기보다 커야 한다.

 

해당 권장 사항은 말 그대로 권장 사항이므로 이렇게 꼭 맞춰서 할 필요는 없다.


스왑 관련 명령어

스왑 공간 활성화 명령어를 시행하기 전에 다음 단계를 수행해야 한다.

 

• 파일 시스템 유형이 linux-swap인 파티션을 생성한다. (parted, fdisk 등 명령어 사용)

• 장치에서 스왑 시그니처를 저장한다. (mkswap 사용)

 

1. SWAP 활설화

sudo swapon /dev/sda5

 

2.  SWAP 비활성화

sudo swapoff /dev/sda5

 

3. 장치 또는 파일에 스왑 영역을 설정

sudo mkswap /dev/sda5


4. 현재 활성화된 스왑 공간을 표시한다.

swapon --show


5. 시스템에서 사용 가능한 물리적 메모리와 스왑 메모리의 총량을 표시

free -h

이 예는 사람이 읽을 수 있는 형식(예: MB, GB)의 메모리 및 스왑 사용량을 보여준다.


6. 지정된 크기로 미리 할당된 스왑 파일 생성

sudo fallocate -l 2G /swapfile

이 예에서는 /swapfile이라는 2GB 스왑 파일을 만든다.

 

7. dd: 이 명령은 지정된 입력 파일을 복사하고 변환하여 스왑 파일을 만들 수도 있다.

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

이 예는 /dev/zero에서 데이터를 복사하여 /swapfile이라는 이름의 2GB 스왑 파일을 생성한다.


8. 스왑 파일의 권한을 변경

sudo chmod 600 /swapfile

이 예제는 /swapfile의 권한을 루트 사용자만 읽고 쓸 수 있도록 설정한다.


9. 시스템이 스왑 공간을 얼마나 적극적으로 사용하는지 결정하는 swappiness 값과 같은 런타임 시 커널 매개변수 구성

sudo sysctl vm.swappiness=10

이 예에서는 swappiness 값을 10으로 설정한다. 즉, 시스템이 덜 적극적으로 스왑 공간을 사용한다.


스왑 공간으로 작업할 때 원하는 결과를 얻으려면 위 예시에서 설명한 명령어들 중 일부를 조합하여 사용해야 할 수도 있다.

반응형
반응형

목차

  1. 디스크 파티셔닝
  2. MBR 파티션 체계
  3. GPT 파티션 테이블
  4. 파티션 관리 명령어 parted

디스크 파티셔닝

디스크 파티셔닝은 디스크 드라이브를 여러 개의 논리 스토리지 파티션으로 나눈다. 파티션을 사용하면 다양 한 요구 사항에 따라 스토리지를 분할할 수 있으며, 이러한 분할은 다양한 이점을 제공한다.

 

• 애플리케이션 또는 사용자가 사용할 수 있는 공간을 제한한다.

• 사용자 파일에서 운영 체제와 프로그램 파일을 구분한다.

• 메모리 스왑을 위해 별도 영역을 생성한다.

• 디스크 공간 사용을 제한하여 진단 도구 및 백업 이미징의 성능을 향상시킨다.


MBR 파티션 체계

MBR(Master Boot Record) 파티셔닝 체계는 BIOS 펌웨어를 실행하는 시스템의 표준이다. 이 스키마는 최 대 네 개의 주 파티션을 지원한다. Linux 시스템에서는 확장 및 논리 파티션을 사용하여 최대 15개의 파티 션을 생성할 수 있다. 파티션 크기가 32비트인 경우 MBR로 파티셔닝되는 디스크 크기는 최대 2TiB일 수 있다.

 

2TiB의 디스크 및 파티션 크기는 이제 일반적으로 초과되기 때문에 결과적으로 레거시 MBR 체계가 GPT(GUID Partition Table) 파티셔닝 체계로 대체되었다.


GPT 파티션 테이블

UEFI(Unified Extensible Firmware Interface) 펌웨어를 실행하는 시스템의 경우 GPT는 디스크 파티셔닝의 표준이며 MBR 체계의 제한 사항을 처리한다. GPT는 최대 128개의 파티션을 제공한다. GPT 체계는 논 리 블록 주소에 64비트를 할당하여 최대 8제비바이트(ZiB) 또는 80억 테비바이트(TiB)의 파티션 및 디스크를 지원한다.

 

GPT 파티셔닝은 MBR에 비해 더 많은 기능과 이점을 제공한다. GPT는 GUID(전역 고유 식별자)를 사용하 여 각 디스크와 파티션을 식별한다. GPT는 기본 GPT를 디스크 헤드에, 백업 보조 GPT를 디스크 끝부분에 배치하여 파티션 테이블을 이중화한다. GPT는 체크섬을 사용하여 GPT 헤더와 파티션 테이블에서 오류를 감지한다.


파티션 관리 명령어 parted

parted 명령어는 Linux 시스템에서 디스크 파티션을 관리하는 데 사용되는 강력한 유틸리티다. HDD 및 SSD와 같은 다양한 유형의 저장 장치에서 파티션을 생성, 크기 조정, 삭제 및 조작할 수 있다. MBR(마스터 부트 레코드) 및 GPT(GUID 파티션 테이블)를 포함한 다양한 파티셔닝 체계와 ext2, ext3, ext4, FAT 및 NTFS와 같은 다양한 파일 시스템을 지원한다.

1. 파티션 정보 표시

parted /dev/sda print

/dev/sda를 확인하려는 장치로 바꾸십시오. 이 명령어는 크기, 파티션 테이블 유형 및 파티션 목록을 포함하여 장치에 대한 정보를 표시한다.

2. 새 파티션 생성

parted /dev/sda

다음으로 mklabel 명령어를 사용하여 파티션 테이블 유형(아직 설정되지 않은 경우)을 설정한다.

(parted) mklabel gpt

이제 mkpart 명령어를 사용하여 새 파티션을 만든다.

(parted) mkpart primary ext4 0% 50%

이 명령어는 ext4 파일 시스템을 사용하여 사용 가능한 디스크 공간의 0%에서 시작하여 50%에서 끝나는 새 기본 파티션을 만든다.

3. 파티션 크기 조정

parted /dev/sda

다음으로 resizepart 명령어를 사용하여 파티션 크기를 조정한다.

(parted) resizepart 1 75%

이 명령어는 사용 가능한 디스크 공간의 75%에서 끝나도록 파티션 번호 1의 크기를 조정한다. 파티션 크기를 조정하면 데이터가 손실될 수 있으므로 이 작업을 수행하기 전에 항상 데이터를 백업하는 것이 좋다

4. 파티션 삭제

parted /dev/sda

그런 다음 rm 명령어를 사용하여 파티션을 제거한다.

(parted) rm 1
이 명령어는 파티션 번호 1을 삭제한다.

5. parted 종료

(parted) quit
반응형
반응형

목차

  1. SELinux 컨텍스트
  2. SELinux 컨텍스트 변경
  3. semanage fcontext
  4. SELinux 기본 파일 컨텍스트 정책 정의

SELinux 컨텍스트

프로세스, 파일, 포트와 같은 모든 리소스에는 SELinux 컨텍스트로 레이블이 지정된다. SELinux는 /etc/ selinux/targeted/contexts/files/ 디렉터리에서 파일 레이블 지정 정책에 대한 파일 기반 데이 터베이스를 유지 관리한다.

 

새 파일은 해당 파일 이름이 기존 레이블 지정 정책과 일치하는 경우 기본 레이블을 가져온다. 새 파일의 이름이 기존 레이블 지정 정책과 일치하지 않는 경우에는 파일에 상위 디렉터리와 동일한 레이블이 상속된다. 레이블 상속을 사용하면 파일에 대한 명시적 정책이 존재하는지의 여부와 관계없이 모든 파일이 생성될 때 항상 레이블이 지정된다.

 

기존의 레이블 지정 정책이 있는 기본 위치에 파일이 생성되거나 사용자 지정 위치에 대한 정책이 있는 경우 새 파일에 올바른 SELinux 컨텍스트로 레이블이 지정된다. 그러나 기존 레이블 지정 정책 없이 파일이 예 기치 않은 위치에 생성되면 상속된 레이블이 새 파일의 의도된 용도에 맞지 않을 수 있다.

 

또한 파일을 새 위치에 복사하면 해당 파일의 SELinux 컨텍스트가 새 위치의 레이블 지정 정책 또는 상위 디렉터리 상속(정책이 없는 경우)으로 결정된 새 컨텍스트로 변경될 수 있다.

 

복사하는 동안 파일의 SELinux 컨텍스트를 보존하여 파일의 원래 위치에 대해 결정된 컨텍스트 레이블을 유지할 수 있다. 예를 들어 cp -p 명령은 가능한 경우 모든 파일 특성을 유지하고, cp -c 명령은 복사하는 동안 SELinux 컨텍스트만 유지한다.


SELinux 컨텍스트 변경

파일의 SELinux 컨텍스트는 semanage fcontext, restorecon, chcon 명령으로 변경한다. 파일의 컨텍스트를 설정하는 데 권장되는 방법은 semanage fcontext 명령을 사용하여 파일 컨텍스트 정책을 생성한 다음 restorecon 명령을 사용하여 정책에 지정된 컨텍스트를 파일에 적용하는 것이다.

 

이 방법을 사용하면 필요할 때마다 restorecon 명령을 사용하여 파일의 레이블을 올바른 컨텍스트로 쉽 게 다시 지정할 수 있다. 이 방법의 장점은 컨텍스트가 무엇인지 기억할 필요가 없으며 파일 집합에서 컨 텍스트를 쉽게 수정할 수 있다는 것이다.

 

chcon 명령은 SELinux 컨텍스트를 파일에 직접 설정하지만 시스템의 SELinux 정책은 참조하지 않는예다. chcon은 테스트 및 디버깅에 유용하지만 이 방법을 사용하여 컨텍스트를 수동으로 설정하는 것은 일시적이다. 수동으로 설정한 파일 컨텍스트는 재부팅 후에도 유지되지만 restorecon을 실행하여 파일 시스템 콘텐츠에 레이블을 다시 지정하는 경우 바뀔 수 있다.


semanage fcontext

파일 컨텍스트 매핑은 SELinux에서 시스템에 있는 파일 및 디렉토리의 보안 컨텍스트를 결정하는 데 사용되며, 이에 따라 적용되는 권한 및 액세스 제어가 결정된다.

semanage fcontext의 목적은 특정 파일 및 디렉토리에 대한 보안 설정 또는 "컨텍스트"를 정의하고 관리하는 것이다. 이러한 컨텍스트는 SELinux에서 각 파일 및 디렉토리에 대해 허용 또는 거부되는 작업(예: 읽기, 쓰기, 실행)을 결정하는 데 사용된다.


SELinux 기본 파일 컨텍스트 정책 정의

semanage fcontext 명령은 기본 파일 컨텍스트를 결정하는 정책을 표시하고 수정한다. semanage fcontext -l 명령을 실행하여 모든 파일 컨텍스트 정책 규칙을 나열할 수 있다. 이러한 규칙은 확장 된 정규 표현식 구문을 사용하여 경로 및 파일 이름을 지정한다.

 

정책을 볼 때 가장 일반적인 확장 정규 표현식은 (/.*)?이며, 일반적으로 디렉터리 이름에 추가된다. 이 표기법은 유머러스하게 해적이라고 한다. 얼굴에 눈 가리개가 있고 그 옆에 갈고리 손이 있는 것처럼 보이 기 때문이다.

 

이 구문은 '슬래시로 시작하고 그 뒤에 임의의 수의 문자가 있는 문자 집합'으로 설명되며, 집합은 있을 수도 있고 없을 수도 있다. 더 간단히 말하면 이 구문은 비어 있는 경우에도 디렉터리 자체와 일치하지만 해당 디렉터리 내에 생성된 거의 모든 파일 이름과 일치한다.


새 파일 컨텍스트 매핑을 추가한다.

semanage fcontext -a -t my_custom_type_t '/path/to/directory(/.*)?'

이 명령은 /path/to/directory 및 그 내용에 대한 새 파일 컨텍스트 매핑을 추가하여 SELinux 유형 my_custom_type_t를 지정된 파일 및 디렉토리에 할당한다.

기존 파일 컨텍스트 매핑을 수정한다.

semanage fcontext -m -t new_type_t '/path/to/directory(/.*)?'

이 명령은 /path/to/directory 및 그 내용에 대한 파일 컨텍스트 매핑을 수정하여 SELinux 유형을 new_type_t로 변경한다.

파일 컨텍스트 매핑을 삭제한다.

semanage fcontext -d '/path/to/directory(/.*)?'

이 명령은 /path/to/directory 및 그 내용에 대한 파일 컨텍스트 매핑을 제거한다.

모든 파일 컨텍스트 매핑을 나열한다.

semanage fcontext -l

이 명령은 현재 시스템에 정의된 모든 파일 컨텍스트 매핑을 나열한다.

semanage fcontext를 사용하여 파일 컨텍스트 매핑을 수정한 후 일반적으로 restorecon 명령을 실행하여 파일 및 디렉토리에 새 컨텍스트를 적용해야 한다.

restorecon -Rv /path/to/directory

이 명령은 semanage fcontext에 의해 정의된 새 매핑을 기반으로 지정된 파일 및 디렉토리의 SELinux 컨텍스트를 업데이트한다.

SELinux 부분은 사실 현업에서는 잘 사용되지는 않는다고 한다. 때문에 참고만하고 시험을 준비하고 있다면 합격을 해야할 테니 알아두는 것이 좋다.

반응형