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
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
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
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/
mit folgendem befehl kann man rekursiv .svn ordner löschen:
rm -rf `find . -type d -name .svn`
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.
im ubuntu users wiki ist eine schöne knappe erklärung zu crontab:
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
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.
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]