Bernhard Häussner
Journal: Neueste Artikel erscheinen hier (Seite 19 von 23)

MySQL von außen via SSH-Tunnel (und KDE GUI)

28.12.2008, 17:04
Lokaler MySQL-Client 
    |
    |
(verschlüsselte SSH-Verbindung)
    |
    v
MySQL-Server

Als Web-Administrator braucht man oft Zugang zu einem MySQL-Server. Das kann man mit phpMyAdmin machen, doch das ist kaum so sicher und weniger komfortabel wie remote-Zugriff über einen SSH-Tunnel.

Was kann der SSH-Tunnel und wie geht das?

En SSH-Tunnel macht, dass, wenn auf den eigenen Rechner von einem Port zugegriffen wird, dann die Packete über die verschlüsselte SSH-Verbindung von dem Verbundenen Rechner (Gateway) aus wieder an einen Rechner weitergeleitet werden. Der Befehl sieht so aus:

ssh -L lokalerport:zielrechner:zielport sshgatewaylogin@gateway

Siehe auch das Diagramm:

Irgendwer 
    |
    |
(Lokaler Port)
    |
    v
Mein Computer
    |
    |
(verschlüsselte SSH-Verbindung)
    |
    v
Gateway, eingeloggt als SSH-Gateway-Login
    |
    |
(Zielport)
    |
    v
Zielrechner

Im Fall MySQL greife nur ich über irgendeinen Port auf meinen Computer zu. Der Gateway-Rechner und Zielrechner sind der MySQL-Server und der greift auf sich selbst zu und zwar über den MySQL-Port (Standard: 3066). Dann sieht das ungefähr so aus:

ssh -L 7777:127.0.0.1:3306 me@mysqlserver -N -f

In Verbindung mit MySQL am besten immer 127.0.0.1 verwenden, das vermeidet Ärger. Das praktische ist nun, dass man MySQL-Clients auf den eigenen Rechner nun mit der Datenbank auf dem Server verwenden kann. Solche Clients sind z.B. der MySQL-Abfrage-Browser oder der MySQL-Administrator oder sogar ein PHP-Skript, das auf dem eigenen Rechner läuft. Man kann damit also nicht nur die Datenbank mit einem schönen GUI verwalten, sondern auch PHP-Skripte, Templates o.ä. auf dem eigenen Rechner testen, nur eben mit der Datenbank auf dem Server. Das ist besonders praktisch, wenn man in einem nicht-lokalen Team zusammenarbeitet, da dann alle auf eine zentrale (Development-)Datenbank zugreifen und nicht jeder ständig seine Datenbank synchronisieren muss. (Außerdem muss nicht jeder einen MySQL-Server installieren. )

Wie man das verwendet ist auf tsunamihost.ch sehr gut beschrieben, für Windows und unixoide Systeme. Es findet sich sogar ein kleines Script für init.d um den Tunnel bei jedem Systemstart zu aktivieren.

(Update 2010-11-21) Um zum Beispiel ein MySQL-Dump über den SSH-Tunnel auf einen entfernten Datenbankserver aufzuspielen genügt dann dieser Befehl:

cat local_path/to/dump.sql | \
   mysql -u db_user -p -P 7777 -h 127.0.0.1 db_schema

Es ist hier wichtig als Host 127.0.0.1 anzugeben, da sonst eine lokale Socket-Verbindung genutzt wird. Und natürlich den Port, über den der Tunnel läuft. (/Update)

Ich will mir keine Befehle und Ports merken und habe KDE

Dann habe ich noch ein kleines Script im Angebot: Es lässt sich z.B. im Startmenü verknüpfen und wenn man es anklickt öffnet sich ein Dialog, der fragt, ob der MySQL-Tunnel benötigt wird. Ein klick auf „Ja“ und der Tunnel wird gestartet bzw. läuft weiter oder ein Klick auf "Nein" und der Tunnel wird, sollte er laufen, gestoppt. Einfacher geht es nicht, oder? Das Sktipt braucht KDE, da es kdialog verwendet und steht hier zum Download bereit:

Kurz die Konfiguration bearbeiten und in den Ordner ~/bin verschieben und der Tunnel kann jederzeit gestartet werden.

Da das Tunnel Aufbauen von meiner Server Management Software YaSvenT erledigt wird, benutze ich inzischen das Sktipt allerdings fast nicht mehr

Kommentare: keine

SVG - Flash killer

