Keine Infos zu den ganzen Computern ![]()
Der Code-Schnippsel-Thread
-
-
Muss ich irgendwann mal machen. Kommt alles noch

-
Kleines Script zum prüfen, ob neue Beiträge im WHF vorhanden sind (benötigt natürlich das Login-Cookie):
Bash
Alles anzeigen#!/bin/bash # Führe mich mit dem watch-Befehl aus und setz das Terminal irgendwo in die Ecke. wget -x --load-cookies cookies.txt http://www.winhistory-forum.net/search.php?action=unread -O - 2>/dev/null | grep -i "Entschuldigung, aber" 1>/dev/null if [ $? -eq 0 ] then echo "Es gibt nichts neues im WHF. Echt nicht." else echo "Neue Posts im WHF!" fiKann man sicher auch ein hübsches KDE-Widget draus bauen. Man könnte jetzt als Bonus noch anzeigen, WELCHE Beiträge neu sind, das könnte ich auch noch reinsetzen

-
du hast auch nur den ganzen tag langeweile oder?
-
Du scheinbar auch.
--
Why not, ich hab auch für jeden scheiß irgendwelche Scripte, die das Leben angenehmer machen

-
was scheint denn so, schrottposter?
-
Aktueller Zwischenstand (noch lange nicht fertig, das mit dem doppelten wget ist ja eher eine Notlösung):
Bash
Alles anzeigen#!/bin/bash # Führe mich mit dem watch-Befehl aus und setz das Terminal irgendwo in die Ecke. wget -x --load-cookies cookies.txt http://www.winhistory-forum.net/search.php?action=unread -O - 2>/dev/null | grep -i "Entschuldigung, aber" if [ $? -eq 0 ] then echo "Es gibt nichts neues im WHF. Echt nicht." else wget -x --load-cookies cookies.txt http://www.winhistory-forum.net/search.php?action=unread -O - 2>/dev/null | sed "s/</\n</g" | grep -i "subject_new" | cut -d ">" -f 2 | tee /tmp/euda 1>/dev/null echo "$(cat /tmp/euda | wc -l) neue Posts im WHF:" echo "" cat /tmp/euda echo "" fiMan sieht jetzt auch, WELCHE Postings neu sind

Pacman, dich zwingt keiner, es zu benutzen

-
ich hab auch nur gefragt ob du langeweile hast?
-
was scheint denn so, schrottposter?Dass dir langweilig bist. Sonst würdest du deine inhaltslosen Gedanken bei dir behalten, du Dünnhäutiger

