HowTo: move running process to screen

Schonmal das Problem gehabt, dass man einen Prozess startet und sich danach denkt: Mist, haette ich den mal im screen ausgefuehrt? Passiert klassisch am Freitag Nachmittag wenn man SIGWOCHENENDE empfangen moechte. Fuer genau das Problem habe ich aber gerade eine Loesung gefunden: reptyr

Das Programm kann bei Debian oder Ubuntu einfach aus den Repositories installiert werden:

apt-get install reptyr

Anschliessend funktioniert das folgende Szenario:

  • Ein Terminal Fenster starten (T1) und folgenden Befehl eingeben:
    T1 - root@foo:~# tail -f /var/log/syslog
  • Ein zweites Terminal Fenster starten (T2) und als root einen screen starten:
    T2 - root@foo:~# screen
  • Im screen die PID fuer den Prozess raussuchen und anschliessend mit repryr holen:
    T2 - root@foo:~# pidof tail
    28802
    root@foo:~# reptyr 28802
  • Im T1 sieht man nun etwas wie folgt
    T1 - [1]+  Angehalten              tail -f /var/log/syslog
  • Im T1 nun mit dem folgenden Befehl sicher gehen dass alles sauber ist:
    T1 - root@foo:~# bg; disown
  • Im T1 nun etwas in die Logdatei schreiben und im screen anschauen, wie es geloggt wird:
    T1 - root@foo:~# logger foo

Man finde ich das praktisch! :-)

Simple hard disk wipe live iso / DBAN

Darik’s Boot and Nuke („DBAN“) is a self-contained boot disk designed for consumer use. It securely wipes the hard disks of most computers. DBAN will automatically and completely delete the contents of any hard disk that it can detect, which makes it an appropriate utility for bulk or emergency data destruction. DBAN is a means of ensuring due diligence in computer recycling, a way of preventing identity theft if you want to sell a computer, and a good way to totally clean a Microsoft Windows installation of viruses and spyware. DBAN prevents or thoroughly hinders all known techniques of hard disk forensic analysis. DBAN is a free software product that can be used at home or in a business at zero cost.

 

Download: www.dban.org

Nagios: check Piwik Update Status

Wenn man Software nicht aus den Repositories einer Distribution, sondern von Hand installiert, muss man immer im Blick haben, ob fuer die Software nicht ein Update zur Verfuegung steht

Um sich dieses fuer Piwik zu vereinfachen habe ich dafuer ein sehr simples Nagios Plugin, check_piwik.sh, geschrieben:

#!/bin/bash
 
#####
#
# Simple Skript that checks if Piwik version from given URL is up to date
# 
# Usage: ./check_piwik.php http://example.net/piwik/ MYTOKEN
#
#####
 
## check if two parameters are given
if [ "$#" -lt "2" ]; then echo -e "ERROR: You need to give two parameter, first option is URL and second option Token . Aborting." >&2 exit 1; fi
PIWIKURL="$1"
TOKEN="$2"
 
## check if needed programs are installed
type -P curl &> /dev/null || { echo "ERROR: curl is required but seems not to be installed.  Aborting." >&2 exit 1; }
type -P sed &> /dev/null || { echo "ERROR: sed is required but seems not to be installed.  Aborting." >&2 exit 1; }
 
## get latest piwik version from piwik api
LATESTVERSION=$(curl -s http://api.piwik.org/1.0/getLatestVersion/)
 
## get piwik version from given url
LOCALURL="$PIWIKURL/index.php?module=API&method=API.getPiwikVersion&format=xml&token_auth=$TOKEN"
LOCALVERSION=$(curl -s $LOCALURL | sed -n -e 's/.*<result>\(.*\)<\/result>.*/\1/p')
 
## compare both strings
if [ "$LATESTVERSION" != "$LOCALVERSION" ]; then
  echo "A new version is available: $LOCALVERSION -> $LATESTVERSION"
  exit 2
else 
  echo "Your current version $LOCALVERSION is up to date"
fi

Es erwartet zwei Parameter, eine URL zu dem Piwik das ueberprueft werden soll, und den API Token fuer diese Installation. Dementsprechend muss in der command.cfg der Check wie folgt definiert werden:

define command {
        command_name    check_piwik
        command_line    $USER1$/check_piwik.sh $ARG1$ $ARG2$
}

Der Check selbst wird dann wie folgt in die entsprechende Konfigurationsdatei eingetragen:

define service {
        use                             my-service
        host_name                       example.net
        service_description             Piwik
        check_command                   check_piwik!http://example.net/piwik!abcdefghijklmnopqrstuvwxyz123
        }

Fertig eingerichtet bekommt man dann von seinem Nagios Auskunft ueber den Updatestatus der entsprechenden Installation:

Maintenance information with Apache

Inzwischen ist schon eine ganze Weile der unten stehende Block in den Apache Konfigurationsdateien von Servern die ich betreue drin. Sie erlaubt mir schnell und simpel eine Wartungsseite vorzuschalten um Besucher ueber Arbeiten zu informieren. Gleichzeitig behalte ich selbst uneingeschraenkten Zugriff auf das System.

##### BEGINN MAINTENANCE #####
RewriteEngine on
# exclude my ip
RewriteCond %{REMOTE_ADDR} !1.2.3.4 [NC]
# exclude server itself
RewriteCond %{REMOTE_ADDR} !127.0.0.1 [NC]
# forward to this website
RewriteRule !^/maintenance/wartungsarbeiten.*$ /maintenance/wartungsarbeiten.html [R=307,L]
##### END MAINTENANCE #####

Damit das ganze funktioniert muss mod_rewrite aktiviert werden. Alle Anfragen die nicht von meiner eigenen IP kommen, werden automatisch auf die Wartungsarbeiten-Seite umgeleitet.

Danke an dieser Stelle noch einmal an Michael Simons, von dem ich den Schnippsel damals erhalten habe.