blog.bartlweb - a technologist's external brain

Alle Artikel

Timestamp via SQL erhöhen

Werden veränderte Datensätze anhand einer Timestamp erkannt hilft es oft diese bei manuellen Eingriffen in die Datenbank um 1 zu erhöhen. Dies ändert für den Benutzer nicht viel, veranlasst das System allerdings die Änderung am Datensatz zu erkennen.

Der folgende SQL-Befehl ermöglich die Erhöhung eines Zahlen-Wertes:

UPDATE mytable SET tstamp=tstamp+1 WHERE uid = 5;

Datum über SQL formatiert ausgeben

Um über SQL ein Datum sofort als formatierten String retour zu bekommen muss, dass Datum entweder im SQL-Dateformat vorliegen oder als UNIX-Timestamp gespeichert sein.

SQL-Date

DATE_FORMAT(<field>, <dateformat>)

Beispiel

SELECT DATE_FORMAT(tstamp, '%Y') FROM table;

UNIX-Timestamp

FROM_UNIXTIME(<field>, <dateformat>)

Beispiel

SELECT FROM_UNIXTIME(tstamp, '%d.%m.%Y - %H:%i') FROM table WHERE FROM_UNIXTIME(tstamp, '%Y') = 2010;

E-Mail-Benachrichtigung für einen IMAP-Posteingang unter Outlook 2010

Wer kennt dieses kleine gelbe Kuvert im Infobereich der Taskleiste für neu eingetroffene E-Mails unter Outlook nicht. Umso schmerzlicher vermisst man es im Zusammenspiel zwischen IMAP-Accounts und dem aktuellen Outlook 2010.

Abhilfe schafft eine selbst definierte Regel die eine Desktopbenachrichtigung für neue Elemente anzeigt

  1. Wählen Sie unter dem Punkt Datei -> Informationen die Einstellungen für Regel und Benachrichtigungen aus.
  2. Wählen Sie den Punkt neue Regel und wählen Sie dort den Punkt Regel auf von mir empfangene Nachricht anwenden aus.
  3. Im nächsten Schritt wählen Sie die folgenden beiden Punkte aus: nur auf diesem Computer und über Konto Kontoname (klicken Sie auf Kontoname um Ihr IMAP-Konto auszuwählen).

Abkürzungen für oft verwendete Befehle einrichten

Wer oft verwendete Befehle nicht immer tippen will dem helfen sogennante Alias. Dabei wird für einen langen Befehl einfach eine Kurzform definiert. Für die aktuelle Sitzung funktioniert dies über den folgenden Befehl:

alias <short>='<long>'

Beispiel

alias ll='ls -la'

Um diese Befehle auch nach dem Neustart des Rechners noch verwenden zu können, müssen diese dauerhaft gespeichert werden. Dazu schreibt man die benötigten alias-Befehle einfach in eine der folgenden Dateien im Home-Verzeichnis des jeweiligen Benutzers: .profile, .bashrc oder .bash_profile.

Unter Mac OS X ist es immer die Datei .profile.

Prozesse unter Linux anhand von verwendeten Ports ermitteln

Der folgende Befehl erlaubt die Ermittlung von Prozesses abhängig vom verwendeten Port. So lässt sich zum Beispiel ermitteln welcher Prozess gerade Port 80 belegt und sich daher der Webserver nicht starten lässt.

lsof -i <TCP/UDP>:<Port>

Beispiel

lsof -i TCP:80

Software-Raid unter Linux konfigurieren

Ein Software-Raid unter Linux einzurichten ist nicht sehr aufwändig und empfiehlt sich daher vor allem für RAID0-Konfigurationen wenn es um die Nutzung von einer großen über mehrere Festplatten hinweg verteilten Partition geht.

Eine gute Referenz, die nicht nur die Einrichtung sondern auch die unterschiedlichen RAID-Typen erklärt, findet sich in der Ubuntu-Wiki unter http://wiki.ubuntuusers.de/software-raid.

Partitionen für die Verwendung im RAID vorbereiten

Vorweg ist zu sagen, dass ein Software-RAID nicht aus ganzen Festplatten sondern aus einzelnen Partitionen erstellt wird. D.h. es können die unterschiedlichsten Partitionsgrößen und die verschlungensten Anordnungen über verschiedene physische Festplatten hinweg genutzt werden. Beispiel: Eine große Partition auf einer eigenen Festplatte und eine kleine Partition am Ende der System-Platte lassen sich somit zu einer großen Partition zusammenfügen um den gesamten freien Speicherplatz effektiver als in Einzelpartitionen zu nutzen.

Samba-Server einrichten

