[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