Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Größe der Home Directories ermitteln

Frage Linux

Mitglied: molluska

molluska (Level 1) - Jetzt verbinden

17.11.2010, aktualisiert 13:35 Uhr, 3449 Aufrufe, 4 Kommentare

Hi,
zunächst möchte ich kurz anmerken, dass ich nicht genau wusste, in welchen Bereich mein Problem passt.
Betriebssystem: Red Hat
stat -f xxx
File: "xxx"
ID: 3e70070c7d4 Namelen: 255 Type: UNKNOWN (0xa501fcf5)
Blocks: Total: 157286400 Free: 37133190 Available: 34839097 Size: 1024
Inodes: Total: 10715956 Free: 9283294

Nun zu meinem Problem:

Ich soll die Größen der Home Directories ermitteln.
Sollte ja eigentlich kein Problem sein 'du -sh'.
Jedoch wurde mir vorgegeben, dass ich den kdirstat-cache-writer verwenden soll.
Soweit so gut.
Das Script soll in Python realisiert werden.

Der relevante Teil des Scriptes sieht so aus:
01.
def callkDirStat(path, logger): 
02.
  if os.path.islink(path): 
03.
    kDirPath=''+ path + '/' 
04.
  else: 
05.
    kDirPath=''+ path + '' 
06.
  abPath=sys.path[0] 
07.
  kDirFileLines=commands.getoutput('/usr/bin/perl \ 
08.
                                  '+ abPath +'/kdirstat-cache-writer.pl \ 
09.
                                  '+ kDirPath +'').split('\n') 
10.
  size=float(0) 
11.
  for line in range(8,len(kDirFileLines)-1): 
12.
    buffer = kDirFileLines[line].strip(); 
13.
    buffer = buffer.split() 
14.
    if(len(buffer)>2): 
15.
      try: 
16.
        size+=float(buffer[2]) 
17.
      except ValueError: 
18.
        if kDirFileLines[line].find('Permission denied')!=-1 : 
19.
          logger.warn(kDirFileLines[line]) 
20.
  size=size/1024 
21.
  return size
Script läuft, ich kriege ein Ergebnis:
146319.87793 kB
146319/1024 = 142 MB

Nun liefert mir 'du -sh':
80M

'du -sb' liefert mir:
149837413 Byte
149837413/1024=146325 kB
146325 /1024 = 142 MB

Sieht dem oberen Wert doch recht ähnlich?

Nun habe ich gesehen das 'du -b' die Block-size in 1 Byte ändert.

Bei du -s -B 1 /xxx/mollus/ erhalte ich:
83837952 Byte
83837952 /1024=81873 kB
81873 /1024=79 MB

Hm super... also das gleiche, wie bei 'du -sh'

Das Ergebnis von du -sh soll das "richtige" Ergebnis sein. Ich soll du -sh jedoch nicht verwenden.

Das lustige ist, dass das Script auf einem anderem Mount korrekt funktioniert; also korrekte Ergebnisse liefert.
Auf "meinem" Mount nur eben nicht.
Nun dachte ich, es könnte an verschiedenen Block-sizes liegen.

"Meine" Block-size sollte 4096 sein. Also dachte ich, ich kann einfach rechnen:
*4096
/1024
(für die Byte)
/1024
(für die kB)
/1024
(für die MB)
Ergebnis: 571 MB also komplett falsch.

Nun weiß ich vor lauter Zahlen einfach nicht mehr weiter

Wäre nett, wenn mir jemand helfen könnte.

Danke und viele Grüße
molluska
Mitglied: micneu
18.11.2010 um 11:00 Uhr
was sagt der auftraggeber?
hast du ihm das so präsentiert?
in python kann ich leider garnichts, perl da könnte icbh denke ich helfen

gruß michael
Bitte warten ..
Mitglied: molluska
18.11.2010 um 11:17 Uhr
Der Auftraggeber sagt, dass das gehen muss.
'du -sh' wäre zu langsam, außerdem braucht er die Cache-Files.
Ich hab Perfomance-Tests gemacht, die sogar ergeben haben, dass 'du -sh' um einiges schneller ist.
Dies habe ich dem Auftraggeber präsentiert, jedoch will dieser eben die cache-files vom kdirstat-cache-writer.
Leider war Python Vorgabe.
Mein Problem kann ich erst nächste Woche im Meeting präsentieren. Habe gehofft bis dahin eine Lösung zu finden.

Gruß Katharina
Bitte warten ..
Mitglied: micneu
19.11.2010 um 09:51 Uhr
da kann ich dir nicht weiter helfen, schon mal in python foren gefragt?

gruß michael
Bitte warten ..
Mitglied: molluska
19.11.2010 um 10:00 Uhr
Noch nicht.
Aber das Problem sollte nicht im Python Code liegen, sondern eher im Perl (kdirstat-cache-writer.pl) bzw. am lstat().

Grüße
Katharina
Bitte warten ..
Ähnliche Inhalte
Hyper-V
gelöst VHD Hyper-V ändert Größe nicht nach Änderung - Wo.? (4)

Frage von imacer zum Thema Hyper-V ...

Festplatten, SSD, Raid
Speicherverbrauch ermitteln (8)

Frage von Yannosch zum Thema Festplatten, SSD, Raid ...

Netzwerkmanagement
gelöst Neue Cisco Switche im Netzwerk ermitteln um diese zu konfigurieren (9)

Frage von WinLiCLI zum Thema Netzwerkmanagement ...

Batch & Shell
gelöst Größe einer Datei per BATCH in eine TXT schreiben (5)

Frage von marvinpl zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...