Computer >> 컴퓨터 >  >> 체계 >> Linux

기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

Python은 Linux 시스템에서 시스템 관리 작업을 자동화하기 위한 훌륭한 프로그래밍 언어입니다. 다양한 라이브러리를 다양하게 선택할 수 있으므로 많은 라이브러리를 사용하여 다양한 작업의 효율성을 높일 수 있습니다. 아래 예를 사용하면 Linux 시스템 명령을 쉽게 실행하고 파일 및 디렉터리로 작업하고 네트워킹 작업을 수행하고 몇 초 만에 인증 프로세스를 자동화할 수 있습니다.

파이썬이란 무엇입니까?

Python은 범용 프로그래밍 언어로 가장 잘 설명될 수 있습니다. 1980년대 후반과 1990년대 초반에 Guido van Rossum이라는 네덜란드 컴퓨터 과학자에 의해 동적으로 유형이 지정된 프로그래밍 언어이자 "ABC" 프로그래밍 언어의 후계자로 개발되었습니다.

오늘날 웹 개발에서 복잡한 수학 및 과학 계산에 이르기까지 다양한 사용 사례와 함께 세계에서 가장 인기 있는 프로그래밍 언어 중 하나로 널리 간주됩니다. 또한 우아한 구문과 비교적 배우기 쉽기 때문에 높이 평가됩니다.

리눅스에 Python 설치

많은 Linux 배포판에는 기본적으로 Python이 이미 설치되어 있습니다. 시스템에 Python 3이 설치되어 있는지 확인하려면 python3 --version 명령 플래그:

python3 --버전
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

Python이 설치된 경우 명령은 Python 구성 버전을 표시합니다.

Ubuntu 및 Debian 시스템에 Python을 설치하려면:

sudo apt 업데이트 &&sudo apt upgrade -ysudo apt install python3.10

또는 Python을 ".tgz" 또는 ".xz" 파일로 다운로드할 수도 있습니다.

"os" 모듈 사용

Linux 시스템 관리자를 위한 최고의 Python 라이브러리 중 하나는 "os" 모듈입니다. 디렉토리 및 파일 처리와 같은 다양한 종류의 작업을 자동화하는 데 사용할 수 있습니다. 시스템 명령을 실행할 수도 있습니다.

예를 들어 모듈을 사용하여 새 디렉토리를 만들 수 있습니다.

#OS 모듈 가져오기import os #새 디렉토리의 이름dir_name ="example" try:#새 디렉토리를 생성합니다. os.mkdir(dir_name) #디렉토리가 성공적으로 생성된 경우 결과를 인쇄합니다. print(f"Directory '{ dir_name}'이(가) 성공적으로 생성되었습니다.") #FileExistsError를 제외한 디렉토리가 이미 있는 경우 결과를 인쇄합니다. 기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법  

다음 모듈을 사용하여 디렉토리를 삭제할 수도 있습니다.

#OS 모듈 가져오기import os #삭제할 디렉토리 이름dir_name ="example" try:#디렉토리를 삭제합니다. os.rmdir(dir_name) #디렉토리가 성공적으로 삭제된 경우 결과를 인쇄합니다. print(f"Directory ' {dir_name}'이(가) 성공적으로 삭제되었습니다.") #FileNotFoundError를 제외하고 디렉터리가 존재하지 않는 경우 결과를 인쇄합니다. print(f"디렉터리 '{dir_name}'이(가) 존재하지 않습니다")
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

파일과 디렉토리의 이름을 바꿀 수 있습니다:

#OS 모듈 가져오기import os #디렉터리 또는 파일의 현재 이름current_name ="example" new_name ="example2.0" try:#디렉터리 또는 파일 이름 변경 내용 =os.rename(current_name, new_name) #내용 인쇄 디렉토리의 print(f"디렉토리/파일 '{current_name}'이(가) '{new_name}'(으)로 성공적으로 이름이 변경되었습니다.") # 디렉토리나 파일이 존재하지 않는 경우 오류 메시지를 인쇄합니다.예외 FileNotFoundError:print(f"Directory/File '{current_name}'이(가) 존재하지 않습니다.")
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

모듈을 사용하여 파일을 쉽게 제거할 수 있습니다.

#OS 모듈 가져오기import os #삭제할 파일의 이름file_name ="example.txt" try:#파일을 삭제합니다. os.remove(file_name) #파일이 성공적으로 삭제되었으면 결과를 출력합니다. print(f" 파일 '{file_name}'이(가) 성공적으로 삭제되었습니다.") #파일이 존재하지 않는 경우 결과를 인쇄합니다. 예외:FileNotFoundError:print(f"파일 '{file_name}'이(가) 존재하지 않습니다")
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

현재 작업 디렉토리를 쉽게 인쇄할 수 있습니다.

#OS 모듈 가져오기import os try:#현재 작업 디렉터리 가져오기 cwd =os.getcwd() #현재 작업 디렉터리 이름을 출력합니다. print(cwd) #오류가 발생하면 다음을 제외하고 출력합니다. print("오류가 발생했습니다.")
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

