MySQL-Server beschleunigen

Nutze Google’s perftools um die Geschwindigkeit deines MySQL-Server zu erhöhen.

Das Google Perftools, insbesondere tcmalloc (Thread Caching Malloc), kann helfen z.B. den MySQL-Server zu beschleunigen…

TCMalloc ist schneller als die glibc 2.3 malloc (Wiki). Die Geschwindigkeitsvorteile durch die verbesserte Speicherzuordnung, kannst du wie folgt in MySQL integrieren.

Vorausgesetzt du nutzt Debian 5 (Lenny) oder neuer… fügen wir als erstes neue Repositories in der sources.list ein.

echo 'deb http://dotdeb.netmirror.org/ stable all' >> /etc/apt/sources.list
echo 'deb-src http://dotdeb.netmirror.org/ stable all' >> /etc/apt/sources.list

und aktualisieren ggf. den MySQL-Server auf Version 5.1

apt-get update
aptitude install mysql-server-5.1
aptitude install libtcmalloc-minimal0

Seit den mainstream MySQL-Paketen sind diese nicht mit den tcmalloc compiliert, daher müssen wir einen dynamischen OS’ Linker einbauen, indem wir folgende Zeile in dem MySQL init-Skript einfügen:

vim /etc/init.d/mysql

export LD_PRELOAD=”/usr/lib/libtcmalloc_minimal.so.0″

Capture - libtcmalloc
Capture - libtcmalloc

Nach einen restart des MySQL-Servers durch das init-Skript, profitiert dieser nun von der schnellern Speicherzuteilung.

/etc/init.d/mysql restart

Link:
www.dotdeb.org

Download YouTube Videos

Wer ein YouTube Video herunterladen möchte oder den entsprechenden Song als MP3 haben möchte, kann wie folgt vorgehen.

Download YouTube Videos mit youtube-dl:

1.) entsprechende Software installieren

sudo aptitude install youtube-dl

2.) und schon kannst du ein Video herunterladen

youtube-dl -o [ neuer Dateiname ] [ YouTube URL ]

Beispiel:

youtube-dl -o ubuntu9_10.flv http://www.youtube.com/watch?v=lYgWE6Svpag

Link:
bitbucket.org/rg3/youtube-dl/wiki/Home

Download YouTube Videos mit youtube-dl + konvertiere das Video als MP3:

1.) entsprechende Software installieren

sudo aptitude install youtube-dl mencoder

2.) das folgende Skript kann hier herruntergeladen werden oder per wget geladen werden…

wget http://linuxegyszeruen.homelinux.org/e107_files/downloads/youtube.sh

3.) den Skript werden nun noch Ausführ-Rechte zugeteilt

chmod +x youtube.sh

4.) und schon kann man das Video als MP3 herunterladen

youtube.sh [ YouTube URL ] szerzo-cim

Beispiel:

youtube.sh http://www.youtube.com/watch?v=lYgWE6Svpag szerzo-cim

Link:
linuxegyszeruen.homelinux.org

Download YouTube Videos mit Firefox + konvertiere das Video als MP3:

Alternativ kannst du “Video DownloadHelper” für Firefox installieren und wenn gewünscht ein entsprechendes Programm um das Video als MP3 zu speichern.

1.) Firefox-Extension installieren

addons.mozilla.org/en-US/firefox/addon/3006

2.) entsprechende Software installieren

sudo aptitude install ffmpeg

3.) “Video DownloadHelper” wie folgt konfigurieren

Download YouTube Videos
Download YouTube Videos

gpm – nutze die Maus in der Konsole

gpm (=General Purpose Mouse Interface) ist ein Systemdienst, welcher die Nutzung des Mauszeigers in der Systemkonsole ermöglicht. – Ubuntu-Wiki

Install:

aptitude install gpm

Nun kannst du die Maus in der Konsole benutzen um z.B. den Midnight Commander oder aptitude zu steuern. Man kann nun zudem wie in X gewohnt kopieren und markieren.

find a fast DNS-Server

Mit folgendem Programm kannst du die DNS-Server herausfinden, welche für dich am besten sind. Es werden deine momentan bereits eingetragenen DNS-Server, plus 3 bekannte globale DNS-Server und 4-6 zusätzliche, welche für deinen Standort zu bevorzugen sind geprüft.

