Zeile 1: |
Zeile 1: |
| + | ==ash optimierungen== |
| + | ===Konstrukte die das gleiche machen, aber sich in der Geschwindigkeit unterscheiden=== |
| + | |
| + | <source lang="bash"> |
| + | #!/bin/sh |
| + | todo |
| + | </source> |
| + | |
| + | time script.sh |
| + | |
| + | |
| + | Tags: bash, ash, speedup, optimize, script, faster | [[Benutzer:Fries43|fries43]] 15:50, 31. Jan. 2010 (UTC) |
| + | |
| + | ==NV-RAM-Variablen loeschen== |
| + | ===alle variablen auf openWRT-Whiterussian (freifunk-firmware) entfernen=== |
| + | |
| + | <source lang="bash"> |
| + | ssh router |
| + | |
| + | cd /tmp |
| + | wget http://intercity-vpn.de/firmware/broadcom/images/testing/tarball.tgz |
| + | cd / |
| + | tar xzf /tmp/tarball.tgz |
| + | rm /tmp/tarball.tgz |
| + | |
| + | touch /tmp/DEBUG |
| + | /etc/kalua_init # vorher evtl. noch im skript BASEDIR umbiegen, falls der tarball z.b. in der RAM-Disk liegt |
| + | |
| + | for FILE in $( _firmware filelist ); do { |
| + | rm "$FILE" |
| + | } done |
| + | |
| + | cat >/tmp/.autorun <<EOF |
| + | rm \$0; . /tmp/loader |
| + | _profile unset_nvram_group |
| + | _profile rebuild_cfe |
| + | _hardware remap_devs |
| + | _nvram set boot_wait on |
| + | _nvram set commit 'alles neu macht der fruehling' |
| + | rm -fR /tmp/kalua |
| + | EOF |
| + | |
| + | chmod +x /tmp/.autorun |
| + | </source> |
| + | |
| + | man kann nun im syslog mitlesen, was gemacht wird. fuer ein schoeneres syslog gibt man ein |
| + | |
| + | <source lang="bash"> |
| + | killall syslogd |
| + | syslogd -O /tmp/syslog -s 8 |
| + | tail -f /tmp/syslog |
| + | </source> |
| + | |
| + | Auf einem Geraet mit nur 8mb RAM sollte man entweder alle Dienste beenden (telnetd und init reicht zum Arbeiten) oder das landen vom WLAN-Treibers in /etc/init.d/S10boot unterbinden/auskommentieren) |
| + | |
| + | Fertig! |
| + | |
| + | Tags: nvram erase mtd factory defaults broadcom linksys freifunk | [[Benutzer:Fries43|fries43]] 14:38, 23. Nov. 2009 (UTC) |
| + | |
| + | =Email mit mehreren Postfaechern einrichten= |
| + | ==welche Programme muessen warum und wie installiert werden== |
| + | |
| + | Der Benutzer_A auf Maschine_A moechte Email mit <tt>mutt</tt> lesen und schreiben. <tt>Fetchmail</tt> holt die Mails aus mehreren Postfaechern ab und stellt diese automatisch (definierbaren) lokalen Benutzern zu. Die Zustellung erfolgt dabei zu einem lokal laufenden SMTP-Server, in diesem Fall <tt>exim</tt>. Die lokalen Benutzerpostfaecher sind im <tt>mbox</tt>-Format unter <tt>/var/mail/$USERNAME</tt> vorhanden. Ansonsten haengen die Mails irgendwie unter <tt>/var/spool/exim/input/</tt> fest, wobei <tt>*-H</tt> die Mailheader sind und <tt>*-D</tt> die eigentlichen Maildaten. |
| + | |
| + | <source lang="bash"> |
| + | # Diagnose/Tests: |
| + | Benutzer_A@box:~$ echo "Inhalt" | mail -v -s "Betreff" Benutzer_A@localhost |
| + | Benutzer_A@box:~$ sudo chown Benutzer_A:users /var/mail/Benutzer_A |
| + | Benutzer_A@box:~$ ln -s /var/mail/Benutzer_A Mail/posteingang |
| + | </source> |
| + | |
| + | Fertig! |
| + | |
| + | Tags: email, exim, mutt, fetchmail | [[Benutzer:Fries43|fries43]] 09:54, 29. Aug. 2009 (UTC) |
| + | |
| =SSH-Login ohne Passwort eingeben= | | =SSH-Login ohne Passwort eingeben= |
| ==bequemes einloggen ohne jedesmal die Passwortabfrage ueber sich ergehen lassen zu muessen== | | ==bequemes einloggen ohne jedesmal die Passwortabfrage ueber sich ergehen lassen zu muessen== |
Zeile 4: |
Zeile 79: |
| Der Benutzer_A auf Maschine_A moechte sich gerne als Benutzer_B an Maschine_B anmelden: | | Der Benutzer_A auf Maschine_A moechte sich gerne als Benutzer_B an Maschine_B anmelden: |
| | | |
− | Benutzer_A@Maschine_A:~$ ssh-keygen -t rsa -b 2048 | + | <source lang="bash"> |
− | Benutzer_A@Maschine_A:~$ ssh-copy-id -i /home/Benutzer_A/.ssh/id_rsa.pub Benutzer_B@Maschine_B | + | userA@pcA:~$ [ ! -e ~/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -b 2048 # wenn noch nicht da, privaten key erzeugen |
| + | userA@pcA:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 22 userB@pcB' # oeffentlichen schluessel rueberkopieren |
| + | userA@pcA:~$ ssh -i ~/.ssh/id_rsa userB@pcB # identitaet explizit angeben |
| + | |
| + | userB@pcB:~$ ...have a lot of fun! |
| + | </source> |
| | | |
| Fertig! | | Fertig! |
| | | |
− | Tags: SSH, ohne Passwort, public key authorization, login, password, ssh-copy-id | [[Benutzer:Fries43|fries43]] 22:04, 7. Nov. 2008 (UTC) | + | Tags: SSH, ohne Passwort, public key authorization, port, login, password, ssh-copy-id | [[Benutzer:Fries43|fries43]] 22:04, 7. Nov. 2008 (UTC) |
| | | |
| =.mov-2-mpeg4= | | =.mov-2-mpeg4= |
Zeile 18: |
Zeile 98: |
| Gerade Fotoapparate bieten neuerdings die Moeglichkeit auch ein Video aufzunehmen. Diese werden dann als .mov gespeichert, sind richtig grosse Dateien, die sich schlecht per Mail verteilen lassen. Selbst ein hochladen zu diversen Videoportalen - damit es die lieben Verwandten anschauen koennen - wird zur Geduldsprobe. Beispiel: | | Gerade Fotoapparate bieten neuerdings die Moeglichkeit auch ein Video aufzunehmen. Diese werden dann als .mov gespeichert, sind richtig grosse Dateien, die sich schlecht per Mail verteilen lassen. Selbst ein hochladen zu diversen Videoportalen - damit es die lieben Verwandten anschauen koennen - wird zur Geduldsprobe. Beispiel: |
| | | |
− | <pre> | + | <source lang="bash"> |
− | bastian@terastar:~$ ls -sh video.mov | + | bastian@terastar:~$ ls -sh video.mov |
− | 866M video.mov | + | 866M video.mov |
| | | |
− | bastian@terastar:~$ mplayer -frames 0 -identify -vo null video.mov 2>/dev/null | grep ID_ | + | bastian@terastar:~$ mplayer -frames 0 -identify -vo null video.mov 2>/dev/null | grep ID_ |
− | ID_VIDEO_ID=0 | + | ID_VIDEO_ID=0 |
− | ID_AUDIO_ID=1 | + | ID_AUDIO_ID=1 |
− | ID_FILENAME=video.mov | + | ID_FILENAME=video.mov |
− | ID_DEMUXER=mov | + | ID_DEMUXER=mov |
− | ID_VIDEO_FORMAT=jpeg | + | ID_VIDEO_FORMAT=jpeg |
− | ID_VIDEO_BITRATE=0 | + | ID_VIDEO_BITRATE=0 |
− | ID_VIDEO_WIDTH=640 | + | ID_VIDEO_WIDTH=640 |
− | ID_VIDEO_HEIGHT=480 | + | ID_VIDEO_HEIGHT=480 |
− | ID_VIDEO_FPS=30.000 | + | ID_VIDEO_FPS=30.000 |
− | ID_VIDEO_ASPECT=0.0000 | + | ID_VIDEO_ASPECT=0.0000 |
− | ID_AUDIO_FORMAT=raw | + | ID_AUDIO_FORMAT=raw |
− | ID_AUDIO_BITRATE=0 | + | ID_AUDIO_BITRATE=0 |
− | ID_AUDIO_RATE=8000 | + | ID_AUDIO_RATE=8000 |
− | ID_AUDIO_NCH=1 | + | ID_AUDIO_NCH=1 |
− | ID_LENGTH=633.00 | + | ID_LENGTH=633.00 |
− | ID_VIDEO_CODEC=ffmjpeg | + | ID_VIDEO_CODEC=ffmjpeg |
− | ID_AUDIO_BITRATE=64000 | + | ID_AUDIO_BITRATE=64000 |
− | ID_AUDIO_RATE=8000 | + | ID_AUDIO_RATE=8000 |
− | ID_AUDIO_NCH=1 | + | ID_AUDIO_NCH=1 |
− | ID_AUDIO_CODEC=pcm | + | ID_AUDIO_CODEC=pcm |
− | </pre> | + | </source> |
| | | |
| Zusammenfassend: | | Zusammenfassend: |
Zeile 52: |
Zeile 132: |
| Da sollte also noch was gehen. Die Erfahrung sagt in etwa: 90 Minuten gute Spielfilmqualitaet sind ca. 700 Megabyte. Ergo sollten in unserem Fall deutlich weniger als 7,5 Megabyte / Minute moeglich sein. Folgendes Anleitung kann man einfach auf der Kommandozeile copy&pasten. | | Da sollte also noch was gehen. Die Erfahrung sagt in etwa: 90 Minuten gute Spielfilmqualitaet sind ca. 700 Megabyte. Ergo sollten in unserem Fall deutlich weniger als 7,5 Megabyte / Minute moeglich sein. Folgendes Anleitung kann man einfach auf der Kommandozeile copy&pasten. |
| | | |
− | <pre> | + | <source lang="bash"> |
− | # dateiname festlegen und qualitaet festlegen | + | # dateiname festlegen und qualitaet festlegen |
− | FILE="/pfad/zum/movie.mov" | + | FILE="/pfad/zum/movie.mov" |
− | QUALI="normal" # niedrig,normal,gut | + | QUALI="normal" # niedrig,normal,gut |
| | | |
− | # ab jetzt nur noch copy&paste | + | # ab jetzt nur noch copy&paste |
− | # Parameter fuer Qualitaet, etc. ermitteln | + | # Parameter fuer Qualitaet, etc. ermitteln |
− | if [ "$QUALI" = "niedrig" ]; then
| + | if [ "$QUALI" = "niedrig" ]; then |
− | BITRATE=400
| + | BITRATE=400 |
− | FPS=10
| + | FPS=10 |
− | elif [ "$QUALI" = "normal" ]; then | + | elif [ "$QUALI" = "normal" ]; then |
− | BITRATE=700
| + | BITRATE=700 |
− | FPS=20
| + | FPS=20 |
− | else | + | else |
− | BITRATE=1000
| + | BITRATE=1000 |
− | FPS=25
| + | FPS=25 |
− | fi | + | fi |
| | | |
− | if [ "$( file -bi $FILE )" = "video/quicktime" ]; then | + | if [ "$( file -bi $FILE )" = "video/quicktime" ]; then |
− | TYP="mov"
| + | TYP="mov" |
| | | |
− | # variablen in die shell verfuegbar machen | + | # variablen in die shell verfuegbar machen |
− | eval $( mplayer -frames 0 -identify -vo null "$FILE" 2>/dev/null | grep ID_ ) | + | eval $( mplayer -frames 0 -identify -vo null "$FILE" 2>/dev/null | grep ID_ ) |
| | | |
− | # optionen: hoehen/seitenverhaeltnis erzwingen | + | # optionen: hoehen/seitenverhaeltnis erzwingen |
− | O1="-aspect $( awk -v w=$ID_VIDEO_WIDTH -v h=$ID_VIDEO_HEIGHT 'BEGIN{ print w/h }' )" | + | O1="-aspect $( awk -v w=$ID_VIDEO_WIDTH -v h=$ID_VIDEO_HEIGHT 'BEGIN{ print w/h }' )" |
| | | |
− | # optionen: aufloesung erzwingen | + | # optionen: aufloesung erzwingen |
− | O2="-vf scale=${ID_VIDEO_WIDTH}:${ID_VIDEO_HEIGHT},harddup" | + | O2="-vf scale=${ID_VIDEO_WIDTH}:${ID_VIDEO_HEIGHT},harddup" |
| | | |
− | # h264-optionen - erster Durchlauf | + | # h264-optionen - erster Durchlauf |
− | O3a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=1:turbo=2:frameref=1:bframes=3:" | + | O3a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=1:turbo=2:frameref=1:bframes=3:" |
− | O3b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=1:mixed_refs:nodct_decimate" | + | O3b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=1:mixed_refs:nodct_decimate" |
− | O3c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS" | + | O3c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS" |
− | O3="$O3a$O3b$O3c" | + | O3="$O3a$O3b$O3c" |
| | | |
− | # h264-optionen - zweiter Durchlauf | + | # h264-optionen - zweiter Durchlauf |
− | O4a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=2:frameref=5:bframes=3:" | + | O4a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=2:frameref=5:bframes=3:" |
− | O4b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate" | + | O4b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate" |
− | O4c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS" | + | O4c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS" |
− | O4="$O4a$O4b$O4c" | + | O4="$O4a$O4b$O4c" |
| | | |
− | # in DixX /mp2 | + | # in DixX /mp2 |
− | OV="-ovc lavc -ffourcc DX50" | + | OV="-ovc lavc -ffourcc DX50" |
− | OA="-oac lavc" | + | OA="-oac lavc" |
− | mencoder "$FILE" $OV $OA -o "${FILE}.dixv" | + | mencoder "$FILE" $OV $OA -o "${FILE}.dixv" |
| | | |
− | # in DivX / faac | + | # in DivX / faac |
− | OV="-ovc lavc -ffourcc DX50" | + | OV="-ovc lavc -ffourcc DX50" |
− | OA="oac faac -faacopts br=64:object=2 -channels 2 -srate 22000" | + | OA="oac faac -faacopts br=64:object=2 -channels 2 -srate 22000" |
− | mencoder "$FILE" $OV $OA -o "${FILE}.dixv" | + | mencoder "$FILE" $OV $OA -o "${FILE}.dixv" |
− | </pre> | + | </source> |
| | | |
| Tags: convert, mencoder, ffmpeg, mov, mpeg4, h264 | 20:01, 8. Mai 2008 (CEST) | | Tags: convert, mencoder, ffmpeg, mov, mpeg4, h264 | 20:01, 8. Mai 2008 (CEST) |