Du bist hier:  Seitenreport    Forum    Betriebssysteme    Linux    Arbeiten mit der Shell

Arbeiten mit der Shell

Verfasst am: 20. 04. 2012 [17:47]
Ultima
867 Beiträge
Fachinformatiker / Anwendungsentwicklung
Dabei seit: 09.07.2010

✓ Seitenreport Vorantreiber
Themenersteller

Beitrag hilfreich?

Hallo Seitenreporter,

hier mal einpaar kleine Tipps und Tricks zum arbeiten mit der Shell. Fangen wir mal mit der Bildoptimierung an.


Wir haben Folgendes Scenario:
Man möchte eine Website publishen und diese hat sehr viele Bilder, verteilt in vielen verschieden Verzeichnissen.

Nun will man diese auf die richtigen Maße bringen und Weboptimiert speichern. Jedes Bild einzeln zu öffnen und zu skalieren kann dann sehr viel Zeit kosten.


Wie geht man vor?
Zurerst einmal mit cd in das richtige Verzeichnis wechseln.
SHELL
cd images/galerien


Von dort ausgehend kann man sich alle Bilder (zB *.jpg) mit find herraus suchen.
SHELL
find -iname '*.jpg'


Wenn man nun die Bilder skalieren möchte, kann man das mit der ImageMagick Bibliothek tun.
SHELL
convert bild.jpg -scale 800x600 bild.jpg


Nun kann man die Bilder noch optimieren um die Dateigröße zu minimieren. Hier für gibt es das Tool jpegoptim.
SHELL
jpegoptim -fom90 --strip-all bild.jpg


Jetzt ist das Bild bild.jpg auf 800x600px skaliert und mit einer Qualität von 90% optimiert.

Da wir das aber nicht für jedes Bild einzeln machen wollen packt man das ganze in eine for Schleife.
SHELL
for i in `find -iname '*.jpg'`
do
convert $i -scale 800x600 $i
jpegoptim -fom90 --strip-all $i
echo "Bild $i wurde optimiert"
done


Wenn man einfach nur optimieren möchte kann man das auch mit xargs machen, da jpegoptim mehrere Bilder gleichzeitig als Parameter entgegen nimmt. Die Syntax wäre so:
SHELL
jpegoptim [options] <filenames>

Mit xargs kann man das Resultat der Suche und dem Befehl zusammenfügen.
SHELL
find -iname '*.jpg' -print0 | xargs -0 jpegoptim -fotm90 --strip-all



Und das wars auch schon. Wenn man statt jpgs, pngs oder gifs optimieren möchte wechsel man einfach das Tool.

optipng - Optimiert pngs und korrigiert Fehler
pngnq, pngquant - reduzieren die Farbpalette von pngs
gifscale - kann gifs optimieren und bearbeiten


Mit ImageMagick kann man noch sehr viel mehr machen, als einfach nur skalieren. Es lassen sich Effekte wie Sepia oder Schwarz/Weiß auf Bilder anwenden, man kann Bilder auch zerschneiden oder Wassermarken einfügen und noch viel viel mehr.

Wenn man mehr Informationen zu den Befehlen habe möchte, kann man auf in der Shell folgende Befehle verwenden.
SHELL
man convert
convert --help




Schöne Grüße
Thomas

PS: Fortsetzung folgt

Mein Portal: Ultima-Project.net


Verfasst am: 19. 06. 2012 [16:43]
Ultima
867 Beiträge
Fachinformatiker / Anwendungsentwicklung
Dabei seit: 09.07.2010

✓ Seitenreport Vorantreiber
Themenersteller

Beitrag hilfreich?

Hi Community,

es ist Zeit für eine kleine Fortsetzung, Heute mal zum Thema Datenbanken Backup über die Shell. Für die Beispiele hier verwende ich MySQL.

Mit diesen Befehl kann man sich ganz einfach über den Clienten mit dem SQL Server Verbinden und seine Querys senden.
SHELL
mysql -u Benutzername -p Passwort

Wenn man sein Passwort nicht direkt und für alle sichtbar auf der Kommandozeile eintippen will lässt man das Passwort einfach weg, danach kommt eine verschleiert Eingabemaske des Passwortes.

