PDF Dateien verkleinern mit Ubuntu

Möchte man eine PDF Datei verkleinern hilft hier die Shell am schnellsten weiter.
Man öffnet eine Shell in dem Ordner in dem das PDF Dokument liegt und gibt dann folgendes ein:

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r150 -sOutputFile=AUSGANG.pdf Eingang.pdf

Wobei man mit -r150 variieren kann bis die Größe passt!

Syncthing Portfreigabe

Local Firewall

If your PC has a local firewall, you will need to open the following ports for incoming traffic:

Port 22000/TCP (or the actual listening port if you have changed the Sync Protocol Listen Address setting.)
Port 21025/UDP (for discovery broadcasts)

Raspberry Pi: BitTorrent Sync Alternative Syncthing installieren » Jan Karres

Raspberry Pi: BitTorrent Sync Alternative Syncthing installieren » Jan Karres.

Wer eine Daten-Cloud ohne zentralen Server aufbauen möchte, der wird schnell bei BitTorrent Sync landen, welches auch auf dem Raspberry Pi läuft. Jedoch stören sich einige Nutzer daran, dass BitTorrent Sync nicht Open Source ist und folglich den Code nicht auf Wasserdichte überprüft werden kann. Abhilfe möchte die BitTorrent Sync Alternative Syncthing schaffen. Das Projekt setzt auf Open Source, ein offenes Protokoll und offene Diskussionen mit der Community. Mit Windows, Mac OS X und Linux Clients (Mobile Apps in Entwicklung), einer webbasierten Benutzeroberfläche, wie auch einer gesicherten Datenübertragung mittels TLS Verschlüsselung mit perfect forward secrecy scheint die technische Basis solide zu sein. Wie man Syncthing auf dem Raspberry Pi als einen dauerhaft laufenden Node installiert, erkläre ich im Folgenden.

Voraussetzung: Raspbian oder vergleichbare Distribution installiert
Step 1

Zunächst müssen wir die aktuelle Version von Syncthing in der ARMv5 Variante von dem Git Repository des Projektes herunterladen und entpacken. Zum Zeitpunkt als dieses Tutorial entstand war Version 0.9.15 aktuell.

