Archiv für die Kategorie ‘Linux’
Mittwoch, 25. August 2010 von sägefisch
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
Tags:bash, copy, diff, script, Shell, source, target Abgelegt in Deployment, Linux, Server, Shell | Keine Kommentare »
Freitag, 14. Mai 2010 von sägefisch
Unter folgendem Link findet Ihr die GIT Quickreferenz für SVN Umsteiger.
http://git-scm.com/course/svn.html
Tags:control, GIT, repository, subversion, SVN, version Abgelegt in Deployment, GIT, Linux, SVN, Server, Shell, Versionierung | Keine Kommentare »
Freitag, 07. Mai 2010 von sägefisch
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
Tags:agavi, bash, log, logger, logging, PHP, XML Abgelegt in Agavi, Debugging, Frameworks, Linux, PHP, Shell, XML | Keine Kommentare »
Montag, 03. Mai 2010 von sägefisch
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.
Tags:change, python, SVN, version, working copy Abgelegt in Deployment, Linux, SVN, Server, Shell, Versionierung | Keine Kommentare »
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
Tags:dir, entpacken, gzip, ordner, packen, tar Abgelegt in Deployment, Linux, Server, Shell | Keine Kommentare »
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
Tags:bash, bin, freeos, guide, Linux, scripting, Shell, ssh Abgelegt in Deployment, Linux, Server, Shell | Keine Kommentare »
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
Tags:code coverage, debug, kcachegrind, PHPUnit, profiling, stacktrace, test, var_dump, XDebug Abgelegt in Debugging, Linux, PHP, PHPUnit, Server, Shell, XDebug | Keine Kommentare »
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
Tags:hilfe, one-liner, SVN Abgelegt in Linux, SVN, Shell, Versionierung, XML | Keine Kommentare »
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
Tags:find, löschen, pipe, rekursiv, rf, rm, SVN, verzeichnis, xargs Abgelegt in Deployment, Linux, SVN, Server, Shell, Versionierung | Keine Kommentare »
Dienstag, 27. Oktober 2009 von sägefisch
Um im schlanken Webserver Lighty eine HTTP Authentifizierung für bestimmte Verzeichnisse zu erzeugen, ist es notwendig, in der /etc/lighttpd/lighttpd.conf das Server-Modul mod_access und mod_auth zu aktivieren.
server.modules = (
"mod_access",
"mod_auth",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_cgi",
"mod_fastcgi",
"mod_rewrite",
"mod_magnet",
"mod_redirect",
"mod_status",
)
Um ein Verzeichnis unterhalb eines bestehenden Webroots nun mit einer Authentifizierung zu schützen, tragen wir das in der /etc/lighttpd/vhosts.conf ein.
$HTTP["host"] =~ "(^|\.)domain\.tld$" {
server.document-root = "/home/user/pages/"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/home/user/passwd.txt"
auth.require = ("/" => (
"method" => "basic",
"realm" => "admin",
"require" => "valid-user"
)
)
}
Zu guter Letzt benötigen wir noch die /home/user/passwd.txt die die betreffenden Authentifizierungsinfos bereit hält.
user:basic_encoded_password
Fortan ist der Ordner /home/user/pages/ passwortgeschützt.
Möchte man einen Unterordner passwortschützen, trägt man diesen statt des Slashes ein:
auth.require = ("/subdir/" => (
"method" => "basic",
"realm" => "admin",
"require" => "valid-user"
)
)
Tags:authentifizierung, htaccess, http, Lighttpd, lighty, passwort, passwortschutz, verzeichnis, vhost Abgelegt in Lighttpd, Linux, Server, Shell | Keine Kommentare »
|
|