Danach kann man alle Abfragen direkt eintippen und ausführen lassen, ein Semikolon (;) schließt das Kommando ab.


Nun zum eigentlichen, wie macht man ein Backup.
Dazu gibt es den Befehl mysqldump. Hier mal ein Beispiel.
Die Ausgabe würde direkt auf dem Bildschirm erscheinen wenn man sie nicht mit > Datenbank.sql auf eine Datei umleitet.
SHELL
mysqldump -p -u Benutzer Datenbank > Datenbank.sql


Wenn man ein Backup von einem externen Server (also nicht localhost) machen möchte gibt man dazu einfach den Host an. Der Benutzer braucht dazu aber die entsprechenden Rechte, sich von einem externen Server mit dem SQL Server verbinden zu dürfen. Wenn man den Parameter -h einfach weg lässt wird auf den localhost zugegriffen.
SHELL
mysqldump -p -u Benutzer -h example.com Datenbank > Datenbank.sql



Nun haben wir unser Backup, jetzt gibt es mehre Möglichkeiten es wieder einzuspielen.
SHELL
mysql -u Bennutzer -p -D Datenbank < Datenbank.sql


Wenn das Backup lokal ist kann man es auch mit folgendem Query machen.
SQL
SOURCE Datebnabk.sql;


Wenn man eine bestehende Datenbank und ihre Tabellen überschreiben möchte muss man das beim Export festlegen oder man leert die Datenbank von Hand.
SHELL
mysqldump -p -u Benutzer --add-drop-table=TRUE Datenbank > Datenbank.sql


und das war es eigentlich auch schon.
Zum Schluß hab ich noch ein kleines Shell Skript für euch mit den ganz einfach alle Datenbanken einzeln exportiert werden. Die Daten werden anschließend komprimiert.

SHELL
#!/bin/sh
 
echo "Benutzername?"
read user
echo "Passwort ?"
stty -echo
read pass
stty echo
 
for db in `mysql -u$user -p$pass -e 'SHOW DATABASES;' --column-names=FALSE`
        do
	if [ "$db" = "mysql" -o "$db" = "information_schema" -o "$db" = "performance_schema" ]
		then	echo "skip $db"
		else
		        echo "Exportiere: $db"
			mysqldump -u$user -p$pass $db > $db.sql
			zip $db.sql.zip $db.sql
			rm $db.sql
		fi
        done


So viel Spaß beim testen ;)

Schöne Grüße
Thomas

Mein Portal: Ultima-Project.net


Verfasst am: 19. 06. 2012 [17:24]
hansen
1937 Beiträge
Dabei seit: 18.05.2009

✶✶ Sehr aktiver Seitenreport Vorantreiber

Beitrag hilfreich?

Hallo Thomas,

die Arbeit, die Du Dir damit machst, geht hier im Forum etwas unter.
Hier wäre es doch besser aufgehoben und auch Du hättest etwas mehr davon:

Artikel Seitenreport

Wobei es aber auch die Qualität des Forums steigert.

Gruß
hansen



Verfasst am: 19. 06. 2012 [18:00]
Ultima
867 Beiträge
Fachinformatiker / Anwendungsentwicklung
Dabei seit: 09.07.2010

✓ Seitenreport Vorantreiber
Themenersteller

Beitrag hilfreich?

Hi Hansen,

ich hatte es mal im Blog probiert aber irgendwas ging da nicht richtig (ist schon ne weile her) und da hab ichs hier rein geschrieben.

Schöne Grüße
Thomas

Mein Portal: Ultima-Project.net





to Top to Top

Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:

RSS Feed abonnieren


0 Mitglieder waren innerhalb der letzten 15 Minuten online (4 heute gesamt):
[keine]

Administratoren und Moderatoren:
[keine]

Seitenreport hat 45795 registrierte Mitglieder, 4288 Themen und 37434 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 6 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 0 neue Themen und 0 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Seitenreport API

Verfolge die SERP Positionen Deiner Keywords und erhalte Informationen über verwendete Mikroformate, frage die Ergebnisse unserer Analysen live ab oder greife auf unsere History-Datenbank zu. Dies alles bietet Dir die neue Seitenreport API. Kontaktiere uns, um weitere Infos zu erhalten.