sudo mkdir /etc/syncthing
cd /etc/syncthing
sudo wget https://github.com/syncthing/syncthing/releases/download/v0.9.15/syncthing-linux-armv5-v0.9.15.tar.gz
sudo tar xvzf syncthing-linux-armv5-*.tar.gz
sudo rm syncthing-linux-armv5-*.tar.gz
sudo mv syncthing-linux-armv5-*/* .
sudo rm -r syncthing-linux-armv5-*
Step 2

Anschließend verlinken wir die Binärdatei so, dass wir sie einfach ohne Pfadangabe ausführen können.

sudo ln -s /etc/syncthing/syncthing /usr/bin/syncthing
Step 3

Nun starten wir Syncthing erstmalig. Dabei werden RSA Keys und Zertifikate erzeugt, weshalb dies etwa drei Minuten dauern kann. Anschließend wird im Terminal u.a. My ID ausgegeben. Die darauffolgende ID, bspw. U5UYXAG-O37XLYZ-FGM8PRC-VSD4YVP-ULZVQNW-23CF6RG-5IVVKZ6-EFQJTAR sollte man sich notieren, da dies die eindeutige Identifikation eures Raspberry Pis in Syncthing ist. Anschließend kann die Software zunächst mittels STRG + C vorerst wieder geschlossen werden.

syncthing
Step 4

Damit das Webinterface nicht nur auf dem Raspberry Pi selbst, sondern im internen Netzwerk ansprechbar ist, müssen wir dieses in der Syncthing Konfiguration entsprechend ändern. Dabei aktivieren wir gleich den Zugriff mittels SSL-Verschlüsselung, weshalb auch der nächste Start der Anwendung wieder etwa drei Minuten dauern wird, da ein SSL-Zertifikat geniert wird. In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.

nano ~/.config/syncthing/config.xml

ersetze

1
2
3

127.0.0.1:8080

durch (IP durch IP-Adresse des Raspberry Pis ersetzen)

1
2
3

 

IP:8080

 

Step 5

Wir starten Syncthing erneut.

syncthing
Step 6

Jetzt können wir unter https://IP:8080/ (IP durch IP-Adresse des Raspberry Pis ersetzen) im Browser das Webinterface der Anwendung öffnen. Oben rechts befindet sich ein kleines Zahnrad, über welches man zu dem Menüpunkt Einstellungen gelangt. In diesem können wir dem Raspberry Pi Syncthing Node einen anderen Namen geben, den Datendurchsatz beschränken und weitere Einstellungen vornehmen. Außerdem sollten wir einen Benutzernamen und Passwort für den Zugriff auf das Webinterface setzen. Falls die Synchronisierung nur innerhalb des eigenen Heimnetzwerkes stattfinden soll, können wir den Haken bei Globale Auffindung entfernen. Dies hat auch zur Folge, dass Syncthing sich nicht am zentralen Vermittlungsserver anmeldet (darüber werden keine Dateien ausgetauscht, sondern nur Verbindungen hergestellt). Nach dem Speichern der Einstellungen werden wir aufgefordert Syncthing neuzustarten, was mir bequem über das Webinterface durchführen können.

Wir sollten nun an das Ende des Webinterfaces scrollen. Wenn wir dort eine Benachrichtigung mit dem Text Failed to create UPnP port mapping finden, so sollte im Router die Kommunikation über UPnP zur Netzinternen Synchronisierung aktiviert werden.

Im oberen Teil des Webinterfaces finden wir einen voreingestellten Ordner zum Synchronisieren namens default. Diesen können wir über Einstellungen bearbeiten entweder unseren Wünschen anpassen (bspw. Versionierung aktivieren) oder auch löschen. Über den Button Verzeichnis hinzufügen können wir gewünschte weitere Ordner zur Synchronisierung definieren.
Step 7

Es ist an der Zeit, den Syncthing Client auf allen anderen Geräten, die in die Synchronisierung eingebunden werden sollen, zu installieren. Außerdem sollten wir dort die gleichen Verzeichnisse wie auf dem Raspberry Pi anlegen. Auch sollten wir die IDs der Geräte notieren.
Step 8

Um die Synchronisation zu starten müssen nun auf den Geräten gegenseitig im Webinterface mit dem Button Knoten hinzufügen die IDs der Geräte geaddet werden. Anschließend müssen Syncthing auf allen Geräten neugestartet werden, die gewünschten gleichnamigen Verzeichnisse freigegeben werde (in den Einstellungen der Verzeichnisse zu finden) und Syncthing erneut neugestartet werden.
Step 9

Abschließend sollten wir ein Startscript anlegen, damit die Software beim Boot des Raspberry Pis automatisch startet. Falls Syncthing nicht unter dem Benutzer pi ausgeführt wird muss dies in Zeile 15 ersetzt werden.

sudo nano /etc/init.d/syncthing

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

#!/bin/sh
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Multi-user daemonized version of syncthing.
# Description: Starts the syncthing daemon for all registered users.
### END INIT INFO

# Replace with users you want to run syncthing clients for
syncthing_USERS=“pi“
DAEMON=/etc/syncthing/syncthing

startd() {
for stuser in $syncthing_USERS; do
HOMEDIR=$(getent passwd $stuser | awk -F: ‚{print $6}‘)
if [ -f $config ]; then
echo „Starting syncthiing for $stuser“
start-stop-daemon -b -o -c $stuser -S -u $stuser -x $DAEMON
else
echo „Couldn’t start syncthing for $stuser (no $config found)“
fi
done
}

stopd() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ ! -z „$dbpid“ ]; then
echo „Stopping syncthing for $stuser“
start-stop-daemon -o -c $stuser -K -u $stuser -x $DAEMON
fi
done
}

status() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ -z „$dbpid“ ]; then
echo „syncthing for USER $stuser: not running.“
else
echo „syncthing for USER $stuser: running (pid $dbpid)“
fi
done
}

case „$1“ in
start) startd
;;
stop) stopd
;;
restart|reload|force-reload) stopd && startd
;;
status) status
;;
*) echo „Usage: /etc/init.d/syncthing {start|stop|reload|force-reload|restart|status}“
exit 1
;;
esac

exit 0

Step 10

Zuletzt geben wir dem Startscript die Rechte ausgeführt zu werden, aktivieren es und starten den Raspberry Pi neu.

sudo chmod +x /etc/init.d/syncthing
sudo update-rc.d syncthing defaults
sudo reboot

Geschafft! Die BitTorrent Sync Alternative Syncthing ist fertig eingerichtet und synchronisiert vortan die Daten, mit dem Raspberry Pi als dauerhaft teilnehmender Node.
Quellen: Syncthing Projekt, Startscript von jasonwryan

Raspberry Pi: Starter-Kit für den optimalen Einstieg
ShellShock: Nächste große Sicherheitslücke nach Heartbleed

Teile diesen Beitrag in den sozialen Netzwerken und helfe damit Anderen diesen Artikel zu finden!
Teile den Beitrag bei Facebook Teile den Beitrag bei Twitter Teile den Beitrag bei Google+
16 Antworten

Joram says:
25. September 2014 um 16:40

Kannst Du schon was zur Performance/Stabilität sagen im Vergleich zu BTsync? Denn das ist ja wirklich extrem einfach überall einzurichten und läuft zumindest bei mir bis jetzt ohne jedes murren und kann mittlerweile sogar das Fotosyncen anstelle von dropbox auf dem Handy übernehmen.
Antworten
Jan Karres says:
25. September 2014 um 18:04

Ich selbst habe es nur angetestet und habe dabei keine Probleme festlegen können. Auf Google+ schrieb mir John Doe als Kommentar auf den Artikel:

“Ich nutze Syncthing schon eine ganze Weile und kann nur bestätigen, dass es ein großartiges Tool ist.
Im Gegensatz zu ownCloud kann es wenigstens auch mit großen Dateien arbeiten :)”
Antworten
LXNOOB says:
18. Oktober 2014 um 09:27

Hallo Jan, schönen Dank dafür, dass du dich daran erinnert hast das Tool hier einmal vorzustellen – samt tadelloser Anleitung. Eines vorweg: Syncthing heisst nun Pulse.
https://ind.ie/pulse/
Die Versionsnummer ist allerdings unverändert v0.10.1 seit dem 12.10., wie man Github entnehmen kann, wo die Dateien auch noch unter dem alten Namen stehen.

und kurz darauf kommt dann:
9:04:51: Folder “sync-ordner” isn’t making progress – check logs for possible root cause. Pausing puller for 1m0s.

Desweiteren habe bekomme ich mit der Windowsversion einfach keine Verbindung zu bestehenden Devices auf einem meiner Raspis (innerhalb und ausserhalb meines LAN) zustande. Dem Webinterface von Syncthing (Pulse) kann ich dann nur entnehmen, dass das Device “Disconnected” ist (lila Balken) und unter dem Punkt “Address” steht lediglich ein Fragezeichen (?).

Es gib übrigens eine Erweiterung für Windows, damit Pulse nicht ständig ein Konsolenfenster geöffnet haben muss. Die Bedienung landet dann im Systray.
Das Teil nennt sich dann SyncthingTray:
https://github.com/iss0/SyncthingTray
Antworten
Jan Karres says:
18. Oktober 2014 um 15:23

Erstens ist FAT32, wie du angenommen hast, auf Grund der Beschränkung auf 4GB je Datei, keine gute Idee. Das Problem liegt aber meines Erachtens nach wo anders. Die Fehlermeldung besagt, dass die Anwendung nicht das Recht hätte auf die benötigen Daten zuzugreifen. Folglich nehme ich am, dass der Benutzer, der Syncthing ausführt, keine Berechtigung hat auf das USB-Speichermedium zuzugreifen. Vielleicht hast du es als Root-Benutzer gemountet und versuchst nun mit dem Benutzer pi darauf zu schreiben?
Antworten
LXNOOB says:
18. Oktober 2014 um 16:22

Verstehe. Danke für den Hinweis auf die 4GB Beschränkung.

Vielleicht hast du es als Root-Benutzer gemountet und versuchst nun mit dem Benutzer pi darauf zu schreiben?

Genau so ist es wohl. Allerdings ist mir gerade nicht klar, wie ich das nun ändern könnte. Kannst du mir dazu einen Tipp geben? Danke.
Antworten
Jan Karres says:
18. Oktober 2014 um 20:25

Ich tippe mal darauf, dass du es via fstab mountest. Da solltest du dich mal mit dem Rechtesystem in dessen Dokumentation auseinandersetzen. Das andere Problem würde ich tippen erledigt sich dann von alleine
Antworten
LXNOOB says:
18. Oktober 2014 um 17:03

so sieht mein Eintrag in /etc/fstab aus:
UUID=ABCD-1234 /media/usb-stick vfat defaults,auto,umask=000,users,rw 0

Hast du noch eine Idee zu der genannten Thematik (kein Connect zu den Devices) bei der Windowsversion von Syncthing/Pulse?
Antworten
LXNOOB says:
24. Oktober 2014 um 10:56

Hi, da mir noch immer nicht klar ist, was das automatische Update verhindert, habe ich ein Script geschrieben, welches sich sehr stark an Jan´s Verfahren für die Erstinstallation anlehnt. Wäre Cool, wenn mir jemand behilflich sein könnte, wie ich es anstelle, nicht jedes Mal von Hand auf die aktuelle Versionsnummer mittels Nano anzupassen.

#!/bin/sh
sudo /etc/init.d/syncthing status
sudo /etc/init.d/syncthing stop
sleep 3
sudo /etc/init.d/syncthing status
# die jeweils aktuelle Version herunterladen
sudo wget https://github.com/syncthing/syncthing/releases/download/v0.10.3/syncthing-linux-armv5-v0.10.3.tar.gz
# das Archiv entpacken und anschliessend loeschen
sudo tar xvzf syncthing-linux-armv5-*.tar.gz && sudo rm syncthing-linux-armv5-*.tar.gz
sudo mv syncthing-linux-armv5-*/* /etc/syncthing/
sudo rm -r syncthing-linux-armv5-*
# den Syncthing-Daemon wieder starten
sudo /etc/init.d/syncthing start
Antworten
Igge says:
3. Januar 2015 um 14:41