HowTo für Linux:

cd /usr/src/
wget http://namebench.googlecode.com/files/namebench-1.3.1-source.tgz
tar xvf namebench-*.tgz
rm namebench-*.tgz
cd namebench-*/
./namebench.py

danach kann bei Desktop-PC in den Netzwerkeinstellungen (gnome/kde/lxde/…) diese DNS-Server eingetragen werden oder diese direkt in der folgenden Datei eintragen

vim /etc/resolv.conf

wenn du schnelle DNS-Server für Windows oder Mac suchst, kannst da das selbe Programm unter folgendem Link herunterladen und ausprobieren…


namebench
namebench



namebench - 2
namebench - 2



namebench - 3
namebench - 3


Download:
code.google.com/p/namebench/downloads

Link:
code.google.com/p/namebench

HTML-Umlaute korrigieren

Mit dem folgendem Befehl kann man in allen “html”-Dokumente, im aktuellen Verzeichnis (+ Unterverzeichnissen) die HTML-Umlaute korrigieren lassen.

find . -iname "*.html" -exec sed -i 's/[äöüÄÜÖ]/\&¨/g;y/äöüÄÖÜ/aouAOU/;' {} \;
find . -iname "*.html" -exec sed -i 's/ß/\&szlig\;/g' {} \;

weiter “find”-Beispiele findest du hier:
suckup.de/linux/find-linux/

HowTo – aktualisiere die Ubuntu-ISO

zsync ist ein File-Transfer-Programm, ähnlich wie rsync. Es ist für die Verteilung von Dateien über Internet optimiert, so soll eine Datei auf einem Server, zu Tausenden Client verteilt werden können.

Install:

sudo aptitude install zsync

Wir können dies nun nutzen, um unsere Ubuntu-ISO auf die neueste Stand zu aktualisieren. Zum Beispiel, wenn du zuvor Ubuntu 9.10 (Karmica Koala) als “Alpha 6” heruntergeladen hast, kannst du mit dem folgendem Befehl auf die aktuelle Beta-Version upgraden.

Beispiel:

zsync -i karmic-desktop-i386.iso http://releases.ubuntu.com/karmic/ubuntu-9.10-beta-desktop-i386.iso.zsync

[gefunden auf Unix-lab]

aptitude & dpkg

Das dpkg-Programm war Anfangs dafür gedacht, dass man seine installierten Pakete verwalten kann. Doch man brauchte auch noch ein Programm welches schnell, praktisch und effizient im Umgang mit Pakete ist, so sollte es Pakete installieren, dessen Abhängigkeiten automatisch behandeln und ihre Konfigurationsdateien während des Aktualisierens berücksichtigen, genau für diesen Zweck wurde dann APT (Advanced Packaging Tool) entwickelt.

dpkg:

dpkg -l

z.B.:

dpkg -l | awk '{print $2}'

-> zeigt alle installierten Pakete an
(zeigt nur die installierten Paket-Namen an)

dpkg -l "*"

-> zeigt aller verfügbaren Pakete an

dpkg -l irgendwas

-> zeigt alle Pakete an in dessen Namen “irgendwas” vorkommt

dpkg -p paket

-> anzeigen von Informationen (z.B. Beschreibung, Größe, Version…) von installierten Paketen an

dpkg -i programm.deb

-> lokales Paket installieren

dpkg -r paket

-> (–remove) Paket deinstallieren (Konfiguration wird beibehalten)

dpkg -p paket

-> (–purge) Paket deinstallieren (auch die Konfiguration)

dpkg -S irgendwas

z.B.:

dpkg -S `which ls`

-> zeigt alle installierten Dateien und dazugehörige Pakete zu dem Suchbegriff “irgendwas” an
(zeigt das Paket an, zu dem das Programm “ls” gehört)

dpkg -L paket

-> zeigt die zugehörigen Dateien zu einem installierten Paket an

dpkg-reconfigure paket

-> konfiguriert ein Paket neu

dpkg-statoverride --update --add

-> überschreibt die Rechte für die eine Datei, auch nach einem Update

z.B.:

dpkg-statoverride --update --add nagios www-data 660 /var/lib/icinga/rw/icinga.cmd

-> chown nagios:www-data && chmod 660 – wird nach Updates auf die angegebene Datei durchgeführt

