September, 2012

gpg key expierd

Donnerstag, September 27th, 2012

Toll wenn auslaufende gpg keys einen daran erinnern wie lange man schon in der Firma ist. Heute ist der Key für unseren deb Pakete ausgelaufen. Da ich diesen mit als erstes Projekt in der Firma hatte freute ich mich heute wie ein Bär über folgende Fehlermeldung.

W: GPG error: http://repository.chr.istoph.de gpl Release: The following signatures were invalid: KEYEXPIRED 1348734885 KEYEXPIRED 1348734885 KEYEXPIRED 1348734885

server:~# gpg --list-keys
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/F748C82F 2010-09-28 [expired: 2012-09-27]
uid                  Christoph Hueffelmann (repository.chr.istoph.de) 

server:~# gpg --edit-key F748C82F
gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

pub  1024D/F748C82F  created: 2010-09-28  expired: 2012-09-27  usage: SC  
                     trust: ultimate      validity: expired
sub  2048g/686FE6D2  created: 2010-09-28  expired: 2012-09-27  usage: E   
[ expired] (1). Christoph Hueffelmann (repository.chr.istoph.de) 

Command> key 1

pub  1024D/F748C82F  created: 2010-09-28  expired: 2012-09-27  usage: SC  
                     trust: ultimate      validity: expired
sub* 2048g/686FE6D2  created: 2010-09-28  expired: 2012-09-27  usage: E   
[ expired] (1). Christoph Hueffelmann (repository.chr.istoph.de) 

Command> expire
Changing expiration time for a subkey.
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 2y
Key expires at Sat 27 Sep 2014 12:08:30 PM CEST
Is this correct? (y/N) y

pub  1024D/F748C82F  created: 2010-09-28  expired: 2012-09-27  usage: SC  
                     trust: ultimate      validity: expired
sub* 2048g/686FE6D2  created: 2010-09-28  expired: 2014-09-27  usage: E   
[ expired] (1). Christoph Hueffelmann (repository.chr.istoph.de) 

Command> quit
Save changes? (y/N) y

Anschließend musst ich nur noch das gesamte repository neu bauen lassen um damit die signierten Dateien neu signiert wurden. Auf den Clients die auf das repository zugreifen muss der Key nicht geändert werden.

yesterday on bash

Montag, September 3rd, 2012
date -d "-1 day"

CD tower auto copy

Sonntag, September 2nd, 2012

Heute habe ich mal meinen alten SCSI CD Tower aus der Ecke gekramt, um mein CD Sammlung auf Platte zu ziehen. Nach einer reihe Kernel Module bauen wurden mir die Laufwerke /dev/sr0 - 6 zu Verfügung gestellt. Dafür habe dann ein Bash Script geschrieben womit ich die Daten von den CDs kopieren kann und nach dem kopieren die CDs ausgeworfen werden damit weitere eingelegt werden können.

#/bin/bash 
space=/root/video

function copy () {
  m=$1
  save="$space/`ls -al $space | wc -l`"
  mkdir $save
  
  touch $m
  mount /dev/$m /mnt/$m || echo "mount error $m"
  rsync -avP /mnt/$m/ $save/ > $m
  umount /mnt/$m
  eject /dev/$m
  
  rm $m
}

while true; do
  for i in {0..6}; do
    if [ ! -f "sr$i" ]; then
      if dd if=/dev/sr$i bs=1 skip=32808 count=12 2>/dev/null ; then
        echo "sr$i"
        copy "sr$i" &
      else
        echo "no cd in sr$i"
      fi
      sleep 2
    else 
      echo -n "."
    fi
  done
  sleep 15
done

exit 0

Mit der etwas unüblichen abfrage dd if=/dev/sr$i bs=1 skip=32808 count=12 2>/dev/null ermittle ich ob eine CD eingelegt ist und bekomme in einem den CD Titel angezeigt. In der Funktion copy erstelle ich zuerst den Verzeichnis wohin die Dateien kopiert werden sollen. Mounte das CD Laufwerk und kopiere die Dateien dann mittels rsync. Zumschluss werden die CDs durch den Befehl eject /dev/srX wieder ausgeworfen.