Diese Woche in der Konsole #1

Posted on July 5th, 2009 in Programmierung, Ubuntu | 1 Comment »

Diese Woche in der Konsole

  1. Mit curl von der Komandozeile aus twittern:
    curl -u Benutzername:Passwort \
    -d status="Nachricht" http://twitter.com/statuses/update.xml
  2. Suchen und Ersetzen mit einem Ruby Einzeiler:
    ruby -i.bkp -pe "gsub(/suche/, 'ersetze')" *.php

    Hier werden alle PHP Dateien in dem aktuellen Ordner ersetzt und zusätzlich wird eine Backup Datei (.bkp) erstellt.

  3. Einen Ordner via ssh mittels rsync clonen:
    rsync -avz -e 'ssh -p portnummer' user@host /Quellordner /Zielordner

    Wird der Quellordner ohne abschliessenden / angegeben, so wird der Quellordner selbst kopiert. Ansonsten nur der Inhalt

  4. Datenbank von einem anderen Server via ssh übernehmen:
    ssh user@host mysqldump -u dbuser_server -p dbpwd_server databasename \
    --lock-tables | mysql --verbose -u dbuser_local -p dbpwd_local
  5. Verschlüsselte Text-Datei mit Vim anlegen:
  6. vim -x datei

Zugriff auf ein Symlink-Verzeichnis mit Apache2

Posted on May 20th, 2009 in Ubuntu | 3 Comments »

apache_logo

Ich bin gerade dabei meinen Hauptrechner von Ubuntu 8.10 (Intrepid Ibex) auf Ubuntu 9.04 (Jaunty Jackalope) upzudaten bzw. neu zu installieren. Ich installiere gern jede Version neu, da ich immer sehr viel Software manuell installiert habe bzw. sehr viel am System geändert habe. Daher schreibe ich mir gerade ein Installskript, welches meine gewünschte Software installiert, mein Backup zurückspielt und die wichtigsten Einstellungen vornimmt. Dies sollte mir den nächsten Versionwechsel erleichtert.

Das Installationsskript entsteht gerade auf meinem Testrechner, wo ich dann natürlich die wichtigsten Sachen nach der Installation teste. Da ich auch an einer Webseite arbeite, läuft diese auch lokal auf meinem Rechner. Dazu benötige ich natürlich Apache2, PHP+MySql. Dies benötige ich für die alte Version der Webseite, welche ich übernommen habe. Aktuell versuche ich gerade diese auf Django umzustellen. Mit diesem Umstieg soll auch die Verwendung von MySql durch PostgreSQL abgelöst werden.

Aber zurück zum Thema. Der Sourcecode der Homepage liegt bei mir in meinem Homeverzeichnis. Sagen wir als Beispiel unter:

/home/bernd/homepage

Um diese jetzt mit dem Webserver unter http://localhost/homepage aufrufen zu können, erstelle ich einen Symlink vom Dokument-Root des Apache Webservers in mein Homeverzeichnis

cd /var/www
ln -s /home/bernd/homepage homepage

Zu meiner Überraschung musste ich feststellen, dass Apache diesen Link nicht auflösen kann (Fehlermeldung: Forbidden – You don’t have permission to access /homepage on this server.), obwohl in der Datei /etc/apache2/sites-enabled/0000-default alle Optionen standardmäßig richtig gesetzt sind

....
        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        
....

Auch das Ziel des Symlinks hat die notwendigen Berechtigungen um vom Apache-User www-data korrekt ausgelesen zu werden

bernd@jaunty:~$ ls -ld ~/homepage
drwxr-xr-x 17 bernd bernd 4096 2009-05-18 20:08 homepage

Das Problem liegt jetzt aber darin, dass seit Ubuntu 9.04 (Jaunty Jackalope) das Homeverzeichnis aus Sicherheitsgründen mit den Berechtigungen 0600 angelegt ist! Der Apache-User braucht jedoch für den gesamten Pfad Leseberechtiungen. Also auch für /home und /home/bernd. Daher ist die einfachste Problemlösung die Berechtigungen auf das Verzeichnis /home/bernd zu lockern.

bernd@jaunty:/home$ ls -l
total 4
drwx------ 85 bernd bernd 4096 2009-05-19 08:15 bernd
bernd@jaunty:/home$ chmod 755 bernd
bernd@jaunty:/home$ ls -l
total 4
drwxr-xr-x 85 bernd bernd 4096 2009-05-19 08:15 bernd

Bitte überlegt euch genau ob auch ihr die Berechtigungen auf euer Homeverzeichnis für alle lesbar stellen wollt. Da der PC ausschließlich von mir genutzt wird, sehe ich in meinem Fall kein Problem darin. Wenn auf dem Computer jedoch mehrere Benutzer arbeiten, sollte man sich diesen Schritt genauer überlegen.

Benachrichtigungen am KDE Desktop.

Posted on May 18th, 2009 in KDE, Programmierung, Ubuntu | No Comments »

kde icon

Auf der Suche nach einer Möglichkeit, um Mitteilungen anzuzeigen, wie z.b. wenn mein Backup fertig ist bin ich auf [uu kdialog] gestossen. kdialog kann eine ganze Menge an Dialogen und Eingabemasken aus der Shell heraus starten, unter anderen auch ein passives Popup. Das passive Popup verhält sich so wie die Benachrichtigungen (notifications) von KDE Programmen.

Um diese Nachricht zu erhalten

knotift-notification

wird in die Konsole/Skript folgendes eingegeben:

kdialog --passivepopup 'Backup ist fertig!'