Hallo zusammen!

Aus einem mir nicht bekannten Grund (bin jetzt nicht so der Linux-Pro), funktioniert das Startskript bei mir nicht. Ich habe im Skript lediglich den Benutzer “pi” abgeändert und dann die Befehle wie beschrieben ausgeführt. ich muss syncthing immer manuell starten. Woran könnte das liegen?

Was auch nicht geht sie die automatische Upgrade-Funktion, er gibt immer: Permission denid aus. Was kann ich dagegen tun?
Antworten
Jan Karres says:
11. Februar 2015 um 11:44

Klingt ganz schwer nach einem Rechte Problem. Wenn du einen Benutzer änderst, der eine Anwendung ausführt, musst du die Rechte an den auszuführenden bzw. zu ändernden Dateien ebenfalls ändern. Stichwort: chown.
Antworten
LXNOOB says:
12. Januar 2015 um 18:22

Hallo Jan, erst einmal Dir und allen anderen ein gutes neues Jahr. Syncthing ist zwischenzeitlich bei Version 0.10.19 angekommen. Ich habe den Eindruck es haben sich ein paar Veränderungen ergeben bei der Installationsroutine. So gibt es bswp. im Installationsordner einen Unterordner /etc/. Von daher denke ich müsste deine Installationsanleitung überarbeitet werden. Wäre sehr nett, wenn Du dafür vielleicht kurz die Zeit finden würdest. Auch ist nun eine automatische Upgrade-Funktion implementiert worden, welche aber nicht funktioniert, wenn die Installation in /etc/syncthing geschieht? (fehlende Rechte).
Hier kann man dazu etwas lesen:
https://discourse.syncthing.net/t/permission-denied-when-updating-from-webgui/721
Desweiteren frage ich mich ob Syncthing evtl. in einer anderen ARM-Version (v6 oder v7) laufen würde:
http://www.webupd8.org/2014/06/syncthing-open-source-bittorrent-sync.html
Antworten
Jan Karres says:
11. Februar 2015 um 12:12

