[Aws cloud school 33일차]_심볼릭 링크 실습

miniPig·2024년 6월 30일

AWS cloud school

목록 보기
16/31

혼자 실습해보기 #1 test.service에 심볼릭 링크 걸기

frodo를 계속 적어주는 test.sh를 만들어서

해당 서비스에 심볼릭 링크를 걸어주어 reboot 시에도 재시작되도록 해주기

kill과 stop 명령어 실습해보기

1. GCP로 vm1 인스턴스 생성

2. frodo를 계속 적어주는 [test.sh] 만들기

→ root 계정이 아니기 때문에 sudo 명령어를 이용해 test.sh를 생성한 뒤 아래 코드를 넣어준다.

💡 sudo = root 권한?
✔️ 일반적으로 시스템 관리자 또는 root 권한이 필요한 명령을 실행할 때 사용하는 명령어
✔️ sudo를 사용하면 일시적으로 또는 특정 권한을 가진 사용자가 root 권한을 획득

#!/bin/sh
while :
do
    echo "hi frodo" >> /tmp/test.log
    sleep 10
done

→ 위 반복문(test.sh 실행)의 결과는 /tmp/test.log에 저장된다.

→ test.sh의 실행 권한을 stat명령어를 통해 확인하니 실행 권한이 없는 것을 확인할 수 있다.

→ 실행 권한을 줘야 test.sh를 실행할 수 있다.

 chmod +x /usr/local/bin/test.sh     //실행 권한 부여 명령어

→ 위에서 말한 것과 같이, root 계정이 아니므로 sudo 명령어를 사용해 실행 권한을 부여해준다.

→ [test.sh] 파일을 실행했더니,

→ 계속 frodo가 찍히는 것을 확인할 수 있다.

tail -f /tmp/test.log

실행할 파일을 만들었으니, 서비스도 만들어줘야 한다!

3. test.service 서비스 만들어주고 심볼릭 링크 걸기

sudo vi /etc/systemd/system/test.service

[Unit]
Description=systemd practice.

[Service]
ExecStart=/bin/sh /usr/local/bin/test.sh
Restart=on-failure     //실패할 시 재시작!!

[Install]
WantedBy=multi-user.target

→ test.service에 심볼릭 링크가 생성된 것을 알 수 있다.

//서비스 목록 리로드
sudo systemctl daemon-reload

//서비스 구동 및 시작 목록에 추가
sudo systemctl start test.service
sudo systemctl enable test.service

4. Reboot

→ test.sh를 실행시켜주지 않아도 test.sh가 계속 실행되는 것을 알 수 있다.

[chohyeon1208@vm1 ~]$ sudo ps aux | grep test    // 실행되고 있는 파일 확인 명령어

test.sh 파일이 계속 작동하고 있는 것을 확인할 수 있다.

[chohyeon1208@vm1 ~]$ sudo kill -9 670    

→ 파일을 kill 해도 다시 살아나는 것을 볼 수 있다.

→ 이렇게 프로세스 관리 가능!!

→ 어떻게 하면 죽일 수 있을까?

[chohyeon1208@vm1 ~]$ sudo systemctl stop test

→ test.sh가 더 이상 실행되지 않는 것을 확인할 수 있다.

✔️하드링크와 심볼릭 링크

→ 두 개 모두 처리하는 역할은 같지만, 개념은 약간 다르다.

윈도우로 치면 “바로라기”와 같은 개념으로, 리눅스에도 링크 기능이 있다.

특정 파일이나 디렉토리를 링크를 걸어 사용할 수 있는데, 링크에는 2가지 종류가 있다.

  • 하드링크 → 원본이 사라져도 유지
  • 심볼릭 링크 → 원본이 사라지면 유지되지 않음

✔️ 하드 링크
→ 원본 파일과 동일한 inode를 가진다.
(→ 원본 파일이 두 개의 파일(원본 파일, 하드 링크 파일)로 서로 다른 이름으로 존재하지만 같은 파일 정보를 가지게 되는 것이다.)

✔️ 심볼릭 링크
원본 파일의 이름을 가리키는 링크
장점 : 전혀 다른 파일이라도 원본 파일과 이름이 같아면 계속 사용 가능!

inode란?

inode = index node

  • 파일 시스템에 있는 각 파일과 디렉토리에 대한 메타 데이터 정보를 저장하는 데이터 구조
  • 일반적으로 파일 시스템은 디스크에 데이터를 저장할 때, 실제 데이터 블록들과 각 파일 또는 디렉토리에 대한 메타 데이터(데이터에 대한 데이터)를 분리하여 저장한다.
    메타 데이터는 파일의 이름, 소유자, 권한, 파일 크기 등을 포함하며, 이러한 정보는 'inode'에 저장됩니다.
  • 각 파일이나 디렉토리는 고유한 inode를 가지며, 이 번호를 통해 파일 시스템 내에서 식별된다.

0개의 댓글