--
Und dass mein Post nicht genauso inhaltslos und stumpf ist hier die letzte Version von meinem tailsys.color Gefummel.
Hatte das mal gebaut, weil ich oft ein tailf auf den Syslog hab zwecks Debugging und das ganze doch recht unübersichtlich ist. Mit Farben ist das einiges angenehmer. Die Regex muss man gegebenfalls anpassen (ebenso wie der Pfad zum File). Müsste afaik aber sogar out of the Box mit dem Standard Syslogformat von Debian funzen. (File müsste /var/log/syslog sein)https://github.com/lukasg/dotfile…n/tailsys.color
Perl
Alles anzeigen#!/usr/bin/perl use strict; use warnings qw(FATAL all); use constant SYSLOG_FILE => '/var/log/syslog.all'; use Getopt::Long; sub print_help { print <<'EOF'; tailsys.color - colorize collax syslogs usage: tailsys.color -i <program> [-i ...] ignore <program> tailsys.color -o <program> [-o ...] show only <program> tailsys.color -m <program> [-o ...] highlight ('mark') <program> tailsys.color - read from stdin Arguments: - Read from stdin instead of reading /var/log/syslog.ak -i|--ignore <program> Do not print lines from this program -o|--only <program> Do only print lines from this program -m|--mark <program> Highlits lines from this program When reading from stdin the argument '-' must be the first in order. EOF exit( 0 ); } sub colorize { my $fh = shift; my $_only = shift; my $_ignore = shift; my $_mark = shift; my @only = @{ $_only }; my @ignore = @{ $_ignore }; my @mark = @{ $_mark }; while ( <$fh> ) { if ( m/(\w{3}\s+\d{1,2})\s+(\d{2}:\d{2}:\d{2})\s+([\w\-\._]+)\s+([\w\d\s\-\._\[\]\/]+(:|\]))\s+(.+)/ ) { my ( $date, $time, $host, $process, $msg ) = ( $1, $2, $3, $4, $6 ); my $process_name = $process; $process_name =~ s/([^\[\]]+)[\[\]:\d]+/$1/; if ( @only ) { my $next = 1; $next = 0 if ( grep( $_ eq $process_name, @only ) ); next if ( $next ); } if ( @ignore ) { next if ( grep( $_ eq $process_name, @ignore ) ); } $date =~ s/(.*)/\e[1;35m$1\e[0m/; $time =~ s/(.*)/\e[1;32m$1\e[0m/; $host =~ s/(.*)/\e[1;36m$1\e[0m/; $process =~ s/([\w\d\-\.\/\[\]]+)/\e[1;33m$1\e[0m/g; $process =~ s/\[(\d+)\]/[\e[1;35m$1\e[1;33m]/g; $msg =~ s/(\d+)/\e[1;35m$1\e[0m/g; if ( $msg =~ m/warning|error|critical|corrupt|bad|exiting|alert/i ) { $msg =~ s/\e\[1;\d+m//g; $msg =~ s/\e\[0m//g; $msg = sprintf( "%s%s%s", "\e[1;41m", $msg, "\e[0m" ); } if ( @mark && grep( $_ eq $process_name, @mark ) ) { $msg =~ s/\e\[1;\d+m//g; $msg =~ s/\e\[0m//g; $msg = sprintf( "%s%s%s", "\e[1;45m", $msg, "\e[0m" ); } printf( "%s %s %s %s %s\n", $date, $time, $host, $process, $msg ); } } } sub main { my @ignore = (); my @only = (); my @mark = (); my $readstdin = 0; my $fh = undef; select STDOUT; $| = 1; GetOptions( 'i|ignore=s@' => \@ignore, 'o|only=s@' => \@only, 'm|mark=s@' => \@mark, 'h|help' => \&print_help, ); if ( @only && @ignore ) { print( "Error: the options --ignore and --only cannot by combined!\n" ); exit( 1 ); } if ( $ARGV[ 0 ] && $ARGV[ 0 ] eq '-' ) { $fh = \*STDIN; } else { open( $fh, '-|', '/usr/bin/tailf', SYSLOG_FILE ) || die( "Could not open '/usr/bin/tailf': $!\n" ); } $SIG{ INT } = sub { close( $fh ) if ( $fh != \*STDIN ); exit( 0 ); }; colorize( $fh, \@only, \@ignore, \@mark ); } exit main();Sieht so aus: (Achtung, Ultra-Hi-Res Jpg)

-
Aktueller Zwischenstand (noch lange nicht fertig, das mit dem doppelten wget ist ja eher eine Notlösung):Bash
Alles anzeigen#!/bin/bash # Führe mich mit dem watch-Befehl aus und setz das Terminal irgendwo in die Ecke. wget -x --load-cookies cookies.txt http://www.winhistory-forum.net/search.php?action=unread -O - 2>/dev/null | grep -i "Entschuldigung, aber" if [ $? -eq 0 ] then echo "Es gibt nichts neues im WHF. Echt nicht." else wget -x --load-cookies cookies.txt http://www.winhistory-forum.net/search.php?action=unread -O - 2>/dev/null | sed "s/</\n</g" | grep -i "subject_new" | cut -d ">" -f 2 | tee /tmp/euda 1>/dev/null echo "$(cat /tmp/euda | wc -l) neue Posts im WHF:" echo "" cat /tmp/euda echo "" fiMan sieht jetzt auch, WELCHE Postings neu sind

Pacman, dich zwingt keiner, es zu benutzen

