PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cron ausgabe



DBGTMaster
27.03.15, 08:37
Hallo,

verwende Debian 7

musste gestern feststellen, dass die gesamte Ausgabe eines Skriptes, welches via cronjob gestartet wurde, auf der Festplatte zwischengespeichert wird.
Das die Ausgabe zwischengespeichert wird, ist mir soweit klar, aber nur wohin??

Ich sehe nur, dass bei "df -h" der belegte Speicherplatz sich verringert, aber via "du -sm *" bzw "du -am" wachsen keine Dateien.

Daher, wohin speichert cron die Ausgabe zwischen?

Kann man ganz einfach reproduzieren:
Shell Skript erstellen:

#!/bin/bash
while [ true ]; do
echo "aaaasaaaaaaaaaaaaaassss"
done

Via cron starten, man sieht via df, dass die root anwächst, aber via "du" ist keine Datei zu finden, welche wächst.

Bitte um Aufklärung!

lG

marce
27.03.15, 13:32
kannst ja mal parallel mit lsof schauen, welche Dateien gerade offen sind.

(vermuten würde ich, daß da was unter /tmp passiert)

DBGTMaster
27.03.15, 13:50
Hi marce,

folgende Rückgabe beim cron:
lsof -c command
test.sh 7197 root 1u REG 254,0 242539473 2102948 /tmp/tmpfKjEKhd (deleted)
test.sh 7197 root 2u REG 254,0 242539506 2102948 /tmp/tmpfKjEKhd (deleted)

Scheint also, dass diese Datei sofort beim Cronstart wieder gelöscht wird, aber nicht freigegeben wird, weil eben der cron- process die tmp- Datei geöffnet hat. Daher sieht "du" diese Datei auch nicht...

Gibt es eine möglichkeit, mit zB. "du -s" diese Datei trotzdem anzeigen lassen??

lG

DrunkenFreak
28.03.15, 11:47
Solange die Datei noch im Zugriff ist, wird sich nicht physikalisch gelöscht. Daher solltest du irgendwo in /proc/$PID/fd die Datei finden. Diese kannst du normalerweise öffnen.