Die Installation und Konfiguration eines Samba-Servers ist mittlerweile eine mehr als simple Angelegenheit geworden und besteht im wesentlichen nur aus Benutzer anlegen und Konfigurationsfile anpassen. Die hier dargestellte Konfiguration geht davon aus das keine Benutzerordner und Drucker freigegeben werden müssen und dass jeglicher Zugriff auf den Server mittels Benutzername und Passwort erfolgt, also keine Gastzugriffe erlaubt sind.

Benutzer anlegen

Um sich am Samba-Server anmelden zu können nutzt Samba eine interne Passwort-Datenbank. Dennoch müssen die Benutzer am System angelegt sein. Um reine Samba-Nutzer anzulegen (d.h. Nutzer die sich nicht an der Konsole des Servers sondern nur am Samba-Server anmelden können und über kein Home-Verzeichnis verfügen) nutzen Sie den folgenden Befehl:

Alfresco auf Version 3.4.c updaten

Eine der Neuerung in Alfresco 3.4.c ist, dass keine MySQL-Datenbankinstallation im Installations-Bundel mehr mitgeliefert wird. D.h. wer nicht auf eine Postgre-Datenbank migrieren möchte, muss sich ab sofort um eine eigene Installation von MySQL kümmern. Dabei stellt sich allerdings der Versionssprung der mitgelieferten Datenbank MySQL4 auf eine aktuelle Installation von MySQL5 als Stolperstein heraus. In MySQL5 sind Datenbanknamen case-sensitiv. Dadurch erkennt Alfresco einige Tabellen nicht mehr, da diese in früheren Versionen mit Kleinschreibung angelegt wurden, aktuell aber in Großschreibung benötigt werden.

Upgrade-Prozedur

Die folgende Anleitung hilft beim beheben des Konflikts:

  1. Erstellen Sie einen Dump Ihrere aktuellen MySQL-Datenbank.

Aptana/Eclipse JavaHL-SVN-Client Fehlermeldung: repository moved permanently to…

Nach der Umstellung des SVN-Servers habe ich in einigen Eclipse/Aptana-Installationen folgende Fehlermeldung erhalten:

repository has been moved svn: repository moved permanently to 'https://svn.bartlweb.net/svn/projectname/'; please relocate

Das Problem bestand in der Verwendung des JavaHL-SVN-Clients. Die Umstellung auf SVNKit als Client brachte die Lösung.

Gehen Sie dazu in Einstellungen-> Team -> SVN und ändern Sie den Wert bei SVN Interface: Client von JavaHL (JNI) auf SVNKit (Pure Java). Eventuell müssen Sie dazu zunächst das Plugin Subclipse (SVN) installieren.

 

Script für das einfache updaten von mehreren Linux-Servern

Das folgende Skript ist für das einfache installieren von Updates auf mehreren Linux-Servern gedacht. Beachten Sie, dass dieses Skript nur Pakete die nicht den Kernel betreffen installiert, da nach Kernel-Updates meist ein Neustart erforderlich ist und dieser besser einzeln und gezielt pro Server durchgeführt wird.

#!/bin/bash
 
while :
do
 
  clear
 
  echo "Server-Updater"
  echo "========================================================="
  echo "choose system for update:"
  echo
  echo "  1) Ubuntu Servers"
  echo "  2) openSuse Server"
  echo
  echo "(q) quit programm"
  echo "========================================================="
 
  read input
 
  case "$input" in
 
    "1" )
      clear;
      echo "Update Ubuntu Servers"
      echo "========================================================="
      echo
     
 
      echo "Server (sshuser)"
      echo "=============="
      ssh 192.168.10.1 -l sshuser -t "sudo apt-get -y upgrade; exit;"
      echo "=============="
      echo
 
      echo "Server2 (root)"
      echo "=============="
      ssh 192.168.10.2 -l root "apt-get -y upgrade; exit;"
      echo "=============="
      echo
     
     
      echo
      echo "========================================================="
      read -p "press enter to continue ..."
    ;;
 
    "2" )
      clear;
      echo "Update OpenSuse Servers"
      echo "========================================================="
      echo
     
     
      echo "Webserver (sshuser)"
      echo "=============="
      ssh 192.168.0.3 -l sshuser -t "sudo zypper --non-interactive patch; exit;"
      echo "=============="
      echo
     
      echo "Sampleserver (root)"
      echo "=============="
      ssh 192.168.0.4 -l root "zypper --non-interactive patch; exit;"
      echo "=============="
      echo
     
 
      echo
      echo "========================================================="
      read -p "press enter to continue ..."
    ;;
 
    "Q" | "q" | "quit" )
      # exit
      clear
      break
    ;;
   
    * )
     # default 
      clear
    ;;
 
  esac
 
done
 
exit 0