root@server01: su -c /usr/scripting/minimize_css.pl www-data
Alle posts tagged mit Linux
Script unter Linux als anderer Benutzer ausführen
CSS-Minimizer Javascript-Minimizer
Das eigentliche Script zum komprimieren der Dateien ist sehr leicht zu verstehen, es wird bei Bedarf von mir ausgeführt. Einfach das Ursprungsverzeichnis und das Zeilverzeichnis konfigurieren und gut ist.
$inpath = '/var/www/www.domain.de/css_raw';
$outpath = '/var/www/domain.de/css';
opendir(DIR,$inpath) || die "$inpath: $!";
my @Dateien = readdir(DIR);
closedir(DIR);
foreach(@Dateien) {
if($_ =~ /.+\.css/) {
use CSS::Minifier qw(minify);
open(INFILE, '< '.$inpath.'/'.$_) or die('Fehler beim oeffnen der css-files'); open(OUTFILE, '> '.$outpath.'/'.$_) or die('Fehler beim erstellen der css-files');
minify(input => *INFILE, outfile => *OUTFILE);
close(INFILE);
close(OUTFILE);
}
}
Lediglich die erste Installation des Perl-Scripts oder eines Perl-Scripts allgemein, war für mich etwas neues. Das Verzeichnis habe ich nach /usr/scripting/CSS-Minifer/ bzw. /usr/scripting/CSS-Minifer/minimize_css.pl kopiert.
Hier kurz die Schritte zum Generieren der .pl-Datei und der Installation:
root@server01:/usr/scripting/CSS-Minifer$ perl Makefile.PL ......Writing Makefile for CSS::Minifier root@server01:/usr/scripting/CSS-Minifer$ make root@server01:/usr/scripting/CSS-Minifer$ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/CSS-Minifier.t .. ok All tests successful. Files=1, Tests=4, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.06 cusr 0.00 csys = 0.09 CPU) Result: PASS root@server01:/usr/scripting/CSS-Minifer$ make install Installing /usr/local/share/perl/5.10.1/CSS/Minifier.pm Installing /usr/local/man/man3/CSS::Minifier.3pm Appending installation info to /usr/local/lib/perl/5.10.1/perllocal.pod
Soweit der Abschnitt zum Perl. Jetzt noch die Pfade anpassen in der minimize.pl-Datei anpassen, die Datei selbst für das Linux System ausführbar machen und einen Testlauf machen:
root@server01: nano /usr/scripting/minimize_css.pl root@server01: chmod +x /usr/scripting/minimize_css.pl root@server01: /usr/scripting/minimize_css.pl
In meinem Fall gab es nun noch ein paar Probleme mit den Benutzerrechten, der Zielordner gehörte ja www-data und das Perl-Script konnte die komprimierten CSS- und Javascript-Dateien nicht in den Zielordner kopieren. Dies löste ich, indem ich das Script/Programm einfach als anderer Benutzer ausführte (in meinem Fall www-data).
[download link="http://www.devilweb.de/wp-content/uploads/2011/03/js_minimizer.zip" smalltext="js_minimizer.zip 24 kB"]Download JS-Minimizer[/download]
[download link="http://www.devilweb.de/wp-content/uploads/2011/03/css_minimizer.zip" smalltext="css_minimizer.zip 24 kB"]Download CSS-Minimizer[/download]
Ein letzter Patch für OpenSuse, Kinder wie die Zeit vergeht

