Hallo ich habe ein python Skript, dass die ausgabe eines Befehls filtert und das Datum des letzten Updates in Sekunden ausgibt.
1 2 3 4 5 6 7 8 9 | root@server:/usr/local/bin# /opt/sophos-av/bin/savdstatus --version Copyright 1989-2017 Sophos Limited. All rights reserved. Sophos Anti-Virus = 9.x.x Build Revision = 2634748 Threat detection engine = 3.69.2 Threat data = 5.48 Threat count = 45219768 Threat data release = Di 06 Feb 2018 00:00:00 Last update = Do 01 Mär 2018 15:33:01 CET |
Das Python Skript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/python3 import datetime import fileinput import locale locale.setlocale(locale.LC_ALL, '') for line in fileinput.input(): if line.startswith('Last update'): date_string = line.split(' = ')[-1].strip() dt = datetime.datetime.strptime(date_string, '%a %d %b %Y %H:%M:%S %Z') print(int(dt.timestamp())) break |
Das Problem ist nur, das ich bei der Ausführung des Skripts nur als root User eine Ausgabe erhalte, als normaler User aber nicht.
1 2 | root@server:/usr/local/bin# ls -la parse_date.py -rwxr-x--x 1 prtgmonitor prtgmonitor 355 Apr 12 16:30 parse_date.py |
Ich habe schon sämtliche Ausführrechte und nutzer/gruppen vergeben, kann den Fehler jedoch nicht finden