Ich arbeite an einem Bash-Skript (siehe unten), das Verzeichnisse auf einem SAN rekursiv nach Dateien mit einem bestimmten Dateinamen durchsucht, der neuer als 4 Stunden ist. Dann kopiert es alle diese Dateien an einen bestimmten FTP-Speicherort und sendet eine E-Mail, dass die Kopie abgeschlossen ist. Das Skript funktioniert einwandfrei, kopiert aber nur Dateien auf der obersten Verzeichnisebene. Die Fehlermeldung, die ich in den unteren Verzeichnissen erhalte, lautet wie folgt:
#
remote: -v
ftp: local: -v: No such file or directory
local: ./Test01/test02/folder02_01_1200_m30.mp4 remote: ./Test01/test02/folder02_01_1200_m30.mp4
229 Entering Extended Passive Mode (|||45127|)
550 ./Test01/test02/folder02_01_1200_m30.mp4: File does not exist. (2)
221 Goodbye.
#
Hier ist das Skript
#!/bin/bash
#The location from where the script should search
GSPORIGIN='/Volumes/folder01/folder02'
#File Names to be moved
FILE1='*1200_m30.mp4'
#FTP Details
HOST='xxxx.upload.com'
USER='xxxxxxx'
PASSWD='xxxxxxxxxxxx'
#the destination directory on the FTP
DESTDIR="/8619/_!/TEST"
# Go to the location from where the search should start
cd $GSPORIGIN
for file in `find . -type f -name "*1200_m30.mp4" -mmin -240`
do
echo $file
if [ -f $file ] ; then
ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
cd $DESTDIR
mput -v $file
EOT
echo "$file has been copied to FTP" | mail -s "$file has been copied to FTP in Directory $DESTDIR" xxx.xxx@xxx.com;
else exit 1
fi
done