openSuse Logo
Der letzt Patch war am 23. Juli 2010 erschienen und war definitiv der letzte für OpenSuse Linux 11.0, welche im Juni 2008 veröffentlicht wurde (Quelle: golem.de). Daran merke ich immer wie schnell die Zeit vergeht. Ich erinnere mich noch ganz genau daran, wie ich die DVD ins Laufwerk knerte und die 11er Version testete….
Links zu OpenSuse
[toggle show="show"]http://de.wikipedia.org/wiki/OpenSUSE
[/toggle]
Ein paar Wallpaper mit Linux als Thema
Da ich nun auch auf meinem eeePc endlich wieder einen Desktop habe, wollte ich mir doch auch gleich mal ein schönes Wallpaper holen, ein paar Links:
Aufbau & Funktion von Cron-Tab & Cron-Jobs
Beim Lesen des Artikel von www.lpi-certification.de habe ich mich entschlossen, einen kurzen Artikel zu schreiben, da ich das immer wieder nachschlagen muss.
Aufbau der cron-Tabellen
cron-Tabellen bestehen aus beliebig vielen Zeilen. Kommentare werden durch # in Spalte eins eingeleitet. Sie gelten bis zum Zeilenende. Leerzeilen werden ignoriert.
Nach der Deklaration lokaler Variablen folgt die eigentliche Tabelle. Diese besteht aus sieben Spalten pro Zeile. Die ersten fünf Spalten spezifizieren den Ausfügrungszeitpunkt. Die sechte Spalte enthält den Namen des Users, unter dessen Account der Dienst ausgeführt wird. Der Rest wird als siebte Spalte interpretiert und enthält die auszuführenden Befehle.
Die Terminfelder
Das erste Feld beinhaltet die Minute, das zweite die Stunde, das dritte den Tag, das vierte den Monat. dow steht für den Wochentag (day of the week).
Innerhalb der Terminfelder können die Angaben als Zahlen (im Feld month und dow auch über die englischen Namen) erfolgen. Mehrere Einzeleinträge sind möglich. Sie werden durch Kommata getrennt. Auch Bereiche können angegeben werden. 2,3,4,6 kann auch als 2-4,6 angegeben werden. Das *-Zeichen wird als Joker eingesetzt, das den Bereich ersetzen kann (<erstes Element>-<letztes Element>). Die Felder werden durch ein TAB voneinander getrennt.
Beispiele einer cron-Tabelle
Beispiel einer Crontab:
#minute hour mday month wday who command # Kommentar jede Minute ausführen: * * * * * root sh /volume1/pfad/script.sh # Jeden Tag um 22:00 h ausführen: 0 22 * * * root sh /volume1/dpfad/sript2.pl # Jeden Sa. um 23:00 h ausführen: 0 23 * * 6 root sh /volume1/pfad/script3.sh # Alle 5 min ausführen: */5 * * * * root sh /volume1/pfad/script4.pl # Alle 2 Std. ausführen: 00 */2 * * * root sh /volume1/pfad/script5.sh # Von Mo. bis Fr. um 01:00 Uhr ausführen 0 1 * * 1-5 root sh /volume1/pfad/script6.pl
Der Aufbau ist also wie folgt zu verstehen: * * * * * auszuführender Befehl ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └──── Wochentag (0-7) (Sonntag =0 oder =7) │ │ │ └────── Monat (1-12) │ │ └──────── Tag (1-31) │ └────────── Stunde (0-23) └──────────── Minute (0-59)
Ich meine mich zu erinnern, dass es systemabhängige Unterschiede gibt, was Tabulator bzw. Leerzeichen zwischen den Feldern angeht. In jedem Fall aber ist dies ein Unterschied.
Dateien unter Linux zwischen 2 Rechner mit SSH kopieren
Um Dateien von einem Rechner zum anderen zu kopieren, kann man einfach FTP benutzen, was aber gerade bei entfernten Servern zum einen nicht sonderlich sicher und zum anderen nicht möglich (weil kein FTP verfügbar) ist. Eines ist aber sicherlich verfügbar – SSH!
Also dann eben per SSH…
der Befehl: SCP
scp datei benutzer@maschiene:/ziel/verzeichnis/dateiname
Voilà – passwortphrase beantworten und Kopierfortschritt ansehen und freuen
Packen und Endpacken mit dem Befehl *tar
Zum Anfertigen von Backups ist es unerlässlich und für einen Linuxuser ein Standardwerkzeug. Das “.tar”-Archiv:
Die oder besser gesagt eine Syntax für ein tar (anfertigen:)![]()
tar -cvzf file.tar.gz inputfile1 inputfile2
Die entsprechende Syntax um das tar (zu entpacken:)
tar -xvzf file.tar.gz
Die Optionen für tar / gzip im Detail:
literal, locale, shell, shell-always, c, escape
-r, –reverse reverse order while sorting
-R, –recursive list subdirectories recursively
-s, –size (with -l, print size of each file, in blocks)
-S (sort by file size)
–sort=WORD (extension -X, none -U, size -S, time -t,)
version -v, status -c, time -t, atime -u,
access -u, use -u
–time=WORD with -l, show time as WORD instead of modification
time: atime, access, use, ctime or status; use
specified time as sort key if –sort=time
–time-style=STYLE with -l, show times using style STYLE:
full-iso, long-iso, iso, locale, +FORMAT.
FORMAT is interpreted like `date’; if FORMAT is
FORMAT1<newline>FORMAT2, FORMAT1 applies to
non-recent files and FORMAT2 to recent files;
if STYLE is prefixed with `posix-’, STYLE
takes effect only outside the POSIX locale
-t sort by modification time
-T, –tabsize=COLS assume tab stops at each COLS instead of 8
-u with -lt: sort by, and show, access time
with -l: show access time and sort by name
otherwise: sort by access time
-U do not sort; list entries in directory order
-v sort by version
-w, –width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line

![green-open-suse-wallpapers_10118_1280x800[1] green-open-suse-wallpapers_10118_1280x800[1]](http://www.devilweb.de/wp-content/uploads/2010/07/green-open-suse-wallpapers_10118_1280x8001.jpg)














