hier könnt ihr schnell alles über git erfahren
Kategorie: Linux
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
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>
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.
iconv --from-code=ISO-8859-1 --to-code=UTF-8 file_to_convert.txt > file_converted.txt
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
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
GIT für SVN Umsteiger
Unter folgendem Link findet Ihr die GIT Quickreferenz für SVN Umsteiger.
Um in Agavi custom logfiles zu erstellen, benötigt man einen eigens erstellten logger + appender in der app/config/logger.xml.
<!-- logs only custom messages in a custom log --> <logger name="custom" class="AgaviLogger" level="'custom'"> <appenders> <appender>CustomLogAppender</appender> </appenders> </logger> <appender name="CustomLogAppender" class="AgaviFileLoggerAppender" layout="DateTimeLayout"> <ae:parameters> <ae:parameter name="file">%core.app_dir%/log/custom.log</ae:parameter> </ae:parameters> </appender>
Dann kann man den Logger quasi überall wo der LoggerManager verfügbar ist benutzen.
$message = 'Custom logging message'; $this->getContext()->getLoggerManager()->log(new AgaviLoggerMessage($message, 'custom'), 'custom');
Und in der bash das logfile einsehen.
tail -f app/log/custom.log
In verteilten Systemen kommt es des öfteren vor, das unterschiedliche SVN Versionen zum Einsatz kommen.
Wenn euer SVN diese Meldung ausgibt:
svn: This client is too old to work with working copy 'xyz'. You need to get a newer Subversion client, or to downgrade this working copy. See http://subversion.tigris.org/faq.html#working-copy-format-change for details.
kann das Python Script change-svn-wc-format eine SVN WorkingCopy in ein bestimmtes anderes SVN Versionsformat wechseln.