Kategori Sprachen

pee stdout an mehrere Programme weiterleiten

Montag, Mai 21st, 2012

Wenn man zwei Programme gleichzeitig auf ein stdin zugreifen sollen braucht man ein Hilfsprogramm wie pee.

Hier ein einfaches beispiel. Es werden Zahlen von 0 bis 3 ausgegeben. Würde man nur das grep ausführen bekäme man nur die 1, beim teil -n1 nur die 3. Mit pee kann man beides verbinden.
echo "0
1
2
3" | pee "grep 1" "tail -n1"
1
3

zone files eine IP ändern

Freitag, April 6th, 2012

Mal eben schnell in allen Zonefiles eine IP ändern und die serial Nummer updaten.

#!/bin/bash
for item in *; do 
  if [ -f $item ]; then 
    sed 's/'88.198.44.248'/'46.4.34.52'/g' $item > $item.tmp;
    if [ "$(md5sum $item | awk '{print $1}')" = "$(md5sum $item.tmp | awk '{print $1}')" ]; then 
      rm $item.tmp
    else
      sed "s/$(cat $item.tmp | grep 'serial' | awk '{print $1}')/2012040601/g" $item.tmp > $item
      rm $item.tmp
    fi   
  fi 
done

Das funktioniert natürlich nur solange wenn die Zonefiles noch nicht geupdatet wurden und die Serienummern mit ;sirial getakt sind.

Sporadische Seitenladefehler durch Segmentation fault

Dienstag, Februar 21st, 2012

Vergangene Woche war meine Blog immer wieder von ausfällen geplagt. Das komische war das es immer wieder in der gleichen WordPress Funktion call_user_func_array auftauchte.
Bei Debuggen verschob sich aber immer wieder der Ort wo der Fehler auftrat, ähnlich der Heisenbergsche Unschärferelation. Zudem trat der Fehler nur bei jedem vierten seiten Aufruf auf.

[notice] child pid 29729 exit signal Segmentation fault (11)
[notice] child pid 29856 exit signal Segmentation fault (11)
[notice] child pid 29888 exit signal Segmentation fault (11)

Im Endeffekt habe ich jetzt erst mal PHP und Apache ohne -threads* kompeliert.

tail -F color

Mittwoch, Februar 1st, 2012

Heute musste ich den ganzen Tag ein Logfile überwachen. Damit das nicht zu anstrengend wird und man Fehler nicht übersieht, habe ich das Logfile einfach eingefärbt.

tail -F file.log | awk '
   /FATAL/ {print "\033[31m" $0 "\033[39m"}
   /WARN/ {print "\033[33m" $0 "\033[39m"}
   /INFO/ {print "\033[32m" $0 "\033[39m"}
'

Wir lernen Python Teil 1

Freitag, Juli 29th, 2011


$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0 == None
False
>>> int(None)
Traceback (most recent call last):
File "", line 1, in
TypeError: int() argument must be a string or a number, not 'NoneType'
>>> bool(None)
False
>>> bool(0)
False
>>> bool(1)
True
>>> if None:
... print "is nicht"
...
>>>
>>> if 1:
... print "is nicht"
...
is nicht
>>> if "test" == "test2":
... print "nö"
...
>>> if "test" == "test":
... print "nö"
...

>>> if "test" != "test":
... print "nö"
...
>>> for i in range(0,101)
File "", line 1
for i in range(0,101)
^
SyntaxError: invalid syntax
(mehr …)