파일 및 하위 디렉터리와 같은 디렉터리의 내용을 쉽게 확인할 수 있습니다.

#OS 모듈 가져오기import os #디렉토리의 이름dir_name ="example" try:#디렉토리의 내용을 가져옵니다 content =os.listdir(dir_name) #디렉토리의 내용을 인쇄합니다 print(content) #오류를 인쇄합니다 , FileNotFoundError를 제외하고 디렉토리가 존재하지 않는 경우:print(f"Directory '{dir_name}' does not exist")
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

모듈을 사용하여 현재 사용자를 출력합니다:

#OS 모듈 가져오기import os try:#현재 사용자의 이름을 가져옵니다. user =os.getlogin() #현재 사용자의 이름을 인쇄합니다. print(user) #발생할 경우 오류 메시지를 인쇄합니다. ("오류가 발생했습니다.")

또한 다음 모듈을 사용하여 Linux 셸 명령을 실행합니다.

#OS 모듈 가져오기import os #명령을 실행하는 쉘 명령 ="sudo apt update &&sudo apt upgrade -y" try:#시스템 명령을 실행합니다. result =os.system(command) #명령의 결과를 인쇄합니다. (결과) # 오류가 발생한 경우 오류 메시지를 인쇄합니다.예외:print("오류가 발생했습니다")
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

"소켓" 모듈을 사용하여 네트워킹 작업 수행

Python에는 다양한 네트워킹 작업을 수행하고 포트 스캐너 및 비디오 게임 서버와 같은 복잡한 네트워킹 관련 유틸리티를 생성하도록 빌드된 모듈이 있습니다. "소켓" 모듈을 사용하여 시스템에서 일반적인 기본 네트워킹 작업을 수행할 수도 있다는 것은 놀라운 일이 아닙니다.

예를 들어 시스템의 IP 주소와 호스트 이름을 확인할 수 있습니다.

#소켓 모듈 가져오기 import socket try:#호스트 이름 가져오기 host =socket.gethostname() #호스트의 IP 주소 가져오기 ip =socket.gethostbyname(host) #IP 주소 인쇄 print(f"IP 주소:{ip}") #호스트 이름을 인쇄합니다. print(f"Hostname:{host}") #오류가 발생하면 오류 메시지를 인쇄합니다. 

모듈을 사용하여 웹사이트의 IP 주소를 확인할 수도 있습니다.

#소켓 모듈 가져오기import socket try:#확인할 도메인 domain ="duckduckgo.com" #도메인의 IP 주소 가져오기 ip =socket.gethostbyname(domain) #IP 주소 인쇄 print(f"IP 주소 :{ip}") #오류가 발생하면 오류 메시지를 인쇄합니다.예외:print("오류가 발생했습니다")

SSH 서버에 로그인하고 명령을 실행하기 위해 Paramiko 사용

SSH 서버 설정에 로그인하고 거기에서 명령을 실행하는 프로세스를 자동화하려면 "Paramiko" Python 라이브러리가 매우 유용할 것입니다.

먼저 Python의 pip3를 사용하여 라이브러리를 다운로드합니다. 패키지 관리자:

pip3 파라미코 설치
기본 Linux 시스템 관리 및 네트워킹 작업에 Python을 활용하는 방법

모듈을 사용하여 SSH 서버에 로그인하고 명령을 실행합니다.

#Paramiko 라이브러리 가져오기import paramiko #IP 및 자격 증명 지정ip ='127.0.0.1'port =22user ='example'password ='example' 명령 ="uname -a" try:#파라미코 클라이언트 시작 ssh =paramiko .SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #SSH 서버에 연결 ssh.connect(ip, port, user, password) #시스템에서 명령 실행 stdin, stdout, stderr =ssh.exec_command(command ) #명령의 결과를 출력합니다. print(stdout.read().decode()) #오류가 발생한 경우 오류 메시지를 출력합니다. 

자주 묻는 질문(FAQ)

1. 이 모듈과 라이브러리를 사용하려면 Python 3이 필요합니까?

이러한 라이브러리와 모듈의 대부분은 Python 2에서 작동하지만 구문에 차이가 있으며 이러한 코드 조각은 실행되지 않습니다. 일부 변경 사항을 적용하면 Python 2에서 실행되도록 조정할 수 있습니다. 그러나 Python 2는 구식이므로 Python 3을 사용해야 합니다.

2. "os" 및 "socket" 모듈을 설치해야 합니까?

일반적으로 아니오. 대부분의 Python 설치는 상자에서 꺼내자마자 이러한 모듈과 함께 제공됩니다.

3. Paramiko를 사용하여 Unix가 아닌 시스템에 로그인할 수 있습니까?

Paramiko의 개발자에 따르면 현재 이 라이브러리는 SSH를 사용하여 Unix가 아닌 시스템에 로그인하는 데 사용할 수 없습니다.