Hack&Dev/Web
스왑 파일(Swap File)이란?
스우스우03
2025. 2. 15. 21:49
1. 스왑 파일(Swap File)이란?
- 스왑 파일(Swap File)은 vi 또는 vim 에디터가 파일을 편집하는 동안 생성하는 임시 파일이다.
- 이는 시스템 오류, 네트워크 끊김, 전력 장애와 같은 예상치 못한 종료 상황이 발생했을 때, 편집 중이던 내용을 복구할 수 있도록 돕는다.
1.1 스왑 파일의 주요 특징
1.1.1 자동 생성
- vi 또는 vim을 사용하여 파일을 수정하면, 자동으로 스왑 파일이 생성된다.
- 일반적으로 스왑 파일의 이름은 .<파일명>.swp 형식이다.
- 예를 들어 index.php를 편집하면 .index.php.swp 파일이 생성될 수 있다.
1.1.2 위치
- 기본적으로 편집 중인 파일과 동일한 디렉터리에 저장된다.
- 특정 환경에서는 /var/tmp/, /tmp/와 같은 임시 디렉터리에 생성될 수도 있다.
1.1.3 파일 형식
- 스왑 파일은 바이너리 데이터로 저장되며, 직접 읽거나 수정하는 것이 어렵다.
- 하지만 vim -r 명령어를 이용해 내용을 복구할 수 있다.
1.2 스왑 파일을 이용한 복구 방법
1.2.1 스왑 파일 존재 여부 확인
ls -la
- 현재 디렉터리에 .index.php.swp 같은 파일이 존재하는지 확인한다.
- 없다면 /tmp/ 또는 /var/tmp/ 디렉터리도 검사해본다.
ls -la /tmp/
ls -la /var/tmp/
1.2.2 스왑 파일을 사용하여 복구하기
- vim -r 명령어를 사용하여 스왑 파일에서 복구를 시도할 수 있다.
vim -r index.php
- 위 명령어를 실행하면 스왑 파일에서 복구할 수 있는 내용이 표시된다.
- 복구할 내용을 확인한 후 저장(:wq)하여 복구된 파일을 유지한다.
1.3 스왑 파일이 없을 경우 복구 방법
1.3.1 백업 파일 확인
- 일부 시스템에서는 .index.php~ 또는 .index.php.bak 같은 백업 파일을 자동 생성할 수도 있다.
- 현재 디렉터리에서 다음 명령어를 실행하여 백업 파일이 있는지 확인한다.
- ls -la | grep index.php
- 백업 파일이 존재한다면 이를 원본 파일로 복사하여 복구할 수 있다.
- cp index.php~ index.php
1.3.2 시스템 로그 활용
- 웹 서버(Apache, Nginx)의 access.log 또는 error.log에서 파일 내용 일부를 확인할 수 있다.
- 웹 서버 로그 위치:
- /var/log/apache2/access.log /var/log/nginx/access.log
- 로그 파일에서 최근 요청된 index.php의 내용을 확인할 수 있다.
- cat /var/log/apache2/access.log | grep "index.php"
1.3.3 서버 스냅샷 및 백업 확인
- 클라우드 환경(AWS, GCP, Azure 등)에서는 자동 스냅샷 기능을 통해 파일을 복원할 수 있다.
- rsync 또는 cron을 이용해 설정된 자동 백업이 있는지 확인한다.