Як вивести та розібрати завдання 'atq' за допомогою Python

parse_atq.py
#!/usr/bin/env python3
from datetime import datetime
from invoke import run

def get_atq_jobs():
    """
    Отримує список запланованих завдань з черги at.

    Ця функція запускає команду `atq` для отримання списку запланованих завдань,
    розбирає вивід і повертає список об'єктів datetime, що представляють
    запланований час завдань.

    Returns:
        list: Список об'єктів datetime, що представляють запланований час завдань.
    """
    result = run("atq", hide=True)
    jobs = []
    for line in result.stdout.splitlines():
        parts = line.split()
        job_id = parts[0]
        job_datetime_str = " ".join(parts[1:6])
        job_datetime = datetime.strptime(job_datetime_str, "%a %b %d %H:%M:%S %Y")
        jobs.append(job_datetime)
    return jobs

Приклад

Вивід atq:

atq_output.txt
36      Tue Nov 26 12:45:01 2024 a user
35      Tue Nov 26 12:41:05 2024 a user

повертає

atq_parsed_result.py
[datetime.datetime(2024, 11, 26, 12, 45, 1),
 datetime.datetime(2024, 11, 26, 12, 41, 5)]

Дивіться схожі статті за категоріями: Python Linux