[Eisfair] Lösungssuche Dateitransfer
Carsten Lippert
carsten at falconcrest-lippert.de
Mo Jun 6 19:17:32 CEST 2016
Für alle , die es interessiert, mit dem von Marcus erstellten Script,
ist mein Problem gelöst.
Hier noch die endgültige Version von my_pic_fetch:
---------------------------------------------------------------------
#!/bin/sh
# sleep 300
if [ -f /tmp/my_pic_fetch.running ] ; then
exit 1
fi
touch /tmp/my_pic_fetch.running
ftphost="10.0.0.100"
ftpuser="user"
ftppassword="password"
picpathserver="Mein_Bilder-Server"
picpathlocal="/public/Mein_Bilder-Server"
# Funktion zum Download der Pics auf FTP-Server
#fetchremovepic() {
#ftp -i -n ${ftphost} >/dev/null <<EOF
#user ${ftpuser} ${ftppassword}
#get "${picpathserver}"/"${1}" "${1}"
#quit
#EOF
#}
# Funktion zum Download und Loeschen der Pics auf FTP-Server
fetchremovepic() {
ftp -i -n ${ftphost} >/dev/null <<EOF
user ${ftpuser} ${ftppassword}
get "${picpathserver}"/"${1}" "${1}"
delete "${picpathserver}"/"${1}"
quit
EOF
}
# Funktion zum Loeschen von Dirs die aelter als 2 Tage sind
removedir() {
ftp -i -n ${ftphost} >/dev/null <<EOF
user ${ftpuser} ${ftppassword}
rmdir "${picpathserver}"/"${1}"
quit
EOF
}
# Hole Liste der Pics in PicDir auf FTP-Server
lspics() {
ftp -i -n ${ftphost} > ${pictempfile} 2>/dev/null <<EOF
user ${ftpuser} ${ftppassword}
ls "${picpathserver}"/"${1}"
quit
EOF
(grep " DCS-930L20" ${pictempfile} | awk -F " " '{print $NF}') >
${pictempfile1}
}
# Hole Liste der PicDirs auf FTP-Server
dirtempfile=`mktemp -p /tmp`
dirtempfile1=`mktemp -p /tmp`
ftp -i -n ${ftphost} > ${dirtempfile} 2>/dev/null <<EOF
user ${ftpuser} ${ftppassword}
ls "${picpathserver}"
quit
EOF
(grep "^d" ${dirtempfile} | grep " 20" | awk -F " " '{print $NF}') >
${dirtempfile1}
pictempfile=`mktemp -p /tmp`
pictempfile1=`mktemp -p /tmp`
removeolddir=`date +%Y%m%d --date=-2days`
mkdir -p "${picpathlocal}" >/dev/null 2>&1
cd "${picpathlocal}"
while read picdir ; do
# Folgende echo-Zeile gibt die gefundenen Verzeichnisse
# zur Kontrolle aus; kann auskommentiert werden.
# echo ${picdir}
mkdir "${picdir}" >/dev/null 2>&1
lspics "${picdir}"
sleep 2
while read picfile ; do
# Folgende echo-Zeile gibt die gefundenen Bilder
# zur Kontrolle aus; kann auskommentiert werden.
# echo ${picfile}
fetchremovepic "${picdir}/${picfile}"
done < ${pictempfile1}
# Loescht alle alten Verzeichnisse auf Mein_Bilder-Server
if [ ${picdir} -lt ${removeolddir} ] ; then
removedir "${picdir}"
fi
done < ${dirtempfile1}
rm -f ${dirtempfile}
rm -f ${dirtempfile1}
rm -f ${pictempfile}
rm -f ${pictempfile1}
rm -f /tmp/my_pic_fetch.running
-------------------------------------------------------------------
--
MfG. Carsten
Mehr Informationen über die Mailingliste Eisfair