Gibt es eine Variable mit der man die eigene Prozess-ID abfragen kann? Dann könnt man ja /tmp/$ID.euda nehmen, wenn du immer nur /tmp/euda verwendest wird das glaub irgendwann mal schiefgehen.
-
für Leute, die Windows verwenden, um per serieller Konsole auf eine Sun zuzugreifen, bei der aber die NVRAM-Batterie im Eimer ist:
Code
Alles anzeigenvar mac = "8 0 20 c0 ff ee"; var hostID = "c0ffee" var delay = 20; var WshShell = WScript.CreateObject("WScript.Shell"); WScript.Echo("Press OK to bring PuTTY into foreground and fix NVRAM"); WshShell.AppActivate("COM1 - PuTTY"); WScript.Sleep(100); sendKeys("17 0 mkp"); sendKeys(mac + " " + hostID + " mkpl"); WshShell.SendKeys("^D"); WScript.Sleep(2*delay); WshShell.SendKeys("^R"); sendKeys("set-defaults"); WScript.Sleep(2500); sendKeys("setenv diag-switch? false"); sendKeys("setenv auto-boot? false"); sendKeys("reset"); WScript.Echo("finished :-)"); function sendKeys(keys) { for (var i=0; i<keys.length; i++) { WScript.Sleep(delay); WshShell.SendKeys(keys.charAt(i)); } WshShell.SendKeys("{ENTER}"); }
als .js-Datei abspeichern, lässt sich per doppelklick ausführen und ist selbsterklärend
ihr könnts auch mal "trocken" probieren, indem ihr einfach nen editor statt dem terminal offen habt
das Delay nach jedem Zeichen ist nötig, weils seitens der Sun keine Flusskontrolle gibt und ansonsten nur jeder 3. Buchstabe ankommtDas Skript biegt euch die firmware temporär wieder gerade, damit man die bude bis zum nächsten powerloss wieder betreiben kann. geht wesentlich schneller und entspannter als den krams von Hand zu tippen
-
Bei meiner U5 war das auch oft dass die gemeint hat sie hätte ein Passwort, da hat nur ein Reset immer geholfen. Übrigens, hier ist die Hostid 80c0ffee und nicht c0ffee.
-
Bash
Alles anzeigen#!/bin/sh echo -n "Mehrere Videos? " read YT if [ $YT = "y" ]; then echo -n "Wo liegt deine Listendatei? " read PLACE youtube-dl<"$PLACE" elif [ $YT = "n" ]; then echo -n "Bitte Link des Youtubevideos kopieren. " read PLACE2 youtube-dl "$PLACE2" else exit 0 fiMeine Listendatei funktioniert nicht. Hm.
-
Das was du machst ist quasi cat $PLACE | youtube-dl. Du willst wahrscheinlich youtube-dl $(cat $PLACE) oder so. Weiß aber nicht ob das mit Umbüchen funktioniert, sonst eben sowas wie for i in $(cat $PLACE); do youtube-dl $i; done.
-
-
Das was du machst ist quasi cat $PLACE | youtube-dl. Du willst wahrscheinlich youtube-dl $(cat $PLACE) oder so. Weiß aber nicht ob das mit Umbüchen funktioniert, sonst eben sowas wie for i in $(cat $PLACE); do youtube-dl $i; done.Thx.
So siehts jetzt aus:
Bash
Alles anzeigen#!/bin/sh echo -n "Mehrere Videos? " read YT if [ $YT = "y" ]; then echo -n "Wo liegt deine Listendatei? " read PLACE for i in $(cat $PLACE); do youtube-dl $i; done youtube-dl -t <"$PLACE" elif [ $YT = "n" ]; then echo -n "Bitte Link des Youtubevideos kopieren. " read PLACE2 youtube-dl -t "$PLACE2" else exit 0 fi -
Da auf meiner CF-Karte im IGEL nicht mehr ausreichend Platz für umfangreiche Player wie mplayer ist, hier ein kleines DVB-S-Aufnahmeprogramm auf Basis der primitiven DVB-Tools für Linux. Zum Programmieren von Aufnahmen werde ich mir wohl noch ein Skript schreiben, das eine Auswahl des Sendernamens erlaubt und dieses Skript zeitverzögert per at(1) startet.
Bash
Alles anzeigen#!/bin/bash # shittyrecorder.sh CHANNEL_FILE=/etc/channels.conf CHANNEL_NUMBER=$1 RECORDING_DURATION=$2 RECORDING_FILE=$3 PIPE=${TMPDIR-/tmp}/shittyrecorder-$$.pipe mkfifo $PIPE # Tuningprogramm im Aufnahmemodus starten und Ausgabe in Pipe leiten szap -c $CHANNEL_FILE -r -n $CHANNEL_NUMBER > $PIPE & SZAP_PID=$! # Warten auf Signal while read line; do grep -q FE_HAS_LOCK$ <<<$line && break; done < $PIPE # restliche Ausgabe der Pipe wegwerfen cat $PIPE > /dev/null & DISCARDER_PID=$! # eigentliches "Aufnahme"-Programm cat /dev/dvb/adapter0/dvr0 > $RECORDING_FILE & RECORDER_PID=$! # Aufnahme beenden sleep $RECORDING_DURATION kill $RECORDER_PID kill $SZAP_PID kill $DISCARDER_PID 2>/dev/null # sollte eigentlich schon beendet sein rm -f $PIPE -
Code
Alles anzeigen$ cat /etc/systemd/system/gatling.service [Unit] Description=Gatling HTTP/FTP/SMB server After=network.target [Service] Type=simple ExecStart=/usr/bin/gatling -u http -c /srv/http -F -w WORKGROUP [Install] WantedBy=multi-user.target
Fefe würde mich am Spieße herumdrehen, aber egal.
-
Der olle CVSuser
-
Mein kleines Programm zum Umbenennen escapeverseuchter Download-Dateinamen:
gist #4117168: Rename files with URL escape codes -
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!