Kategorien
Deployment Linux Server Shell

mit find und xargs und cp dateien von a nach b kopieren

finde alle dateien in directory die mit .ext enden und kopiere sie nach newdirectory


find directory/ -type f -name *.ext -print0 | xargs -0 cp -t newdirectory/

Kategorien
Deployment Linux PHP Server Shell

shell do something in a while

#!/bin/bash

DONE=0
while [ $DONE -eq 0 ] 
do
    #do something and return something else than 0 when you want to exit this circle
    DONE=$?
done
Kategorien
PHP Server

rekursive php glob funktion – ordner/dateien rekursiv nach pattern filtern


protected function rGlob($pattern = '*', $flags = 0, $path = false)
{
    if (!$path)
    {
        $path = dirname($pattern).DIRECTORY_SEPARATOR;
    }

    $pattern    = basename($pattern);
    $paths      = glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT);
    $files      = glob($path.$pattern, $flags);
    foreach ($paths as $path)
    {
        $files = array_merge($files, $this->rGlob($pattern, $flags, $path));
    }
    return $files;
}

Kategorien
Deployment GIT Linux Server Shell Versionierung

das git buch

hier könnt ihr schnell alles über git erfahren

progit.org/book/

Kategorien
Apache Deployment Lighttpd Linux OffTopic PHP Server Shell XT Commerce

ioncube php loader auf ubuntu mit lighttpd

Hier eine kurze Anleitung wie man ioncube php loader auf ubuntu mit lighty webserver installieren kann.

# in den tmp ordner wechseln
cd /tmp

# per wget loader sources holen
wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

# entpacken des tar balls
tar xvfz ioncube_loaders_lin_x86.tar.gz

# verschieben des neuen ioncube ordners nach /usr/local/
mv ioncube /usr/local/

# neue aa_ioncube.ini datei in /etc/php5/cgi/conf.d/ erzeugen
vi /etc/php5/cgi/conf.d/aa_ioncube.ini

# je nach php version diese zeile in die aa_ioncube.ini
# datei schreiben und mit :wq speichern 
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so

# lighty neu starten
/etc/init.d/lighttpd restart

Kategorien
ANT Deployment Linux Server Shell

alte dateien mit ant task löschen

um mit ant alte dateien per find/pipe/xargs zu entfernen, kann man den ant exec befehl verwenden.

    <target name="dump_cleanup" description="dump cleanup - remove old backup db dumps">
        <echo message="cleanup backup dir - remove old db dumps"/>
        <exec executable="bash" dir="${backups}">
            <arg value="-c"/>
            <arg line='"find -P . -maxdepth 1 -type f -ctime +4 -print0 | xargs -0 rm -f"'/>
        </exec>
    </target>
Kategorien
Deployment Linux Server Shell

mit find und xargs alte dateien löschen

Der Konsolen Befehl im Detail:

find . -type f -ctime +3 -maxdepth 1 | xargs rm

find . findet im aktuellen Ordner Dateien (-type f – files) deren Dateistatus vor mehr als 3*24h (-ctime +3) geändert wurde. Mit -maxdepth 1 verhindern wir Rekursion in die Tiefe des aktuellen Ordners.

Die Pipe (|) übergibt das find-Ergebnis nach xargs und führt rm auf jedem einzelnen Ergebnis aus.

Kategorien
Deployment Linux Server Shell SVN Versionierung

svn patches erstellen und ausführen

Um einen Patch für eine geänderte Datei zu erstellen, nutzt man svn diff wie folgt:

svn diff file_with_changes.ext > diff.patch

Um diesen Patch dann zu benutzen, nutzt man svn wie folgt:

patch -p0 -i diff.patch

-p0 sorgt dafür das die zu patchende Datei gefunden wird (zero directories)
-i sagt patch welche patch Datei benutzt werden soll

Kategorien
Deployment Linux Server Shell

mit shell script und diff dateien prüfen

Um durch etwaige Cronjobs eine Prüfung von 2 Dateien und darauf folgende Aktionen zu erzeugen, kann ein shell script Verwendung finden.

#!/bin/bash

SOURCE=/mount/data/new_file.txt
TARGET=/srv/www/vhosts/www/app/config/old_file.txt

diff -i -b -B -q ${SOURCE} ${TARGET}

if [ ! $? -eq 0 ]
then
    echo "new file is different from old one - copy new one to old"
    cp ${SOURCE} ${TARGET}
else
    echo "no difference between files - nothing to do"
fi
Kategorien
Deployment GIT Linux Server Shell SVN Versionierung

GIT für SVN Umsteiger

Unter folgendem Link findet Ihr die GIT Quickreferenz für SVN Umsteiger.

http://git-scm.com/course/svn.html