ich schreibe an einem Bash-Script, welches alle 10 Minuten den Inhalt eines Verzeichnisses nach neuen Dateien überprüft und die älteste Datei in NextCloud hochlädt. Dabei soll es leere Dateien (mit touch angelegte) ignorieren. Letztes funktioniert noch nicht:
Code: Alles auswählen
root@raspi:/upload/$ find . -not -empty -exec ls -Atr {} +
test1 test2 test54 htdghhfhfh ls
root@raspi:/upload/$
Code: Alles auswählen
root@raspi:/upload/$ find . -size +1048c -exec ls -Atr {} +
test1 test2 test54 htdghhfhfh ls
root@raspi:/upload/$
Hier das komplette Script:
Code: Alles auswählen
#!/bin/bash
if [ -f /var/run/raspi-upload-test-script.lock ] ;then
echo "Script laeuft noch"
exit 0
fi
touch /var/run/raspi-upload-test-script.lock
cd /upload/test/
# erste und älteste Datei im Verzeichnis
datei=$(find . -not -empty | ls -Atr | head -n 1)
if [ -z "$datei" ]
then
# leere Variable, keine Dateien im Verzeichnis
rm /var/run/raspi-upload-test-script.lock
exit 0
else
if lsof -w "$datei" > /dev/null;
then
# Datei geoeffnet, Abbruch
rm /var/run/raspi-upload-test-script.lock
exit 0
else
# Datei hochladen
curl --limit-rate 100k -u USER:XXXXXXXXXXXXXXXXX -T $datei "https://example.org/cloud/remote.php/dav/files/USER/test/"
rm $datei
touch /upload/test/$datei
rm /var/run/raspi-upload-test-script.lock
fi
fi
exit 0
Und mal am Rande, hat sowas vielleicht schon jemand im Einsatz? Die Idee, einen Raspi als "Upload-Station" zu nutzen, sollte doch nicht neu sein? Das Verzeichnis ist per Samba freigegeben, alles was dort reingelegt wird, soll in die NextCloud hochgeladen werden. Als History soll der Name der hochgeladenen Datei im gleichen Verzeichnis per touch angelegt werden.
Den grafischen NextCloud Client wollte ich nicht nutzen, da ich dafür eine grafische Oberfläche auf dem Raspi haben müsste.