27.12.2008, 15:11

Inzwischen ist Flash eine recht weit verbreitete Technik, wenn es um Multimedia-Elemente und Animationen auf Webseiten geht. Eigentlich verwunderlich, da es proprietär ist, man ein Browser-Plugin benötigt und es für Suchmaschinen und Textbrowser kaum verwertbar ist. Es wird meist nicht einmal W3C-Konform in XHTML-Dokumente eingebunden.

Zum Glück gibt es eine Alternative: Scalable Vector Graphics (SVG). Diese Auszeichnungssprache für Vektorgraphiken ist nicht nur frei verfügbar, sondern auch vom W3C standardisiert. Alle Browser, die ich habe, unterstützen SVG nativ ohne Plugin, nur IE tanzt mal wieder aus der Reihe, kann aber mit einem Plugin aufgewertet werden.

Wenn man XHTML-Dokumente erstellen kann, muss man kaum etwas lernen um SVG-Inhalte zu Erstellen. Beides sind XML-Dateien und SVG benutzt auch CSS. Die SVG-Syntax ist zudem recht intuitiv. Nur bei Pfaden wird es etwas kompliziert (per Hand). Dafür gibt es mit Adobe Illustrator und Inkscape recht gute Editoren.

Die Animationen werden wahlweise im Javascript-ähnlichen ECMAScript oder in SMIL geschrieben. Dank des XML-Formats können SVG-Dateien auch leicht von PHP oder anderen Parsern erstellt und bearbeitet werden. In Verbindung mit AJAX lassen sich dann soger komplexe Web-Anwendungen basteln, und das mit Dynamischen Pfaden, Weichzeichnern, Transparenz, Masken, Klonen usw.

Der Grund SVG nicht einzusetzen ist die Browseruntertütztung: Es wird von Browsern meistens nicht sehr vollständig unterstützt.

Wie auch immer, noch ein paar Beispiele: Ich habe mal ein interaktives Spiel gebastelt, es existiert eine Demo eines Graphen dessen Dateien in Echtzeit vom Server geholt werden. Es gibt sogar ein jQuery Plugin für SVG. Es steckt also sehr viel Potential in SVG, man kann nur hoffen, dass es irgendwann auch so gut unterstützt wird wie HTML.

Kommentare: keine

Servicemenüs für Konqueror und Dolphin

22.12.2008, 17:30

Tipp: Lesen Sie einen neuen Artikel zum Thema: Servicemenüs für Dolphin (neu).

Einer der Hauptvorteile von Linux für mich ist, dass es von Programmieren für Programmieren gemacht ist. Das hat den Nebeneffekt, das man sich teilweise auskennen muss, aber den immensen Vorteil, dass, kennt man sich ein bisschen aus, man schon recht nette Dinge anstellen kann. Zum Beispiel kann man Scripts via Mausklick mit Dateien füttern, indem man die Servicemenüs von Konqueror bzw. Dolphin benutzt. Wie das geht hier.

Zuerst einmal brauchen wir ein Programm, dass Dateien will. Als Beispiel md5sum. Mich hat es immer genervt, nur um mal eben eine Datei zu prüfen in der Konsole zumzufummeln. Deshalb erstellen wir ein Servicemenü:

[Desktop Entry]
ServiceTypes=all/allfiles
X-KDE-Submenu=Check...
Actions=md5sum;sha1sum;sha512sum

[Desktop Action md5sum]
Name=md5-Checksumme berechnen
Icon=kugardata
Exec=kdialog --msgbox"`md5sum %U`"

[Desktop Action sha1sum]
Name=sha1-Checksumme berechnen
Icon=kugardata
Exec=kdialog --msgbox "`sha1sum %U`"

[Desktop Action sha512sum]
Name=sha512-Checksumme berechnen
Icon=kugardata
Exec=kdialog --msgbox "`sha512sum %U`"

Zuerst ein Desktop Entry, der den Ordner für die Prüfsummen-Aktionen einstellt. Wir wollen alle Dateien prüfen, deshalb ServiceTypes=all/allfiles, hier könnten wir auch andere Bezeichener einsetzten, nämlich die, die im KDE-Kontrollzentrum unter KDE-Komponenten bei Dateizuordnungen zu finden sind. Es wäre also auch etwas wie image/jpg denkbar.

