Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

Python เป็นภาษาโปรแกรมที่ยอดเยี่ยมสำหรับงานดูแลระบบอัตโนมัติบนระบบ Linux ด้วยไลบรารีต่างๆ ที่มีให้เลือกมากมาย หลายไลบรารีจึงสามารถนำไปใช้ในการปรับปรุงประสิทธิภาพของงานต่างๆ ได้ จากตัวอย่างด้านล่าง คุณสามารถเรียกใช้คำสั่งระบบ Linux ทำงานกับไฟล์และไดเร็กทอรี ทำงานเครือข่าย และทำให้กระบวนการตรวจสอบสิทธิ์เป็นอัตโนมัติได้ในเวลาเพียงไม่กี่วินาที

Python คืออะไร

Python สามารถอธิบายได้ดีที่สุดว่าเป็นภาษาโปรแกรมทั่วไป ได้รับการพัฒนาโดยนักวิทยาศาสตร์คอมพิวเตอร์ชาวดัตช์ชื่อ Guido van Rossum ในช่วงปลายทศวรรษ 1980 และต้นทศวรรษ 1990 ให้เป็นภาษาการเขียนโปรแกรมที่พิมพ์แบบไดนามิกและสืบทอดต่อจากภาษาการเขียนโปรแกรม “ABC”

ปัจจุบัน ภาษานี้ถือว่าเป็นหนึ่งในภาษาโปรแกรมที่ได้รับความนิยมมากที่สุดในโลก โดยมีการใช้งานตั้งแต่ทุกอย่างในการพัฒนาเว็บ ไปจนถึงคณิตศาสตร์ที่ซับซ้อนและการคำนวณทางวิทยาศาสตร์ นอกจากนี้ยังนิยมใช้ไวยากรณ์ที่หรูหราและเรียนรู้ได้ง่าย

การติดตั้ง Python บน Linux

ลีนุกซ์รุ่นต่างๆ จำนวนมากได้ติดตั้ง Python ไว้แล้วโดยปริยาย. หากต้องการตรวจสอบว่าระบบของคุณติดตั้ง Python 3 หรือไม่ คุณสามารถเรียกใช้ python3 คำสั่งด้วย --version ธง:

python3 --version
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

หากติดตั้ง Python ไว้ คำสั่งจะแสดงเวอร์ชันของการกำหนดค่า Python ของคุณ

วิธีติดตั้ง Python บนระบบ Ubuntu และ Debian:

sudo apt update && sudo apt upgrade -y
sudo apt install python3.10

หรือจะดาวน์โหลด Python เป็นไฟล์ “.tgz” หรือ “.xz” ก็ได้

การใช้โมดูล “os”

หนึ่งในไลบรารี Python ที่ดีที่สุดสำหรับผู้ดูแลระบบ Linux คือโมดูล "os" คุณสามารถใช้สำหรับการทำงานอัตโนมัติประเภทต่างๆ เช่น การจัดการไดเร็กทอรีและไฟล์ นอกจากนี้ยังสามารถเรียกใช้คำสั่งของระบบได้

ตัวอย่างเช่น คุณสามารถใช้โมดูลเพื่อสร้างไดเร็กทอรีใหม่:

#Import the OS module
import os
 
#Name of the new directory
dir_name = "example"
 
try:
 
#Creates the new directory
    os.mkdir(dir_name)
 
#Prints the result, if the directory was successfully created
    print(f"Directory '{dir_name}' created successfully")
 
#Prints the result, in case the directory already exists
except FileExistsError:
    print(f"Directory '{dir_name}' already exists")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

คุณยังสามารถลบไดเร็กทอรีโดยใช้โมดูล:

#Import the OS module
import os
 
#Name of the directory to be deleted
dir_name = "example"
 
try:
 
#Deletes the directory
    os.rmdir(dir_name)
 
#Prints the result, if the directory was successfully deleted
    print(f"Directory '{dir_name}' deleted successfully")
 
#Prints the result, if the directory doesn't exist
except FileNotFoundError:
    print(f"Directory '{dir_name}' doesn't exist")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

คุณสามารถเปลี่ยนชื่อไฟล์และไดเร็กทอรี:

#Import the OS module
import os
 
#Current name of the directory or file
current_name = "example"
 
new_name = "example2.0"
 
try:
 
#Renames the directory or file
    content = os.rename(current_name, new_name)
 
#Prints the contents of the directory
    print(f"Directory/File '{current_name}' was successfully renamed to '{new_name}'")
 
#Print the error message, if the directory or file doesn't exist
except FileNotFoundError:
    print(f"Directory/File '{current_name}' doesn't exist")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

ไฟล์สามารถถอดออกได้ง่ายโดยใช้โมดูล:

#Import the OS module
import os
 
#Name of the file to be deleted
file_name = "example.txt"
 
try:
 
#Deletes the file
    os.remove(file_name)
 
#Prints the result, if the file was successfully deleted
    print(f"File '{file_name}' deleted successfully")
 
#Prints the result, if the file doesn't exist
except FileNotFoundError:
    print(f"File '{file_name}' doesn't exist")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

ไดเร็กทอรีการทำงานปัจจุบันสามารถพิมพ์ได้ง่าย:

#Import the OS module
import os
 
try:
 
#Gets the current working directory
    cwd = os.getcwd()
 
#The name of the current working directory is printed out
    print(cwd)
 
#If an error occurs, it is printed out
except:
    print("An error occurred")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

สามารถตรวจสอบเนื้อหาของไดเร็กทอรี เช่น ไฟล์และไดเร็กทอรีย่อยได้อย่างง่ายดาย:

