Sailfish: Bilder automatisch zur Owncloud hochladen

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

Inhalt

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.


In den Kommentaren können folgende Formatierungen genutzt werden.