Posts Tagged ‘Bashscript’

Runter vom Gas – Prozesse unter Linux drosseln

Geposted in Linux, Planet, Tipps am 25. Februar 2012 um 11:14 von schneida – 6 Kommentare

Eltern wissen es bereits und ein tüchtiger Linux Administrator kennt es ebenfalls: Grenzen setzen! Meist ist es zwar gewünscht Prozesse so schnell wie möglich wieder abzuschließen, manchmal möchte man aber doch etwas auf die Bremse treten und den einen oder anderen Prozess künstlich langsamer machen etwa, um nebenbei noch ungestört arbeiten zu können. Zum Glück gibt es unter Linux einige raffinierte Tools um genau das zu erledigen! mehr lesen »

SSH Cipher wechseln – schneller Datentransfer mit weniger CPU-Last

Geposted in Linux, Planet, Tipps am 14. September 2011 um 14:00 von schneida – 9 Kommentare

Ich verwende gelegentlich meinen DD-WRT Router zum Download großer Daten aus dem Internet (so wie heute das neue Windows 8 Developer Image) um bei Downloadzeiten von mehreren Stunden diese in der Nacht, ohne laufenden PC durchführen zu können. Am DD-WRT hab ich dazu einen USB-Hub samt mehrerer 8GB USB-Sticks auf denen die Daten liegen. Weil ich zu faul bin einen lokalen FTP-Server oder einen Samba-Server auf dem Router aufzusetzen (und es den bereits knappen RAM noch mehr belasten würde), nutze ich meist SCP (aus mangeln eines voll-funktionsfähigen SFTP-Servers auf dem Router) um die Daten dann auf den lokalen PC zu transferieren. Ein Vorteil von SSH, die Verschlüsselung, bringt in diesem speziellen Fall allerdings einen großen Nachteil mit sich: der ohnehin nicht besonders schnelle Router (Broadcom BCM4785 CPU — 300 Mhz) wird durch die Encryption extrem ausgebremst. So pendelt sich die Datentransferrate mit den Defaultsettings bei ungefähr 400 KB/s ein (was im Vergleich zu meiner Internetanbindung mit 500 KB/s schon wirklich langsam ist). Leider gibt es keine Möglichkeit die Verschlüsselung komplett zu deaktivieren (wenn jemand doch eine kennt, bitte ich um Korrektur), aber man kann zumindest einen schnelleren Verschlüsselungsalgorithmus auswählen:

-c blowfish|3des|des
Selects the cipher to use for encrypting the session. 3des is used by default. It is believed to be secure. 3des (triple-des) is an encrypt-decrypt-encrypt triple with three different keys. blowfish is a fast block cipher, it appears very secure and is much faster than 3des des is only supported in the ssh client for interoperability with legacy protocol 1 implementations that do not support the 3des cipher. Its use is strongly discouraged due to cryptographic weaknesses.

Weil in diesem speziellen Fall die Verschlüsselung eigentlich komplett irrelevant ist, ist es auch komplett egal, wenn man einen unsicheren Cipher wählt. Mit dem blowfish Cipher pendelt sich die Datenrate bei mir bei immerhin 3 MB/s ein (um 750% schneller als mit dem 3des Cipher). Die Load des Routers steigt trotz dieses schnelleren Ciphers auf 2.5, es gäbe also noch Potenzial zur Verbesserung durch noch schnellere Verschlüsselungsverfahren (oder eben die komplette Deaktivierung).

E-mails mit Anhang per Kommandozeile verschicken

Geposted in Linux, Planet, Programmieren am 30. Mai 2011 um 22:21 von schneida – 4 Kommentare

Eigentlich wollte ich gerade einen kurzen Blogpost über Googles Updatepolitik bei Android schreiben, zwischenzeitlich bin ich jedoch über ein anderes Problem gestolpert: E-Mails mit einem Anhang mittels der Kommandozeile verschicken. Zugegeben nicht ganz alltäglich, in meinem Fall nützlich um mittels eines Cronjobs samt Bashscript PDFs aus dem Internet zu laden und regelmäßig auszudrucken (mein Drucker hat eine eigene E-Mail-Adresse). Ein Script im Internet zu finden war nicht sonderlich schwer, viel problematischer war es jedoch, es zum Laufen zu bringen. Eine ganze halbe Stunde durchsuchte ich das Internet nach Hinweisen zu folgender Fehlermeldung:

Kann Verzeichniseintrag für Datei name@email.com nicht lesen: Datei oder Verzeichnis nicht gefunden
name@email.com: Kann Datei nicht anhängen.

Leider wurde ich bis auf ein paar Lokalisierungsdaten allerdings nicht fündig. Es dauerte wie gesagt ganze 30 Minuten, bis ich die dazu passende englische Fehlermeldung fand (“Can’t stat %s: %s”) und damit auch die Lösung des Problems. Um eine E-Mail über die Kommandozeile samt Anhang zu verschicken benötigt man (zumindest unter Arch Linux) folgenden Befehl:

echo "Text der E-mail Nachricht" | mutt -a /tmp/dokument.pdf -s "Betreff" -- name@email.com

Wichtig dabei sind die “–”, in alle von mir gefundenen Beispiele fehlen diese zwei Bindestriche, was zu obiger Fehlermeldung führt.