Diese Webseite nutzt Cookies

Diese Webseite nutzt Cookies zur Verbesserung des Erlebnisses unserer Besucher. Indem Sie weiterhin auf dieser Webseite navigieren, erklären Sie sich mit unserer Verwendung von Cookies einverstanden.


gelöschter Benutzer
20.04.2012, 17:47 Uhr

Arbeiten mit der Shell

Kategorie: Linux
5983 mal gelesen
3 Antworten auf dieses Thema.

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.
[SH]cd images/galerien[/SH]

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

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

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

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.
[SH]for i in `find -iname '*.jpg'`
do
convert $i -scale 800x600 $i
jpegoptim -fom90 --strip-all $i
echo "Bild $i wurde optimiert"
done[/SH]

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:
[SH]jpegoptim [options] <filenames>[/SH]
Mit xargs kann man das Resultat der Suche und dem Befehl zusammenfügen.
[SH]find -iname '*.jpg' -print0 | xargs -0 jpegoptim -fotm90 --strip-all[/SH]


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.
[SH]man convert
convert --help[/SH]



Schöne Grüße
Thomas

PS: Fortsetzung folgt



gelöschter Benutzer
19.06.2012, 16:43 Uhr

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.
[sh]mysql -u Benutzername -p Passwort[/sh]
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 (2 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.
[sh]mysqldump -p -u Benutzer Datenbank > Datenbank.sql[/sh]

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.
[sh]mysqldump -p -u Benutzer -h example.com Datenbank > Datenbank.sql[/sh]


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

Wenn das Backup lokal ist kann man es auch mit folgendem Query machen.
[SQL]SOURCE Datebnabk.sql;[/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.
[sh]mysqldump -p -u Benutzer --add-drop-table=TRUE Datenbank > Datenbank.sql[/sh]

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.

[sh]#!/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[/sh]

So viel Spaß beim testen 2

Schöne Grüße
Thomas


hansen
Bisherige Beiträge: 1882
Mitglied seit: 18.05.2009

Foren Moderator
Content Gott
19.06.2012, 17:24 Uhr

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


Benutzer Signatur:
Nepal Rundreisen


gelöschter Benutzer
19.06.2012, 18:00 Uhr

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


  • 1

Neuen Beitrag erstellen

Um einen Beitrag zu erstellen, müssen Sie eingeloggt sein. Bitte melden Sie sich an.
EinloggenRegistrieren



« zurück zur Foren Hauptseite
« zurück zur Foren Kategorie Linux

Das Seitenreport Forum hat aktuell 4134 Themen und 36056 Beiträge.
Insgesamt sind 47786 Mitglieder registriert.