Я работаю над сценарием Bash (см. ниже), который рекурсивно просматривает каталоги в SAN для файлов с определенным именем файла, которое старше 4 часов. Затем скопируйте все эти файлы в определенное местоположение FTP и отправьте электронное письмо, чтобы сказать, что копирование было завершено. Сценарий работает нормально, за исключением того, что он копирует файлы только в каталог верхнего уровня. Ошибка, которую я получаю в нижних каталогах, заключается в следующем:
#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.
#
Вот сценарий
#!/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" [email protected];
else exit 1
fi
done