hier der aktuelle Stand:
Die Frage ist nun, wie kann ich die Ausgabe die so aussehen kann ( 3 Möglichkeiten) separieren und in Array oder String bringen?
USERDATENSATZ: heinz1121:10101:Heinz Krischeu:/net/home/heinz:/bin/bash
TESTTEMP heinz1121:10101:Heinz Krischeu:/net/home/heinz:/bin/bash
YPCATPASSWDARRAY ['h', 'e', 'i', 'n', 'z', ':', 'x', ':', '1', '1', '2', '1', ':', '1', '0', '1', '0', '1', ':', 'H', 'e', 'i', 'n', 'z', ' ', 'K', 'r', 'i', 's', 'c', 'h', 'e', 'u', ':', '/', 'n', 'e', 't', '/', 'h', 'o', 'm', 'e', '/', 'h', 'e', 'i', 'n', 'z', ':', '/', 'b', 'i', 'n', '/', 'b', 'a', 's', 'h', '\n']
Gibt es sowas wie find bis zum ":" --> dann nächtes Feld ...
Die Felder entsprechen denen aus userlogin,userID, GruppenID, etc.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import string
import os
import subprocess
from subprocess import PIPE, Popen
try:
# FILE oeffen und in eine SEQUENZ / ARRAY schreiben
logfile = file("/var/log/auswertung/logfile.txt", "r") # Oeffnen des Files
logfileinhalt = [line.rstrip('\n') for line in logfile.readlines()] # einlesen des Fileinhaltes
inhalt_logfile = [] # Leere Sequenz / Array erstellen um dann das LOG-File hierrein zu speichern
for line in logfileinhalt:
a = line
inhalt_logfile.append(a)
finally:
logfile.close() # Datei schliessen
# ARRAY / Sequenz sortieren
inhalt_logfile.sort() # Sortieren des Inhaltes der Sequenz/Array
# doppelte Eintraege loeschen und STRINGS zaehlen
userID = list(set(inhalt_logfile)) # Neue Sequenz/Array mit allen Eintraegen aus der originalen Sequenz
# # ABER ohne doppelte Eintraege
for checkuserID in userID:
print checkuserID,
print inhalt_logfile.count(checkuserID)
# userID einem Benutzernamen zuordnen # Benoetigte IMPORTS sind:
# # "import subprocess"
# # "from subprocess import PIPE, Popen"
ypcatpasswdarray=[] # leeres Array erstellen
ypcatpasswdshell = Popen(["ypcat", "passwd"], stdout=PIPE) # Ausgabe von "ypcat passwd" wird gepiped
output = ypcatpasswdshell.communicate()[0] # Die "0" gibt stdout zurück (holt sich die Ausgabe der PIPE)
# Die "1" gibt stderr zurück
print output
# Ausgabe von ypcat passwd wird in das Array geleitet
for line in output: # Nimmt den STRING "output" und leitet alles in das Array
a = line
ypcatpasswdarray.append(a)
# print ypcatpasswdarray[5] # Zaehlt 6 Zeichen (von "0" bis "5")
# print ypcatpasswdarray # Ausgabe des Arrays
#
# Aus dem Array ypcatpasswdarray wird tmparray # Aus einzelnen Buchstaben wird ein Datensatz
# print tmparray[0] gibt einen einzelnen Datensatz aus # Hier den ersten
tmpstring=[]
passwdzeile='' #ein leerer string
for einzelnerbuchstabe in ypcatpasswdarray:
if einzelnerbuchstabe == '\n':
passwdzeile=passwdzeile+einzelnerbuchstabe #zeilenstring zusammensetzen
tmpstring.append(passwdzeile)
passwdzeile='' #zeileninhalte loeschen
else:
passwdzeile+=(einzelnerbuchstabe)
testtemp = ''.join(ypcatpasswdarray)
print tmpstring[2:3]
print testtemp[112:130]
print ypcatpasswdarray[112:130]