Dann folgen die Aktionen. Die Namen von den Aktionen werden auch unter Actions eingetragen. Sie bestehen aus einem Icon, der über den Namen des Icons im Aktuellen Iconset definiert wird, einem Anzeigenamen und dem Auszuführenden Programm. Hier wird es wieder etwas interessanter:

Anstatt einfach nur md5sum einzugeben öffnen wir einen kdialog und übergeben ihm die Ausgebe von md5sum. Das geschieht mit den seltsamen Anführungszeichen die man meist irgendwo auf der Taste neben Back Space findet. Da wo %U steht kommt dann der Dateiname hin.

Das ganze kommt dann in eine iwas.desktop Datei und in einen Servicemenü Ordner. Der findet sich normalerweise an einer dieser Positionen:

~/.kde4/share/apps/dolphin/servicemenus
~/.kde/share/apps/konqueror/servicemenus
~/.kde/share/apps/dolphin/servicemenus

Edit: Auf neueren KDE4 Versionen muss man noch dieses Skript nach dem Verschieben in den konqueror-Ordner laufen lassen:

http://www.kde-apps.org/content/show.php/KDE4-servicemenus?content=80131

Wenn alles glatt läuft kann man sie sofort verwenden.

Ein Servicemenü wollte ich noch veröffentlichen. Um Dateien über Instant Messenger und IRC oder große Dateien per Mail bedient man sich gerne einer Dateiupload-Seite, wie z.B. senduit. Diese kann man natürlich in ein Servicemenü integrieren. Das folgende Python-Script im ~/bin-Ordner als ausführbar markieren und das Servicemenü installieren und schon kann es los gehen.

Ein wirkliches muss ist das KDE Image Menu, kurz KIM, mit dem sich Bilder umwandlen, komprimieren, drehen, spiegel und verkleinern lassen. Es ist verfügbar auf kde-apps.org und erspart sehr viel GIMP-Öffnen.

Kommentare: keine

Blog RC2

17.12.2008, 15:29
Konfigurierbare Feeds

Konfigurierbare Feeds

Kurz vor Weihnachten ist nun der nahezu finale Blog da. Es wurden noch einige Fehler ausgemerzt und Spamschutz implementiert. Außerdem etwas Interaktivität mittels Javascript und jQuery.

Mit jQuery konnte ich jetzt einige Dinge etwas verschönern. Kommentare werden ohne Neuladen gepostet und die Suche zeigt erste Ergebnisse schon beim tippen. Ein Feature, das ohne Javascript leider nicht geht, sind auf bestimmte Tags eingestellte Feeds. Mit aktivierten Javascript kann man Tags in eine Box klicken, und erhält dann einen Feed, in dem nur Artikel gelistet werden, die die gewählten Tags enthalten. Ohne Javascript sieht man nur die Tagcloud und kann daraus einen Feed zu einem Tag wählen. Das Hinzufügen der Kommentare und die Suche funktionieren ohne Javascirpt ganz klassisch.

Kommentare sind schnell moderiert

Kommentare sind schnell moderiert

Dann habe ich noch einen Spamschutz gebastelt, der hoffentlich funktioniert und keinen Ärger macht. Ich denke es wird sich zeigen, ob er Spambots von meiner Seite fernhält. Für den Fall dass Werbekommentare und rechtswidrige Kommentare gepostet werden, kann ich diese nun moderieren und dank jQuery auch ohne neu laden und damit recht schnell.

Um die Requests zu reduzieren habe ich auch ein Script, dass alle Javascrpt-Dateien zu einem jsmin-Komprimirten Script zusamenfügt. Außerdem werden die PHP-Klassen nun mit autoload geladen.

Noch andere Kleinigkeiten wurden geändert, doch weiter fehlende Features und Bugs werden sich eventuell im Betrieb zeigen.

Kommentare: 1 Einträge

Compiz bringt Productivity!

11.12.2008, 19:09

Man kennt das ja von Dingen, die gut aussehen: Sie bringen nichts. Außer eben gut aussehen. Vor allem Gadgets und Apple-Prudukte sind davon betroffen. Nicht so der Windowmanager Compiz. Man muss ihn eben richtig einstellen, und da will ich mal ein bisschen Inspiration geben:

