Hi,
ich hab da mal eine Frage und hoffe es kann mir jemand helfen :).
Ich möchte ein Shellscript schreiben, welches in einem spezifiziertem Verzeichnis schaut, ob neue Dateien darin liegen (Uploadverzeichnis). Wenn ja, soll es schauen ob in der Datei /var/logs/xfer.log ein Eintrag zu den Dateien gibt. Wenn ja, soll er unter /var/www/web/uploads ein neues verzeichnis mit dem entsprechend heutigem Datum erstellen und die Datei dort hineinschieben. Wenn das Verzeichnis mit dem heutigen Datum bereits besteht, brauch er es nicht anlegen (was ja auch fehlschlagen würde).
Wie ist soetwas zu Realisieren (schwer/einfach) ?? Habe ein paar (Programmier-)Erfahrungen mit BASIC und PHP ...
Würde mich über konstruktive Hilfe freuen !!
BP
Shellscriptprogrammierung
Re: Shellscriptprogrammierung
Ist sehr einfach zu realisieren.
Google ist dein Freund... such einfach mal nach "bash scripting" o.ä...
Google ist dein Freund... such einfach mal nach "bash scripting" o.ä...
Re: Shellscriptprogrammierung
Hier mal ein Grundgerüst, was ich dir kurz geschrieben habe, das läßt allerdings die xferlog außen vor und schaut nur in das Uploadverzeichnis:
Fallstricke hier:
- ein ftp-Upload könnte noch nicht fertig sein
- eine Datei könnte Umlaute/Leerzeichen enthalten und das Script aus dem Tritt bringen
- es werden nur Dateien verschoben, keine Ordner
Vllt. bringt es dir trotzdem schonmal was.
Code: Select all
#!/bin/sh
###########################
# debugging:
# set -e
# set -x
#
# Die Arbeitsumgebung anlegen:
cd /tmp
mkdir -p ftpupload webuploads
#
# Variablen definieren:
FTPUPLOAD=/tmp/ftpupload
WEBUPLOADS=/tmp/webuploads
#
HEUTE=$WEBUPLOADS/$(date -I)
#
# demofile:
# touch $FTPUPLOAD/neuerUpload
#
# are there new files?
NEWFILES=$( find $FTPUPLOAD -type f -maxdepth 1)
test -x $NEWFILES 2>/dev/null && echo "nix da" && exit 0
echo "Files vorhanden"
mkdir -p $HEUTE
cd $FTPUPLOAD
for i in $NEWFILES; do
i=$(basename $i)
mv $i $HEUTE/
done- ein ftp-Upload könnte noch nicht fertig sein
- eine Datei könnte Umlaute/Leerzeichen enthalten und das Script aus dem Tritt bringen
- es werden nur Dateien verschoben, keine Ordner
Vllt. bringt es dir trotzdem schonmal was.