[파이썬] 리눅스 네트워크 설정 관리 스크립트

리눅스에서 네트워크 설정을 관리하는 것은 중요한 작업입니다. 네트워크 설정을 일일히 수동으로 변경하는 것은 번거롭고 시간이 많이 소요되는 작업일 수 있습니다. 이러한 문제를 해결하기 위해 파이썬 스크립트를 사용하여 리눅스 네트워크 설정을 자동화할 수 있습니다.

스크립트 목표

이 스크립트의 목표는 리눅스 서버의 네트워크 설정을 관리하고 변경하는 것입니다. 스크립트를 사용하여 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버 등을 설정하고, 네트워크 인터페이스를 활성화 또는 비활성화할 수 있습니다. 또한, 네트워크 설정 변경 후 자동으로 네트워크 서비스를 재시작할 수 있습니다.

사용 방법

1. 라이브러리 설치

스크립트를 실행하기 전에 필요한 라이브러리를 설치해야 합니다. netifacessubprocess 라이브러리가 필요합니다. 다음 명령을 사용하여 설치할 수 있습니다:

pip install netifaces

2. 스크립트 작성

아래는 예시로 사용할 스크립트입니다.

import netifaces as ni
import subprocess

# 네트워크 인터페이스 이름
interface = "eth0"

# IP 주소 설정 함수
def set_ip_address(ip_address):
    subprocess.run(["ifconfig", interface, ip_address])

# 서브넷 마스크 설정 함수
def set_subnet_mask(subnet_mask):
    subprocess.run(["ifconfig", interface, "netmask", subnet_mask])

# 게이트웨이 설정 함수
def set_gateway(gateway):
    subprocess.run(["route", "add", "default", "gw", gateway])

# DNS 서버 설정 함수
def set_dns_server(dns_server):
    subprocess.run(["echo 'nameserver", dns_server, ">'", "/etc/resolv.conf"])

# 네트워크 인터페이스 활성화 함수
def enable_interface():
    subprocess.run(["ifconfig", interface, "up"])

# 네트워크 인터페이스 비활성화 함수
def disable_interface():
    subprocess.run(["ifconfig", interface, "down"])

# 예시 사용법
set_ip_address("192.168.1.100")
set_subnet_mask("255.255.255.0")
set_gateway("192.168.1.1")
set_dns_server("8.8.8.8")
enable_interface()

3. 스크립트 실행

위의 스크립트를 network_config.py와 같은 파일로 저장한 후, 다음 명령을 사용하여 스크립트를 실행할 수 있습니다.

python network_config.py

결론

위의 스크립트는 파이썬을 사용하여 리눅스 네트워크 설정을 자동화하는 간단한 예시입니다. 이를 기반으로 필요에 맞게 수정하여 실제 환경에서 사용할 수 있습니다. 네트워크 설정 관리를 자동화함으로써 시간을 절약하고 실수를 방지할 수 있습니다.