Jeder, der einmal einen stolzen Macbook-Besitzer gesehen hat, wie er mit allen zehn Fingern auf seinem Tatschpad herum gewühlt hat, oder den Business-Man, wie er auf seinem Smartphone herum doktert, fragt sich, wozu man eigentlich noch eine Maus hat. Doch dieses altbewährte Zeigegerät hat mehr als genug Stärken und die sollte man auch nutzen. Am besten möglichst häufig, und da trifft es sich gut, dass sich im Compiz Settings Manager zu fast allen Aktionen Maustasten zuweisen lassen.

Doch wozu was zuweisen? Nichts beschleunigt die Arbeitsgeschwindigkeit wie weitere Monitore auf dem Schreibtisch. Doch da der Platz meistens (hier nicht so) eher begrenzt ist, nutzt man alternativ virtuelle Bildschirme. Diese Lassen sich bei Compiz' standard Einstellung nur mit STRG+ALT+Links/Rechts wechseln. Das ist ziemlich aufwändig, hier muss etwas schnelleres her. Zuerst wird STRG+ALT auf SUPER (=Windowstaste) umgestellt, falls man nicht schon viele andere Shortcuts auf dieser Taste hat. Das hilft dann leider nur, wenn man gerade mit der Tastatur arbeitet. Also etwas mit der Maus: Am Bildschirmrand scrollen. Dazu bei Rotate Cube, Bindings, Rotate Left die Seiten anwählen und auf Button4 (Scrollrad Oben) stellen, bei rechts analog nur mit Button5 (Scrollrad Unten). So lässt sich schon schnell durch die Desktops scrollen. Dann hab ich noch bei Initiate eingestellt, dass beim gedrückt halten des Scrollrads (Button2) am Rand der Würfel frei rotierbar ist.

Doch man hat ja generell auch mehrere Fenster offen. Es empfiehlt sich das Scale-Plugin auf eine der Bildschirmecken zu legen. Nur ich verliere im Fenstergewirr so ab sieben Fenstern trotzdem schnell die Übersicht, dagegen kann man die verschiedenen App-Switcher auf die Seitenränder legen. So wechsle ich mit dem normalen Alt+Tab-Switcher durch die Fenster der Arbeitsfläche, wenn ich am unteren Bildschirmrand scrolle. Wenn ich mit der Maus an die obere Kante fahre und rechtsklicke öffnet sich der Shift-Switcher, mit dem man im Vista-Style oder im Cover-Flow-Style durch die Fenster scrollen kann. Das dürften erstmal genug Methoden sein das Fenster zu wechseln.

Auf die untere linke Ecke habe ich Show Desktop gelegt, die untere rechte Ecke bleibt unvergeben, da man sonst beim Aufrufen des Menüs zu oft hinein kommt. Recht nützlich ist es auch das Expo-Plugin auf eine Ecke zu legen, es verschafft einen schnellen Überblick über die Arbeitsflächen und man kann schön die Fenster umherziehen.

Zusätzlich kann man den Seiten noch Aktionen für die linke/rechte Maustaste zuweisen, falls man noch Plugins hat, die man öfters benutzt. So zeigt sich mein Widget-Layer (Dashboard), wenn ich am unteren Bildschirmrand klicke. Mancher hat vielleicht auch noch zusätzliche Tasten an der Maus, die könnten das Gewirr mit den Rändern sparen. Übrigens, wenn man am Rand und an den Ecken Aktionen auf Berührung ausführen will, dann ist es fast Glückssache, die richtige Aktion zu bekommen. Deshalb benutze ich bei den Rändern immer Maustasten als Auslöser.

Überblick

Hier ein kleiner Überblick, was ich wo hin gelegt habe:

  • An seitlichen Rändern scrollen: Arbeitsflächen wechseln
  • An seitlichen Rändern Scrollrad gedrückt halten: Würfel rotieren
  • An seitlichen Rändern Rechtsklick: Fenster auf Arbeitsfläche mitnehmen.
  • Unten Scrollen: Normales Fensterwechseln
  • Oben Rechtsklick: Shift-Switcher über alle Arbeitsflächen
  • Ecke links-oben: Expo
  • Ecke rechts-oben: Scale
  • Ecke rechts-unten: Zeige Desktop
  • Ecke links-unten: bleibt frei
  • Am unteren Rand klicken: Widget Layer

Und alle geänderten Einstellungen als .profile-Datei exportiert:

Viel Spaß beim produktiven eye-candy Mausschubsen.

Kommentare: keine
 
Χρόνογραφ
© 2008-2018 by Bernhard Häussner - Impressum - Login
Kurz-Link zu dieser Seite: http://1-co.de/bj