Danke für den Hinweis. Eine Überarbeitung des Artikels steht schon auf der Todo-Liste
Antworten
Norbert says:
14. März 2015 um 09:14

Danke für die Anleitung. Bei mir werkelt noch Bittorrentsync, aber wegen der ausgesprochen selbstbewussten Preispolitik, werde ich über kurz oder lang umsteigen. Ich freue mich schon auf dein Update. Ach ja: Syncthing bleibt doch syncthing:

https://discourse.syncthing.net/t/syncthing-is-still-syncthing/1372
Antworten
Ciprian says:
24. März 2015 um 22:31

Hallo Jan! Vielen Dank für deine Anleitung.
Kannst du mir bitte sagen was macht dein Befehl:
sudo mv syncthing-linux-armv5-*/* .
weil bei dem Versuch ein neue Syncthing version zu installieren habe ich die Meldung:
mv: cannot move syncthing-linux-arm-v0.10.29/etc‘ to ./etc‘: Directory not empty
Antworten
Jan Karres says:
31. März 2015 um 19:23

Er verschiebt alle Dateien aus dem Verzeichnis syncthing-linux-armv5-* in das Verzeichnis in dem du dich momentan befindest.
Antworten
Ciprian says:
31. März 2015 um 19:34

Vielen Dank.
Antworten

Hinterlasse eine Antwort

Wir haben erkannt, dass du einen Adblocker benutzt. In diesen Blog investieren wir viel Zeit und auch etwas Geld. Zur Refinanzierung dieses Aufwandes ist in meinem Blog etwas Werbung geschaltet. Dabei verwende ich nur Werbung, die ich auch persönlich erträglich finde.

Wenn du Blogger wie mich unterstützen möchtest, um weiterhin kostenlos Blogs lesen zu können, bitte ich dich den Adblocker für deine Lieblingsblogs zu deaktivieren. Vielen Dank!

Blog
Neuigkeiten aus dem Leben des Jan!
Über mich
Wer schreibt hier?
Übersicht aller Raspberry Pi Artikel
Alle Artikel thematisch gegliedert
Raspberry Pi Starter-Kit Empfehlung
Erfahrungen für den optimalen Einstieg
Leserkommentare beantworten
Hilf anderen Lesern!
Bedanken
Wenn dir mein Blog gefällt.
Mediee
Meine kommerzielle Seite.
Impressum
Tritt mit mir in Kontakt!