Deployment

Category Archive Deployment

Search / Replace with SED without escaping slashes

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

Tags, , , , , , , , , ,

GIT get all files a user changed

Get all the files a user changed in a GIT repository with this command:

git log --pretty="%H" --author="git.user.name" | while read commit_hash; do git show --oneline --name-only $commit_hash | tail -n+2; done | sort | uniq

Tags, , , , , , , , , , ,

definer mit sed aus mysql dump entfernen

um aus bestehenden mysqldumps die user@host definer zu entfernen kann man folgendes tun

~ $ sed -r -e "s/\/\*[^\/]*DEFINER.*\*\///g" < mysqldump.sql > mysqldump-exdefiner.sql

Tags, , , , , ,

scp (secure copy) von server zu server

um schnell (ohne evtl. nfs mount flaschenhälse) dateien von server zu server zu kopieren, kann man scp benutzen.
auf dem ziel server einloggen und:

~ $ scp user@ip_or_domain:path/to/remote/file /path/to/local/dir/   

Tags, , , , , , ,

rekursives löschen von .svn ordnern

mit folgendem befehl kann man rekursiv .svn ordner löschen:

rm -rf `find . -type d -name .svn`

Tags, , , , , , ,

kohana 3.1 unittest mit phpunit

wie man das kohana unittest modul richtig einbindet um für seine applikation bzw. module ein taugliches testframework zu haben, ist hier blog.lysender.com trefflich beschrieben.

Tags, , , , ,

crontab schnell erklärt

im ubuntu users wiki ist eine schöne knappe erklärung zu crontab:

wiki.ubuntuusers.de/Cron

Tags, , , , ,

howto purge url mit squidclient

um mit dem squidclient veraltete dateien aus dem cache zu entfernen, geht man wie folgt vor:

 
user@server:/www$ squidclient -m PURGE http://www.example.com/js/javascript.js
 

Tags, , , , , ,

howto setup ramfs und tmpfs

um schnelle dateizugriffe für caches zu realisieren, ist es angebracht diese dateistruktur im ram des rechners zu erzeugen. tmpfs und ramfs benutzen jeweils den ram des rechners und unterscheiden sich folgendermaßen:

tmpfs wächst nicht dynamisch, sondern hält immer die grösse mit der es angelegt wurde.
tmpfs benutzt den swap bereich bei überladung.

ramfs wächst dynamisch und kann sämtlichen speicher aufbrauchen.
ramfs benutzt keinen swap.

 
# mkdir -p /mnt/tmpcache
 
# mount -t tmpfs -o size=100m tmpfs /mnt/tmpcache

# mkdir -p /mnt/ramcache

# mount -t ramfs -o size=100m ramfs /mnt/ramcache
 

der befehl mount zeigt alle derzeit gemounteten dateisysteme.
die auslastung kann mittels df -k angezeigt werden

 
# df -k tmpcache/
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   102400      1588    100812   2% /mnt/tmpcache

# mount
...
tmpfs on /mnt/tmpcache type tmpfs (rw,size=100m)
ramfs on /mnt/ramcache type ramfs (rw,size=100m)

um diese ordner permanent zu mounten (auch nach systemstart) muss ein eintrag in die /etc/fstab geschrieben werden.

Tags, , ,

howto copy merge svn branch trunk

Branch erzeugen

dev@server:~/project> svn cp https://svn.example.com:88/svn/project/trunk https://svn.example.com:88/svn/project/branches/[BRANCH_NAME]

Branch aktuell halten

Es sollte immer in kurzen Abständen der Trunk in den Branch überführt werden, damit es bei späterem Zurückführen keine größeren Konflikte gibt. Mit –dry-run kann man vorher testen was bei merge passieren würde.

dev@server:~/project/branches/[BRANCH_NAME]> svn up
dev@server:~/project/branches/[BRANCH_NAME]> svn merge --dry-run https://svn.example.com:88/svn/project/trunk
dev@server:~/project/branches/[BRANCH_NAME]> svn merge https://svn.example.com:88/svn/project/trunk

Branch in den Trunk zurückführen

Mit –dry-run kann man vorher testen was bei merge –reintegrate passieren würde.

dev@server:~/project/trunk> svn merge --dry-run --reintegrate https://svn.example.com:88/svn/project/branches/[BRANCH_NAME]
dev@server:~/project/trunk> svn merge --reintegrate https://svn.example.com:88/svn/project/branches/[BRANCH_NAME]

Tags, , , , ,