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.
Veröffentlicht am: 27.09.2012 von: CHR | Tags: OpenPGP | publiziert in: Security
Veröffentlicht am: 03.09.2012 von: CHR | publiziert in: bash
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.
Veröffentlicht am: 02.09.2012 von: CHR | publiziert in: bash, Linux
Gehen wir von folgenden Szenario aus. Wir wollen eine Funktion in Bash in den Hintergrund schreibe um den Ablauf zu Parallelisieren. In diesem Beispiel wird lediglich ein sleep
ausgeführt.
#!/bin/bash
function background ()
{
#do somsing
sleep $1
}
for i in {1..100}; do
background $i &
done
Problem: Wir wollen aber maximal nur 10 Prozesse gleichzeitig laufen lassen. Dafür habe ich eine Funktion waiting
geschrieben die solange wartet bis die Anzahl des übergebenen wertes erreicht ist. Für das Zählen habe ich Dateien verwendet da wenn man Variablen übergeben würde diese nicht in der for
schleife zur Verfügung stehen würden.
#!/bin/bash
tmpd=`mktemp -d`
function waiting() {
while true; do
if [ `ls $tmpd | wc -l` -le "$1" ]; then
break
fi
sleep .5;
done
}
function background () {
touch $tmpd/$1
#do somsing
sleep $1
rm $tmpd/$1
}
for i in {1..100}; do
background $i &
waiting 10
done
waiting 0
rm -r $tmpd
Veröffentlicht am: 16.08.2012 von: CHR | publiziert in: bash
Was machen wenn auf einem neuem Tablet wo ich gerade eben Windows runter geschmissen und Ubuntu installiert habe die Helligkeit auf einmal ganz dunkel ist.
echo 50 | sudo tee /sys/class/backlight/acpi_video0/brightness
Zur Info 50 ist eine Prozent Angabe 100 geht also auch.
Veröffentlicht am: 08.08.2012 von: CHR | publiziert in: Linux