- •«Московский технический университет связи и информатики»
- •1. Задание 1. Дистрибутивы Linux 3
- •Задание 1. Дистрибутивы Linux
- •Задание 1.1. Установка дистрибутива Linux в виртуальную машину Oracle vm VirtualBox
- •Задание 1.2. Получение справочной информации о системе и установленных приложениях
- •Задание 2. Функции получения системной информации
- •Задание 2.1. Получение системной информации.
Задание 2. Функции получения системной информации
Цели работы:
получение практических навыков по программированию в Linux
Задание 2.1. Получение системной информации.
Разработать приложение, обеспечивающее получение следующей системной информации:
• Имя компьютера, имя пользователя;
• Версия операционной системы;
• Системные метрики (не менее 3х);
• Функции для работы со временем (не менее 2х);
• Дополнительные API-функции: 4 функции по выбору.
Ниже представлен код программы на языке Python.
'''Библиотеки/модули для получение системной информации'''
import os
import socket
import platform
import psutil
from datetime import datetime
import pytz
# Получаем имя компьютера
def get_computer_name():
computer_name, username = socket.gethostname(), os.getlogin()
return computer_name, username
# Получаем версию операционной системы
def get_os_version():
os_version = platform.system() + ' ' + platform.release()
return os_version
# Получаем системные метрики
def get_system_metrics():
mem = psutil.virtual_memory()
free_mem = mem.available
memory_usage = psutil.virtual_memory().percent
disk_usage = psutil.disk_usage('/').percent
return free_mem, memory_usage, disk_usage
# Функции для работы со временем
def get_time_functions():
current_datetime = datetime.now()
tz = pytz.timezone('Europe/Berlin')
berlin_current_datetime = datetime.now(tz)
return current_datetime, berlin_current_datetime
# Дополнительные API-функции
def additional_functions():
# Получение списка файлов в текущей директории
files = os.listdir('.')
# Проверка существования файла или директории
is_file_exists = os.path.exists('file.txt')
# Создание нового каталога
try:
os.makedirs('new_directory')
new_dir_successful = True
except FileExistsError:
new_dir_successful = False
# Информация о текущем процессе
current_process = psutil.Process(os.getpid())
process_cpu_usage = current_process.cpu_percent()
process_memory_usage = current_process.memory_info().rss
return files, is_file_exists, new_dir_successful, process_cpu_usage, process_memory_usage
# Вызов главной функции
def main():
while True:
print("Выберите опцию: ")
print("1. Имя компьютера, имя пользователя")
print("2. Версия операционной системы")
print("3. Системные метрики")
print("4. Функции для работы со временем")
print("5. Дополнительные API-функции")
option = int(input())
if option == 1:
computer_name, username = get_computer_name()
print(f"Имя компьютера: {computer_name}")
print(f"Имя пользователя: {username}")
elif option == 2:
os_version = get_os_version()
print(f"Версия операционной системы: {os_version}")
elif option == 3:
free_mem, memory_usage, disk_usage = get_system_metrics()
print(f"Количество свободной оперативной памяти: {free_mem:.2f} MB")
print(f"Использование памяти: {memory_usage}%")
print(f"Использование диска: {disk_usage}%")
elif option == 4:
current_datetime, berlin_current_datetime = get_time_functions()
print(current_datetime)
print(berlin_current_datetime)
elif option == 5:
files, is_file_exists, new_dir_successful, process_cpu_usage, process_memory_usage = additional_functions()
print(f"Список файлов в текущей директории: {files}")
print(f"Файл file.txt существует? {is_file_exists}")
if new_dir_successful:
print("Каталог 'new_directory' успешно создан")
else:
print("Директория 'new_directory' уже существует")
print(f"Использование CPU текущего процесса: {process_cpu_usage}%")
print(f"Использование памяти текущего процесса: {process_memory_usage} байт")
elif option == 0:
break
else:
print("Выбрана неверная опция")
if __name__ == '__main__':
main()
На рисунках 11-15 представлено работа программы, которая была описана выше.
Рисунок
11 – Вывод имени компьютера, имени
пользователя
Рисунок 12 – Вывод версии операционной системы
Рисунок 13 – Вывод информации о системных метриках
Рисунок 14 – Вывод функций для работы со временем
Рисунок 15 – Вывод дополнительных API-функции
Вывод
Изучил информацию о составе дистрибутивов Linux. Приобрел практические навыки установки и запуска дистрибутива Linux в виртуальной машине Oracle VM VirtualBox, получения справочной информации о системе и установленных приложениях с помощью интерфейса командной строки. Получил практические навыки по программированию в Linux
