파일 및 디렉토리 액세스 로그를 작성하는 것은 애플리케이션 또는 시스템의 보안 및 모니터링에 중요한 역할을 합니다. 이를 통해 액세스한 파일이나 디렉토리를 추적하고, 관련 정보를 수집하거나 분석할 수 있습니다. 이번 글에서는 Python의 shutil
모듈을 사용하여 파일 혹은 디렉토리 액세스 로그를 작성하는 방법을 살펴보겠습니다.
shutil
모듈 소개
shutil
모듈은 파일 및 디렉토리 작업을 위한 유용한 함수들을 제공하는 Python의 표준 라이브러리입니다. 이 모듈을 사용하면 파일 복사, 디렉토리 생성 혹은 삭제와 같은 작업을 쉽게 처리할 수 있습니다.
로그 파일 생성 및 기록
먼저, shutil
모듈을 사용하여 파일에 로그를 기록하는 방법을 알아보겠습니다. 아래와 같은 코드를 사용하여 로그 파일을 생성하고, 로그를 기록할 수 있습니다.
import shutil
import datetime
log_file = "access_log.txt"
def write_log(message):
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_entry = f"[{timestamp}] {message}\n"
with open(log_file, "a") as file:
file.write(log_entry)
# 파일 액세스 로그 작성 예시
file_name = "example_file.txt"
write_log(f"File accessed: {file_name}")
위의 코드에서, write_log()
함수는 shutil
모듈을 사용하여 액세스 로그를 작성하는 역할을 합니다. datetime
모듈을 사용하여 현재 시간을 기록하여 로그에 추가하였습니다. 로그는 access_log.txt
파일에 누적하여 작성됩니다.
디렉토리 액세스 로그 작성
이번에는 디렉토리 액세스 로그를 작성해보겠습니다. 디렉토리에 대한 로그를 작성할 때도 shutil
모듈의 일부 함수를 사용할 수 있습니다. 아래는 디렉토리 액세스 로그를 작성하는 예시입니다.
import shutil
import datetime
log_file = "access_log.txt"
def write_log(message):
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_entry = f"[{timestamp}] {message}\n"
with open(log_file, "a") as file:
file.write(log_entry)
# 디렉토리 액세스 로그 작성 예시
directory_path = "/path/to/example_directory"
write_log(f"Directory accessed: {directory_path}")
위의 코드에서, write_log()
함수를 사용하여 디렉토리 액세스 로그를 작성합니다. 마찬가지로 datetime
모듈을 사용하여 현재 시간을 기록하고, 로그는 access_log.txt
파일에 추가됩니다.
마치며
이번 글에서는 shutil
모듈을 사용하여 파일 및 디렉토리 액세스 로그를 작성하는 방법을 알아보았습니다. 로그 파일을 통해 액세스한 파일이나 디렉토리의 정보를 추적하고, 보안 및 모니터링 목적으로 활용할 수 있습니다. Python의 shutil
모듈은 이러한 작업을 간단하게 처리할 수 있는 유용한 도구입니다.
참고 자료: