As you might know, you can use any delimiter to use the search/replace feature of sed to avoid extreme escaping of slashes.
~/ sed -r -e 's@http://google.com/@http://example.com/@g' < input.file > output.file
As you might know, you can use any delimiter to use the search/replace feature of sed to avoid extreme escaping of slashes.
~/ sed -r -e 's@http://google.com/@http://example.com/@g' < input.file > output.file
wer sich das ab und an fragt, kann mit
php -i | grep log
angezeigt bekommen, wo die aktuelle php installation ihre logs hinschreibt.
#!/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
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
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
Hier findet Ihr den Shell Scripting Guide:
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