#Import the OS module
import os
 
#Name of the directory
dir_name = "example"
 
try:
 
#Gets the contents of the directory
    content = os.listdir(dir_name)
 
#Prints the contents of the directory
    print(content)
 
#Prints the error, if the directory doesn't exist
except FileNotFoundError:
    print(f"Directory '{dir_name}' doesn't exist")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

ใช้โมดูลเพื่อพิมพ์ผู้ใช้ปัจจุบัน:

#Import the OS module
import os
 
try:
 
#Gets the name of the current user
    user = os.getlogin()
 
#Prints the name of the current user
    print(user)
 
#Prints an error message, in case it occurs
except:
    print("An error occurred")

รันคำสั่งเชลล์ Linux โดยใช้โมดูล:

#Import the OS module
import os
 
#The shell command to run
command = "sudo apt update && sudo apt upgrade -y"
 
try:
 
#Runs the system command
    result = os.system(command)
 
#Prints the result of the command
    print(result)
 
#Prints an error message, in case an error occurs
except:
    print("An error occurred")
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

ดำเนินงานเครือข่ายโดยใช้โมดูล “ซ็อกเก็ต”

Python มีโมดูลที่สร้างขึ้นเพื่อทำงานเครือข่ายต่างๆ และสร้างยูทิลิตี้ที่เกี่ยวข้องกับเครือข่ายที่ซับซ้อน เช่น เครื่องสแกนพอร์ตและเซิร์ฟเวอร์วิดีโอเกม ไม่น่าแปลกใจเลยที่โมดูล "ซ็อกเก็ต" ยังสามารถใช้เพื่อทำงานเครือข่ายทั่วไปและขั้นพื้นฐานในระบบของคุณ

ตัวอย่างเช่น คุณสามารถตรวจสอบที่อยู่ IP และชื่อโฮสต์ของระบบ:

#Import the socket module
import socket
 
try:
 
#Getting the hostname
    host = socket.gethostname()
 
#Getting the IP address of the host
    ip = socket.gethostbyname(host)
 
#Prints the IP address
    print(f"IP address: {ip}")
 
#Prints the hostname
    print(f"Hostname: {host}")
 
#Prints an error message, if an error occurs
except:
    print("An error occurred")

คุณยังสามารถใช้โมดูลเพื่อตรวจสอบที่อยู่ IP ของเว็บไซต์:

#Import the socket module
import socket
 
try:
 
#Domain to be checked
    domain = "duckduckgo.com"
 
#Getting the IP address of the domain
    ip = socket.gethostbyname(domain)
 
#Prints the IP address
    print(f"IP address: {ip}")
 
#Prints an error message, if an error occurs
except:
    print("An error occurred")

การใช้ Paramiko สำหรับการเข้าสู่ระบบเซิร์ฟเวอร์ SSH และเรียกใช้คำสั่ง

หากคุณต้องการทำให้กระบวนการล็อกอินเข้าสู่การตั้งค่าเซิร์ฟเวอร์ SSH และรันคำสั่งที่นั่นโดยอัตโนมัติ ไลบรารี Python “Paramiko” จะมีประโยชน์อย่างยิ่ง

ก่อนอื่นให้ดาวน์โหลดไลบรารี่โดยใช้ pip3 . ของ Python ตัวจัดการแพ็คเกจ:

pip3 install paramiko
วิธีการใช้ Python สำหรับ Basic Linux System Administration and Networking Tasks

ใช้โมดูลเพื่อเข้าสู่ระบบเซิร์ฟเวอร์ SSH และเรียกใช้คำสั่ง:

#Importing the Paramiko library
import paramiko
 
#Specifying the IP and credentials
ip = '127.0.0.1'
port = 22
user = 'example'
password = 'example'
 
command = "uname -a"
 
try:
 
#Initiating the Paramiko client
    ssh = paramiko.SSHClient()
 
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 
#Connecting to the SSH server
    ssh.connect(ip, port, user, password)
 
#Running a command on the system
    stdin, stdout, stderr = ssh.exec_command(command)
 
#Prints the result of the command
    print(stdout.read().decode())
 
#Prints an error message, in case an error occurs
except:
    print("An error occurred")

คำถามที่พบบ่อย

1. ฉันต้องใช้ Python 3 เพื่อใช้โมดูลและไลบรารีเหล่านี้หรือไม่

แม้ว่าไลบรารีและโมดูลเหล่านี้ส่วนใหญ่จะทำงานกับ Python 2 ได้ แต่ไวยากรณ์มีความแตกต่างกัน และโค้ดเหล่านี้จะไม่ทำงาน ด้วยการเปลี่ยนแปลงบางอย่าง คุณสามารถปรับเปลี่ยนให้ทำงานใน Python 2 ได้ อย่างไรก็ตาม Python 2 นั้นล้าสมัย ดังนั้นคุณควรใช้ Python 3

2. ฉันจำเป็นต้องติดตั้งโมดูล “os” และ “socket” หรือไม่

โดยทั่วไปไม่มี การติดตั้ง Python ส่วนใหญ่จะมาพร้อมกับโมดูลเหล่านี้ตั้งแต่แกะกล่อง

3. ฉันสามารถใช้ Paramiko เพื่อเข้าสู่ระบบที่ไม่ใช่ Unix ได้หรือไม่

ตามที่ผู้พัฒนา Paramiko บอก ในขณะนี้ ไลบรารีไม่สามารถใช้เพื่อเข้าสู่ระบบที่ไม่ใช่ Unix ด้วย SSH