dpkg-statoverride --remove

-> setzt die Rechte einer Datei wieder auf den Standard zurück

dpkg-statoverride --list

-> zeigt die veränderten Dateien an

 

aptitude:

aptitude update

-> Update von allen Einträgen in /etc/apt/sources.list

aptitude upgrade

-> Upgrade, wenn ein Paket veraltet ist

aptitude install paket

-> Installiert das Paket “paket” und ggf. dessen Abhängigkeiten

aptitude remove paket

-> Paket deinstallieren (Konfiguration wird beibehalten)

aptitude purge paket

-> Paket deinstallieren (auch die Konfiguration)

aptitude search irgendwas

-> Sucht in allen Beschreibungen und Paket-Namen nach “irgendwas”

aptitude show paket

-> anzeigen von Informationen (z.B. Beschreibung, Größe, Version…)

aptitude -t

-> führt aptitude mit einem bestimmten Repository aus (Repository -> /etc/apt/sources.list)
z.B.:

aptitude -t etch-backports -V install clamav clamav-daemon clamav-freshclam

Grafischer-Modus in der Konsole:

aptitude

F10 : Zeigt das Menü an

(Info: Wenn du die Konsole auf deinem Desktop öffnest, kannst du auch mit der Maus auf das Menü klicken)

q : Ende oder Zurück (quit)

u : Update die Paket Liste (sourcres.list)

/ : Suche nach einem Paket

n : Noch mal nach dem selben suchen (next)

f : “new packages” verwerfen

Wenn du dein gesuchtes Paket nun gefunden hast:

+ : Markiert das Paket zum installieren oder updaten
: Markiert das Paket zum deinstallieren
_ : Markiert ein Paket zum purging (siehe oben)
: : Bricht alle Aktionen für ein Paket ab
b : Zeigt Abhängigkeitsprobleme an
! : Versucht Abhängigkeitsprobleme zu lösen
. : um zu versuchen die Abhängigkeiten anders aufzulösen
U : Markiert alle vorhanden Upgrades zum installieren

Wenn du nun mit deiner Auswahl zufrieden bist:

g : Zum zustimmen und zur Übersicht gehen (an dieser Stelle löst aptitude die Abhängigkeiten automatisch auf), dort musst du mit wiederholten “g” diese Übersicht bestätigen. Fertig.

Tipp: RegEx für aptitude

Man kann auch via RegEx suchen (sowohl in der “GUI” aus auch auf der Kommandozeile) z.B.: ^ack-grep$

Erlaubte RegEx: “.” – “+”, “”, “(“, “)”, “|”, “[“, “]”, “^”, “$”, “?”

 

Quellen:
https://www.debian.org/doc/manuals/debian-reference/ch02.de.html
http://wiki.ubuntuusers.de/dpkg
http://wiki.ubuntuusers.de/apt/apt-get
http://wiki.ubuntuusers.de/aptitude

Linux / Kernel Version anzeigen lassen

Ubuntu:

lsb_release -a

z.B.:

Distributor ID: Ubuntu
Description: Ubuntu karmic (development branch)
Release: 9.10
Codename: karmic

cat /etc/lsb-release

z.B.:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.10
DISTRIB_CODENAME=karmic
DISTRIB_DESCRIPTION=”Ubuntu karmic (development branch)”

Allgemein:

cat /etc/issue

z.B.:

Debian GNU/Linux 5.0 n l

cat /proc/version

z.B.:

Linux version 2.6.26-2-686 (Debian 2.6.26-19) (dannf@debian.org)
(gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Wed Aug 19 06:06:52 UTC 2009

uname -a

z.B.:

Linux test-server 2.6.26-2-686 #1 SMP Wed Aug 19 06:06:52 UTC 2009 i686 GNU/Linux

Web Proxy Auto Detection (WPAD)

Wer seinen Browser so einstellt, dass dieser den Proxy (z.B. Squid) im Netzwerk selber finden soll, muss man folgendes zuvor in seiner Konfiguration des Servers anpassen.

1.) Webserver Konfigurieren

ggf. den Webserver installieren, wenn es keinen im Netzwerk gibt

aptitude install apache2

folgende Datei anpassen

vim /etc/apache2/httpd.conf

AddType application/x-ns-proxy-autoconfig.dat

