Archiv für die Kategorie ‘Shell’

Ordner mit gzip packen und entpacken.

Dienstag, 16. März 2010 von sägefisch

Da GZIP selbst keine ganzen Ordner packen kann, kann man TAR das gepackte Archiv erzeugen lassen.

user@server: tar cvzf ordner.tar.gz ordnername
user@server: tar zxvf ordner.tar.gz

Shell Scripting Guide

Mittwoch, 02. Dezember 2009 von sägefisch

Hier findet Ihr den Shell Scripting Guide:

freeos.com/guides/lsst/

Dann kann man beispielsweise so kleine Helferlein zum Löschen von Logs und Caches wie diesen hier basteln:

#!/bin/bash
cd `dirname $0` # go to scripts dir
cd .. # step ahead
arr[0]='Application1/app/cache/*'
arr[1]='Application1/var/cache/*'
arr[2]='Application2/application/cache/*'
arr[3]='Application2/application/logs/*'
arr[4]='Application2/pub/tmp/*'
arr[5]='Application3/application/cache/*'
arr[6]='Application3/application/logs/*'
arr[7]='Application3/pub/tmp/*'

i=0
while [ $i -lt ${#arr[@]} ]
do

rm -rf ${arr[$i]}
echo "${arr[$i]} deleted"

(( i=$i+1 ))
done

Debugging mit XDebug und KCachegrind

Sonntag, 15. November 2009 von sägefisch

XDebug ist das sehr beliebte und allseits bewährte Tool, das nicht nur Stacktrace und var_dumps ausgeben kann, sondern ebenso für CodeCoverage, echtes Debuggen, Profiling und Testen mit PHPUnit gedacht ist.

XDebug kann Profiler Dateien erzeugen, die man mit KCacheGrind perfekt auswerten kann. So bleibt kein Flaschenhals in der Applikation unbemerkt.

xdebug.org
kcachegrind.sourceforge.net

SVN-Befehle für Zwischendurch

Dienstag, 10. November 2009 von graste

Ein paar kleine SVN-Befehle und One-liner für den Alltag:

Alle Beitragenden eines Repositories anzeigen lassen (sortiert nach Anzahl der Änderungen):

svn log -q | awk '/^r/ {print $3}' | sort | uniq -c | sort -rn

Alle Änderungen zwischen der aktuellen Arbeitskopie und der Head-Version anzeigen lassen. Sollte im Normalfall auch anzeigen, wer den Build kaputt gespielt hat. ;)

svn log -r BASE:HEAD

History eines Zweiges ausgehend vom Verzweigungspunkt anzeigen lassen:

svn log --stop-on-copy

Alle Änderungen innerhalb eines Zeitraums ausgeben lassen:

svn di -r{2009-10-23}:{2009-11-28}

ALLE Änderungen der lokalen Arbeitskopie rückgängig machen:

svn revert -R .

SVN-Informationen als XML ausgeben lassen, um einfacher Infos für Analysen und Statistiken zu erhalten/zu parsen:

svn log --xml

Noch was für Leute, die keine Angst vor’m Löschen von Externals haben: Alle Dateien, die mit ? gekennzeichnet sind (bei SVN-Status) einfach mal löschen:

svn st | grep ^\? | awk '{print $2}' | xargs rm

Und hier noch ein Befehl um alle neuen Dateien zum Repository hinzuzufügen

svn st|grep ^?|sed s/?//|xargs svn add $1

.svn Verzeichnisse rekursiv aus Ordnern löschen

Mittwoch, 28. Oktober 2009 von sägefisch

Folgender Kommandozeilen Befehl löscht alle .svn Verzeichnisse in einem Ordner.

Im Detail sucht das Kommando find
im aktuellen Ordner (.) rekursiv
nach Verzeichnissen (-type d)
mit dem Namen .svn (-name .svn)
und piped (|) diese Liste
nach xargs,
welches dann an erster Stelle (-0) der Liste
mit der Löschoperation (rm -rf) beginnt.


find . -type d -name .svn -print0 | xargs -0 rm -rf