Je travaille sur un script Bash script (voir ci-dessous) qui recherche de manière récursive dans les répertoires d'un SAN les fichiers dont le nom est plus récent que 4 heures. Il copie ensuite tous ces fichiers vers un emplacement FTP spécifique et envoie un courrier électronique pour indiquer que la copie a été effectuée. Le script script fonctionne bien sauf qu'il ne copie que les fichiers du répertoire de premier niveau. L'erreur que j'obtiens pour les répertoires inférieurs est la suivante :
#
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.
#
Voici le script.
#!/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