in der zuvor angegebenen Datei angeben und danach den Webserver neu-starten

/etc/init.d/apache2 reload

Datei im Web-Verzeichnis erstellen, so dass alle im Netzwerk darauf zugreifen können.

vim /var/www/wpad.dat

function FindProxyForURL(url, host)
{
if (isInNet(host, "x.x.x.0", "255.255.255.0"))
return "DIRECT";
else
return "PROXY x.x.x.x:8080";
}

folgende Dinge müssen noch angegeben werden

x.x.x.0 -> Netzwerk

x.x.x.x:8080 -> Proxy-IP:Port

2.) DHCP-Server Konfigurieren

Einen DHCP-Server installieren, dabei muss beachtet werden, dass der DHCP-Server der CPE (Router) welcher Standardmäßig aktiv ist, zuvor deaktiviert werden muss.

aptitude install dhcp3-server

vim /etc/dhcp3/dhcpd.conf

als Beispiel gebe ich hier meine Konfigurations-Datei an

server-identifier 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
        pool {
            deny dynamic bootp clients;
            range 192.168.0.1 192.168.0.100;
            default-lease-time 360000;
            max-lease-time 600000;
        }
option subnet-mask 255.255.255.0;
option domain-name "test.dyndns.ws";
option routers 192.168.0.254;
option wpad "http://192.168.0.254/proxy.pac";
option domain-name-servers 192.168.0.254, 192.168.1.2;
option ntp-servers 192.168.0.254, 212.20.160.4;
option custom-proxy-server "http://192.168.0.232/wpad.dat"
}

Diese Konfigurations-Datei ist nur ein Beispiel und kann so nicht übernommen werden!!!

die Zeile um die es in diesem HowTo geht ist:

option custom-proxy-server "http://192.168.0.232/wpad.dat"

nach der Anpassung der Konfiguration muss auch der DHCP-Server neu-gestartet werden

/etc/init.d/dhcp3 restart

Video Cache – mit Squid im lokalen Netz

Heute stelle ich ein Programm für Squid vor, welches jedoch nicht mehr in der Form als freies Programm weiterentwickelt wird,

Unterstützte Webseiten:

1. Youtube Videos – youtube.com
2. Metacafe Videos – metacafe.com
3. DailyMotion Videos – dailymotion.com
4. Google Videos – video.google.com
5. Vimeo HD Videos – vimeo.com
6. Wrzuta Audio – wrzuta.pl
7. MSN Soapbox Videos – soapbox.msn.com
8. Blip TV Videos – blip.tv
9. Break Videos – break.com
10. TV UOL – tvuol.uol.com.br
11. Red Tube Videos
12. X Tube Videos
13. You Pron Videos
14. Tube 8 Videos

Was wird vorausgesetzt?

1.) Squid >= 2.6

2.) Python = 2.4 oder 2.5

3.) Python-urlgrabber

4.) Python-iniparse

5.) Apache ( bzw. Web Server)

Installation:

1.) python-urlgrabber installieren

aptitude install python-urlgrabber

2.) python-iniparse installieren

cd /usr/src/
wget http://iniparse.googlecode.com/files/python-iniparse_0.3.1-1_all.deb
dpkg -i python-iniparse_0.3.1-1_all.deb

3.) VideoCache installieren

cd /usr/src/
wget http://voku-online.de/videocache-1.9.2.tar.gz
tar -xzf videocache-1.9.2.tar.gz
cd videocache-1.9.2/
./setup-deb.py  install
cp videocache-httpd.conf /etc/apache2/conf.d/videocache.conf
cp videocache-sysconfig.conf /etc/videocache.conf
vim /etc/videocache.conf

cachevideos.com/configure

# Wo lauscht dein Squid-Proxy?
proxy = http://127.0.0.1:8080/
# nicht localhost oder 127.0.0.1 als cache_host verwenden, da man dort später nicht per Webserver-Cache zugreifen kann
cache_host = proxy.domain.tld
cp update-vc /usr/sbin/update-vc
chmod 744 /usr/sbin/update-vc
cp scripts/vccleaner /usr/sbin/vccleaner
chmod 744 /usr/sbin/vccleaner
cp -r videocache /usr/share/
cd /var/spool/
mkdir videocache
mkdir videocache/tmp videocache/youtube videocache/metacafe videocache/dailymotion videocache/google videocache/redtube videocache/xtube videocache/vimeo videocache/wrzuta videocache/youporn videocache/soapbox videocache/tube8 videocache/tvuol videocache/bliptv videocache/break
chown -R proxy:proxy videocache
chmod -R 755 videocache
mkdir -p /var/log/videocache
chmod -R 755 /var/log/videocache/
chown -R proxy:proxy /var/log/videocache/
/etc/init.d/apache2 restart

