Wie man 'atq'-Jobs mit Python auflistet & parst

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

def get_atq_jobs():
    """
    Ruft die Liste der geplanten Jobs aus der at-Queue ab.

    Diese Funktion führt den `atq`-Befehl aus, um die Liste der geplanten Jobs
    zu erhalten, parst die Ausgabe und gibt eine Liste von datetime-Objekten
    zurück, die die geplanten Zeiten der Jobs repräsentieren.

    Returns:
        list: Eine Liste von datetime-Objekten, die die geplanten Zeiten der Jobs repräsentieren.
    """
    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

Beispiel

atq-Ausgabe:

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

gibt zurück

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

Ähnliche Beiträge nach Kategorie: Python Linux