BastardBenny
Newbie
Hallo!
Ich habe mich bisher noch nie mit Scripting usw. beschäftigt...
kaum habe ich meinen neuen Job angefangen, bekomme ich sogleich eine knifflige Skript aufgabe :-\
Folgendes:
Das soll alles automatisch Ausgeführt werden.
Das fertige Script werde ich dann als Cronjob einmal pro Tag ausführen.
So sieht mein Script bis jetzt aus:
Im Moment kann ich leider den FTP Server noch nicht benutzen und deshalb ist es mir auch nicht möglich das Script zu testen.
Kann es so funktionieren wie ich das gemacht habe?
Und dann noch eine wichtige Frage bei der ich nicht weiterkomme:
Wie kann ich automatisch Dateien vom FTP löschen, die älter als 10 Tage sind?
Ich hoffe ihr könnt mir weiterhelfen.
Vielen Dank!
Benny
-----------------------
UPDATE:
OK...konnte es jetzt testen...
es erstellt wunderbar die Ordner die es erstellen sollte, kopiert auch die Dateien auf den Server und löscht sie aus dem Linux verzeichnis
ABER leider kopiert er die Dateien NICHT in die jeweiligen ordner...
d.h. ALLE Dateien und Ordner sind auf /FTP/
mhm...mir ist im moment nicht klar wie ich das anders einstellen könnte
plshelp
Ich habe mich bisher noch nie mit Scripting usw. beschäftigt...
kaum habe ich meinen neuen Job angefangen, bekomme ich sogleich eine knifflige Skript aufgabe :-\
Folgendes:
1. tcpdump wird automatisch beim Serverstart gestartet und zeichnet den ganzen Netzwerkverkehr von einer bestimmten Schnittstelle auf und speichert ihn als 50MB Dateien
2. Die Dateien werden als Datum.cap, Datum.cap2, Datum.cap3, usw. benannt
3. Sind 10 Files erreicht, startet ein Skript und kopiert diese auf einen FTP-Server in einen automatisch generierten Ordner, der ebenfalls als Datum bezeichnet wird.
4. Die Dateien werden aus dem linux Verzeichnis gelöscht.
5. 10 Tage alte Dateien werden vom FTP gelöscht.
Das soll alles automatisch Ausgeführt werden.
Das fertige Script werde ich dann als Cronjob einmal pro Tag ausführen.
So sieht mein Script bis jetzt aus:
Code:
#!/bin/bash
T1=$(find /root/tcpdump/ -iname '*.cap*' -type f | wc -l)
# Variable fuer: Dateien im Verzeichnis
if [ "$T1" -ge 10 ]; then
# Wenn die Anzahl der Dateien 10 oder mehr sind, wird folgendes Ausgefuert
USER=Test
PASS=test1234
FTPSERVER=xx.xx.x.xx
dirs=$(ls -1 *.cap* | sort | egrep -o '^[^.]+' | uniq)
# anlegend er Variablen
for dir in $dirs; do
ftp -i -n $FTPSERVER <<EOF
user $USER $PASS
# mit FTP verbinden
binary
# Uebertragungsart auf Binaer gesetzt
lcd /root/tcpdump/
mkdir $dir
# eventuell noch Pruefung einbauen
mput $dir.cap* /FTP/$dir/
# Anlegen der Verzeichnisse und kopieren der Dateien
quit
EOF
done
cd /root/tcpdump/
rm *.cap*
# loeschen der kopierten Dateien
else
echo kleiner 10
fi
Kann es so funktionieren wie ich das gemacht habe?
Und dann noch eine wichtige Frage bei der ich nicht weiterkomme:
Wie kann ich automatisch Dateien vom FTP löschen, die älter als 10 Tage sind?
Ich hoffe ihr könnt mir weiterhelfen.
Vielen Dank!
Benny
-----------------------
UPDATE:
OK...konnte es jetzt testen...
es erstellt wunderbar die Ordner die es erstellen sollte, kopiert auch die Dateien auf den Server und löscht sie aus dem Linux verzeichnis
ABER leider kopiert er die Dateien NICHT in die jeweiligen ordner...
d.h. ALLE Dateien und Ordner sind auf /FTP/
mhm...mir ist im moment nicht klar wie ich das anders einstellen könnte
plshelp