vim /etc/squid3/squid.conf

url_rewrite_program /usr/bin/python /usr/share/videocache/videocache.py
url_rewrite_children 7
acl videocache_allow_url url_regex -i .youtube.com/get_video?
acl videocache_allow_url url_regex -i .youtube.com/videoplayback .youtube.com/videoplay .youtube.com/get_video?
acl videocache_allow_url url_regex -i .youtube.[a-z][a-z]/videoplayback .youtube.[a-z][a-z]/videoplay .youtube.[a-z][a-z]/get_video?
acl videocache_allow_url url_regex -i .googlevideo.com/videoplayback .googlevideo.com/videoplay .googlevideo.com/get_video?
acl videocache_allow_url url_regex -i .google.com/videoplayback .google.com/videoplay .google.com/get_video?
acl videocache_allow_url url_regex -i .google.[a-z][a-z]/videoplayback .google.[a-z][a-z]/videoplay .google.[a-z][a-z]/get_video?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/videoplayback?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/videoplay?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/get_video?
acl videocache_allow_url url_regex -i proxy[a-z0-9-][a-z0-9][a-z0-9][a-z0-9]?.dailymotion.com/
acl videocache_allow_url url_regex -i vid.akm.dailymotion.com/
acl videocache_allow_url url_regex -i [a-z0-9][0-9a-z][0-9a-z]?[0-9a-z]?[0-9a-z]?.xtube.com/(.*)flv
acl videocache_allow_url url_regex -i bitcast.vimeo.com/vimeo/videos/
acl videocache_allow_url url_regex -i va.wrzuta.pl/wa[0-9][0-9][0-9][0-9]?
acl videocache_allow_url url_regex -i .files.youporn.com/(.*)/flv/
acl videocache_allow_url url_regex -i .msn.com.edgesuite.net/(.*).flv
acl videocache_allow_url url_regex -i media[a-z0-9]?[a-z0-9]?[a-z0-9]?.tube8.com/ mobile[a-z0-9]?[a-z0-9]?[a-z0-9]?.tube8.com/
acl videocache_allow_url url_regex -i .mais.uol.com.br/(.*).flv
acl videocache_allow_url url_regex -i .video[a-z0-9]?[a-z0-9]?.blip.tv/(.*).(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram)
acl videocache_allow_url url_regex -i video.break.com/(.*).(flv|mp4)
acl videocache_allow_dom dstdomain .mccont.com .metacafe.com .redtube.com .cdn.dailymotion.com
acl videocache_deny_url url_regex -i http://[a-z][a-z].youtube.com http://www.youtube.com
url_rewrite_access deny videocache_deny_url
url_rewrite_access allow videocache_allow_url
url_rewrite_access allow videocache_allow_dom
redirector_bypass on

# videocache (127.0.0.1/32) benätigt Zugriff auf Squid
acl our_networks src 127.0.0.1/32 192.168.XXX.0/24 192.168.YYY.0/24
/etc/init.d/squid3 restart

-> im Browser testen

tail -f /var/log/videocache/videocache.log
cd /var/spool/videocache
du -hs

Falls jemand bereits ein “url_rewrite_program” mit seinem Squid nutzt, z.B. zapper und squidclamav dann kann man diese auch gemeinsam mit videocache bereiben. ->

vim /usr/local/bin/wrapzap

#!/bin/sh
squidclamav=/usr/local/bin/squidclamav
zapper=/usr/local/bin/squid_redirect
# NOTICE THE CHANGE -- CHANGE No. 1
videocache=/usr/share/videocache/videocache.py

[...]

# Exec the real zapper (chained with SquidClamav)
#exec /usr/local/bin/zapchain "$zapper" "$squidclamav"
# NOTICE THE CHANGE -- CHANGE NO. 2
exec /usr/local/bin/zapchain "$zapper" "$squidclamav" "$videocache"