Unter Android habe ich die Owncloud-App einzig zu dem Zweck genutzt meine Bilder automatisiert in meine Owncloud hochzuladen, wenn ich eine WLAN-Verbindung hatte. Diese Funktion vermisse ich derzeit bei meinem Jolla. Es gibt zwar eine Owncloud-App, aber diese hat wohl diese Funktion nicht und außerdem habe ich es noch nicht geschafft mich einzuloggen. Hier kommt mir entgegen, dass Sailfish OS ein Linux ist und sogar standardmäßig SSH und rsync an Board hat.
Ich habe mein Jolla nun so automatisiert, dass es meine Bilder bei WLAN-Verbindung automatisch in den Owncloud-Ordner auf meinem uberspace hochlädt, den zuvor die Android-App benutzt hat. Dazu habe ich zuerst ein SSH-Schlüsselpaar erstellt:
ssh-keygen
Den öffentlichen Schlüssel findet man nun in
/home/nemo/.ssh/id_rsa.pub
und muss ihn auf dem uberspace in die Datei
/home/USER/.ssh/authorized_keys
anhängen, wobei USER hier und im
folgenden durch den eigenen Benutzernamen auf uberspace ersetzt werden
muss.
Hier habe ich eine Anleitung gefunden, wie man einen automatischen Upload bei vorhandener WLAN-Verbindung startet und leicht auf meine Bedürfnisse angepasst.
Man legt auf dem Jolla die Datei ~/.config/systemd/user/backup.path
mit diesem Inhalt an:
[Unit]
Description=Checks if paths changed or contain new images.
[Path]
PathChanged=%h/Pictures/Camera
[Install]
WantedBy=default.target
Danach legt man die Datei ~/.config/systemd/user/backup.service
und
trägt folgendes ein:
[Unit]
Description=Backs up files
[Service]
ExecStart=/home/nemo/backup.sh
Schließlich muss man natürlich das eigentliche Script
/home/nemo/backup.sh
anlegen:
#!/bin/sh
# Check if we're on wlan
if [ $(ifconfig | grep -o wlan0) ]; then
echo "WLAN used"
# Start backup using rsync
/usr/bin/rsync /home/nemo/Pictures/Camera/ -a USER@DOMAIN:/home/USER/html/owncloud/data/OWNCLOUD_USER/files/SofortUpload/
else
echo "No WLAN"
if [ -e /tmp/backup.lock ]; then
echo "Another script is already waiting for WLAN to sync."
exit 0
else
# Wait for WLAN to come back
touch /tmp/backup.lock
until [ $(ifconfig | grep -o wlan0) ]; do
echo "Still no WLAN"
sleep 300
done
/usr/bin/rsync /home/nemo/Pictures/Camera/ -a USER@DOMAIN:/home/USER/html/owncloud/data/OWNCLOUD_USER/files/SofortUpload/
rm /tmp/backup.lock
fi
fi
exit
Nun wird das Script wird per
chmod +x /home/nemo/backup.sh
ausführbar gemacht. Bei den beiden rsync-Aufrufen sind natürlich
Benutzer, Domain, Owncloud-Benutzer und gewünschter Zielpfad anzupassen.
Über sleep
wird das Intervall in Sekunden eingestellt, in dem
abgefragt wird ob WLAN vorhanden ist wenn Bilder ohne WLAN-Verbindung
geschossen wurden.
Abschließend kann man das Script zum testen manuell ausführen
systemctl --user start backup.path
und wenn alles funktioniert aktivieren:
systemctl --user enable backup.path