Zurück   RR:Board > Computer > Linux & BSD

GNU/Linux, Debian, Ubuntu, Suse, FreeBSD, OpenBSD... Hilfe zu Installation, Konfiguration, Software und Scripting.
Antwort
 
Themen-Optionen Thema durchsuchen

Bash-Scripte
Alt 09.10.2006, 22:44   # 1
Kolazomai
Confused Crap Coder
vip
Bewertung:
Kolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 PunkteKolazomai hat 2500 bis 5000 Punkte
Registriert seit: Oct 2005
Beiträge: 2.197
Power: 29
Hallo zusammen!

Auf Idee und Wunsch von nicht nur L!Ld4rk halte ich es fuer eine gute Idee, einen Thread mit kleinen nuetzlichen Bash-Scripts zu eroeffnen.

Sicher kennt jeder von euch Bash, Shell, Zsh, ... All diese Interpreter koennen genutzt werden, um Scripte auszufuehren, die die taegliche Arbeit und/oder die staendig selben Routinen zu erleichtern. So kann man per Script z.B. User hinzufuegen, Festplatten mounten oder eine CD brennen ohne sich viele Befehle merken zu muessen.

Dieser Thread soll ein Ort fuer Scripte sein, die man mit einem solchen Interpreter ausfuehren kann. Es soll Fortgeschrittenen vielleicht den Weg zum Programmieren oeffnen, und vor allem Anfaengern den Einstieg in die Welt der Unix-Systeme erleichtern.

So, jetzt aber zu dem, was euch interessieren wird.

Wie soll so ein Post, in dem ich mein Script veroeffentlichen will, aussehen ?

Er soll wie folgt aussehen:
Code:
Name des Scripts: Author: Beschreibung: Benutzung: Code:
Code:
#!/bin/interpreter # Hier euer Code # Beachte, dass die erste Zeile '#!/bin/interpreter' sein muss
-

Beispiel:

Name des Scripts: Name
Author: Max Mustermann
Beschreibung: Ein Testscript
Benutzung: ./Name test lala
Code::
Code:
#!/bin/bash echo -e "Hello World\n"
---

Wie fuehre ich so ein Script aus ?

1. Ihr oeffnet mit einem Texteditor euerer Wahl eine leere Textdatei
2. Ihr kopiert den Inhalt der Code-Tags in die Datei
3. Ihr speichert die Datei ab
4. Ihr fuehrt das Folgende aus, um die Datei ausfuehrbar zu machen:
Code:
chmod +x euer_script.sh
Das x steht fuer 'execute' oder 'executable'.
5. Ihr startet nun das Script. Beachtet hierbei 'Benutzung'.
Code:
./euer_script.sh
---

Sollte ein Script mal nicht so funktionieren, wie es in der Beschreibung steht, sendet bitte eine PN ( Private Nachricht ) an den ScriptAutor und schreibt es NICHT hier hinein!

Viel Spass beim Coden,

Mfg,

Kolazomai
  Kolazomai ist offline   Mit Zitat antworten

Alt 09.10.2006, 22:46   # 2
L!Ld4rk
Eat my shit!
blau blau blau 
Bewertung:
L!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 PunkteL!Ld4rk hat mehr als 5000 Punkte
L!Ld4rk hat mehr als 5000 Punkte
Registriert seit: Oct 2005
Internet: VDSL 50Mbit
Beiträge: 3.486
Power: 37
Name: Mountscript
Beschreibung: Es erleichter das Mounten von Medien
Author: L!Ld4rk
Benutzung: script per ./mount.sh starten danach Anweisungen befolgen
Code:
Code:
#!/bin/bash echo -n "Please enter the Dev to mount. After that tape your root password" read WAYNE echo -n "Enter your device to mount: " read PLATTE su -c "mkdir /media/$PLATTE" su -c "mount /dev/$PLATTE /media/$PLATTE" echo "Thanks for using this script. Written by L!Ld4rk."
!Download!





Name: Brennscript
Beschreibung: Ein Script was das Brennen mit dem Terminal erleichter (cdrecord wird gebraucht)
Author: L!Ld4rk
Benutzung: script per ./brennen.sh starten danach Anweisungen befolgen
Code:
Code:
#!/bin/bash echo -n "Welcome to the cdburn Script. Please enter to continue!" read WAYNE echo -n "You need the tool "cdrecord" to use this script! If you dont have it search it by google.com!" read WAYNE echo -n "Please enter the number of your cd recorder (sampel dev=0,1,0): " read DEV echo -n "Please enter the burnspeed: " read SPEED echo -n "Please enter the path to the image: " read IMAGE cdrecord -v -eject -cdrecord -v -eject -driveropts=burnfree -dao dev=$DEV speed=$SPEED $IMAGE echo -n "Thank you for using this script. Written by L!Ld4rk."
!Download!





Name: Brennscript ver.2 [Debianbasierende Distris]
Beschreibung: Wie das normale nur es überprüft pb cdrecord installiert ist. ist es nicht der fall wird es nachträglich installiert
Author: L!Ld4rk
Benutzung: script per ./brennen2.sh starten danach Anweisungen befolgen
Code:
Code:
#!/bin/bash #info echo -n "Welcome to the cdburn Script. Press enter to continue!" read WAYNE #check if cdrecord is install if which "cdrecord" >/dev/null; then echo "cdrecord found!" #configuration of cdrecord echo -n "Please enter the number of your cd recorder (sampel dev=0,1,0): " read DEV echo -n "Please enter the burnspeed: " read SPEED echo -n "Please enter the path to the image: " read IMAGE #burn cdrecord -v -eject -cdrecord -v -eject -driveropts=burnfree -dao dev=$DEV speed=$SPEED $IMAGE #exit echo -n "Thank you for using this script. Written by L!Ld4rk." else echo "cdrecord wasnt found. it will now install by apt" su -c "apt-get install cdrecord" #configuration of cdrecord echo -n "Please enter the number of your cd recorder (sampel dev=0,1,0): " read DEV echo -n "Please enter the burnspeed: " read SPEED echo -n "Please enter the path to the image: " read IMAGE #burn cdrecord -v -eject -cdrecord -v -eject -driveropts=burnfree -dao dev=$DEV speed=$SPEED $IMAGE #exit echo -n "Thank you for using this script. Written by L!Ld4rk."
!Download!




Name: RarEntpack-Script
Beschreibung: Erleichter das Entpacken von *.rar Dateien!
Author: L!Ld4rk
Benutzung: script per ./unrar.sh starten danach Anweisungen befolgen
Code:
Code:
#!/bin/bash echo -n "Welcome to the unrar script! Please press enter to continue!" read WAYNE echo -n "Please enter the path of your *.rar file: " read RAR echo -n "Please enter the path to extract the file: " read UNRAR unrar e $RAR $UNRAR echo "Thanks for using this script! Written by L!Ld4rk"
!Download!
  L!Ld4rk ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 13.10.2006, 15:33   # 3
Beginner35
Kabel Wurm
rot rot rot 
Bewertung:
Beginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 PunkteBeginner35 hat 1000 bis 2499 Punkte
Registriert seit: Jan 2005
Internet: DSL 2000
Beiträge: 873
Power: 25
Name des Scripts: MKSplitRAR
Author: Beginner(Ich)
Beschreibung: Erstellt RAR-Split-Archive
Benutzung: ./mksplitrar --help
Hinweis: Man sollte im Verzeichniss der Dateien die man Packt sein, weil es sonst den ganzen Verzeichnissbaum zu den Dateien im Archiv abbildet, ich werd das mal beheben wenn ich zuviel Zeit hab
Code::
Code:
#mksplitrar #!/bin/s set -- `getopt "echg:o:p:" "$@"` output="x" grose="x" while : do case "$1" in -h) help=1;; -c) dc=1;; -e) ein=1;; -o) shift; output="$1" ;; -g) shift; grose="$1";; -p) shift; pw="$1";; --) break ;; esac shift done shift files=$* hilfe () { echo echo "MkSplit ist ein Script zum erstellen gesplitteten Rar-Archiven." echo echo "Syntax:" echo echo "mksplitrar -o [Archiv.rar] -g [Größe der gesplitteten Dateien] Dateien" echo echo "Optionen:" echo echo "-h Help" echo echo "-o Zieldatei z.B -o Test.rar " echo echo "-g Größe der gesplitteten Dateien in Mb z.B. -g 15" echo echo "-p Setzt ein Passwort z.B. -p geheim" echo echo "-c Nur in verbindung von -p, verschlüsselt die Dateinamen." echo "Noch ein Beispiel:" echo echo "mksplitrar -o test.rar -g 5 -p geheim -c bild1.jpg bild2.jpg " echo echo "Erzeugt 5 Mb große Splitarchiven in denen bild1.jpg und bild2.jpg enthalten sind die Datein werden erst nach Eingabe des Passworts geheim sichtbar." echo } if [ "$help" = 1 ] then hilfe exit 0 fi if [ "$ein" = 1 ] then echo Bitte Zielarchiv eingeben: read output echo Bitte Splitarchivgröße in Mb angegen: read grose echo "Passwort setzen? ( j oder n )" read pw1 if [ "$pw1" = "j" ] then echo Passwort eingeben read pw echo "Dateinamen verschlüsseln? ( j oder n )" read dc1 if [ "$dc1" = "j" ] then dc=1 fi fi fi if [ "$output" = "x" ] then echo Kein Ausgabearchiv angegeben! hilfe exit 1 elif [ "$*" = "0" ] then echo Keine Dateien zum packen angegeben hilfe exit 1 fi echo ZielRar: $output echo Zu packende Dateien: $files echo Größe pro .part-Datei: $grose MB if [ "$grose" = "0" ] then grose = 15 fi #mio="1000000" size=$(expr "$grose" \* 1048576) echo $size if [ "$pw" != "" ] then if [ "$dc" = "1" ] then rar a -v"$size"b -m0 -hp$pw $output $files else rar a -v"$size"b -m0 -p$pw $output $files fi else rar a -v"$size"b -m0 $output $files fi #echo Created with mksplitrar >mksplitrar #rar c $output <mksplitrar #rm mksplitrar echo Alle Aufgaben beendet. echo Passwort: $pw exit 0
  Beginner35 ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 10.12.2006, 21:32   # 4
dutziman
Kabel Wurm
rot rot rot 
Bewertung:
dutziman hat 300 bis 399 Punktedutziman hat 300 bis 399 Punktedutziman hat 300 bis 399 Punkte
Registriert seit: Nov 2006
Beiträge: 1.160
Power: 21
Name des Scripts: yourPEG
Author: dutziman
Beschreibung: Bennent JPEG-Bilder einheitlich, komprimiert sie und erstellt Thumbnails.
Benutzung: ./yourpeg <verzeichnis>
Code:
Code:
#!/bin/bash echo "creating thumbnail directory _thumbnails_$1" mkdir _thumbnails_$1 echo "going into $1..." cd $1 for dir in *; do if [ -d "$dir" ] then echo "-- going into $1/$dir..." cd "$dir" echo "-- creating thumbnail directory _thumbnails_$1/$dir..." mkdir ../../_thumbnails_$1/$dir i=1; for file in *; do if [[ "$file" =~ "\.[jJ][pP][eE]?[gG]$" ]] then echo "-- -- renaming $file to $dir-$i.jpg" mv "$file" "$dir-$i.jpg" echo "-- -- -- compressing $dir-$i.jpg to 80% quality..." /usr/bin/convert -quality 80% "$dir-$i.jpg" "$dir-$i.jpg" echo "-- -- -- creating thumbnail for $dir-$i.jpg..." /usr/bin/convert -quality 90% -thumbnail 180 "$dir-$i.jpg" "../../_thumbnails_$1/$dir/$dir-$i.jpg" else echo "-- -- omitting $file: not a jpeg image fi i=$((i+1)); done echo "-- leaving $1/$dir..." cd .. else echo "-- omitting $dir: not a directory" fi done echo "leaving $1..." cd ..
  dutziman ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 04.02.2007, 17:37   # 5
Crack02
Super Moderator
no remorse
team
Bewertung:
Crack02 hat die Renommee-Anzeige deaktiviert
Registriert seit: Aug 2004
Beiträge: 10.347
Power: 77
Name des Scripts: nscan v0.1
Author: Crack02
Beschreibung: primitiver textbasierender nachbau von grimps ping und grimps companion in einem
Benutzung: ./script

ist frühes alphastadium und noch recht verbuggt, aber soweit funktionstüchtig.
benötig wird busybox, nmap und ftp-upload

Code:
#!/bin/bash # Usage if [ -z $1 ] then echo "Usage: $0 {target specification}" echo "TARGET SPECIFICATION:" echo "Can pass hostnames, IP addresses, networks, etc." echo "Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254" exit fi # Ordner in /tmp erstellen #rm -rf /tmp/nscan mkdir /tmp/nscan >> /dev/null # Scan echo "Starting Scan on: $1" nmap -p21 -oG /tmp/nscan/.ftpraw $1 > /dev/null # ip war ok? quittest=`cat /tmp/nscan/.ftpraw|wc -l` if [ $quittest -le 2 ] then exit 0 fi # Auswertung cat /tmp/nscan/.ftpraw |grep open|awk {'print $1 $2'}|sed -e 's/Host:/ /' |grep -n ' '|sed -e 's/:/ :/' > /tmp/nscan/.ftpclean ftpall=`cat /tmp/nscan/.ftpclean |wc -l` i='0' ftp='0' echo "Scan complete. Starting test" # datei erzeugen dd if=/dev/urandom of=/tmp/nscan/.testdatei bs=1k count=1 while [ $i -le $ftpall ] do i=`expr $i + 1` cat /tmp/nscan/.ftpclean |grep "$i :"|grep -m 1 ' ' > /tmp/nscan/.ftp_aktuell cat /tmp/nscan/.ftp_aktuell |sed -e "s/$i : //" > /tmp/nscan/.ftp_toscan ftp=`cat /tmp/nscan/.ftp_toscan` ftp-upload -v --ignore-quit-failure -h $ftp /tmp/nscan/.testdatei done

"Jeder hat das Recht auf Meinungsfreiheit und freie Meinungsäußerung; dieses Recht schließt die Freiheit ein, Meinungen ungehindert anzuhängen sowie über Medien jeder Art und ohne Rücksicht auf Grenzen Informationen und Gedankengut zu suchen, zu empfangen und zu verbreiten." (Artikel 19 der Menschenrechte Vereinigten Nationen, 10.12.1948)
Zumindest theoretisch...
  Crack02 ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 08.02.2007, 19:09   # 6
Muschelsuppe
Hühnchen
Bewertung:
Muschelsuppe hat 200 bis 299 PunkteMuschelsuppe hat 200 bis 299 PunkteMuschelsuppe hat 200 bis 299 Punkte
Registriert seit: Feb 2007
Beiträge: 3
Power: 0
Name des Scripts: Bug-Scanner
Author: Muschelsuppe
Beschreibung: Ähnlich Triton - Eine Liste mit Seiten wird nach einem bestimmten Bug abgesucht. Netcat muss installiert sein.
Benutzung: ./scanner.sh internetseiten.txt
Code:

Code:
#!/bin/bash FILE='/something/bug.php' GOOD='Iam a GOOOOOD Key' while read LINE; do OUTPUT=`printf 'GET '$FILE' HTTP/1.0\n\n' | nc -w 5 ${LINE} 80 | grep $GOOD` if [ "$OUTPUT" != "" ] then echo ${LINE}: $OUTPUT fi done < $1
  Muschelsuppe ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 03.10.2007, 10:22   # 7
Bernie
Master of supply
rot rot rot rot 
Bewertung:
Bernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 Punkte
Registriert seit: Aug 2005
Internet: DSL 6000
Beiträge: 1.381
Power: 26
Name des Scripts: mpc2mp3
Author: Bernie
Beschreibung: konvertiert mpc nach mp3
Benutzung: ./mpc2mp3 FILE [FILE...]
Benoetigt: lame (http://lame.sf.net) und mppdec (http://www.musepack.net/)
Code:
Code:
#!/bin/bash ################################################ # Convert alle given Files from mpc 2 mp3 # # Author: Bernie # # Date: 10.07.2005 # ################################################ #configuration (better high bitrate because mpc already suxx) BITRATE=256 #check usage if [ $# -lt 1 ]; then echo "USAGE: $0 FILE [FILE...]"; fi #loop through the arguments while ! [ -z "$1" ]; do #debug #echo "$1" #omit directories if [ -d "$1" -o "$1" = "" ]; then continue fi #check if we have an mpc (stupid file, so we try a bit hex) H_FIRSTLINE=`hexdump -c "$1" | head -n 1 | tr -d ' ' | sed s/0000000//g` #debug #echo "$H_FIRSTLINE" #now check if this first line matches mpc and convert or don't if echo "$H_FIRSTLINE" | grep -q '^MP+\\a'; then echo "Converting $1" #in my world all mpc files end with .mpc, mp3s with .mp3 NEWNAME=`echo "$1" | sed 's/\.mpc$//g'` NEWNAME="$NEWNAME.mp3" #now convert (und halt die fresse) mppdec --silent "$1" - | lame --quiet -b $BITRATE - "$NEWNAME" else echo "Omitting non-mpc file $1" fi #next one shift done

Kein Mensch ist illegal, es gibt kein Gesetz was daran etwas ändert!!
**** RACISM!!
Was ist das nur für eine Welt,
wo Wohlstand mehr als Freiheit zählt??
  Bernie ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 06.01.2008, 15:38   # 8
antisystem
Da geht noch einer!
rot rot 
Bewertung:
antisystem hat die Renommee-Anzeige deaktiviert
Registriert seit: Aug 2004
Internet: DSL2 16K
Beiträge: 428
Power: 24
Name des Scripts: audioconv v0.2
Author: antisystem
Beschreibung: konvertiert audiodateien in das gewünschte format
Benutzung: chmod +x und nach /usr/bin kopieren (oder symlink erstellen)
Benoetigt: mplayer und die jeweiligen codecs (siehe code)

Sonstiges: das script ist bei weitem noch nicht fertig, es funktioniert aber alles. ich werde versuchen noch mehr formate miteinzubeziehen, eine abfrage zur bitrate und evtl. eine übernahme der tags zu ermöglichen.
Updates werden sofort eingearbeitet.

Code:
#!/bin/bash # (c) 2008 antisystem@jabber.org # simple bash script for audio-converting using mplayer # converts audiofiles in the current dir to a specific output format # depends on mplayer, lame, oggenc, flac, faac, mppenc # # tag-info support: wip for s in *.*; do file=`echo "$s"|tail --bytes=4`; done case "$file" in "wma") source="wma" ;; "mp3") source="mp3" ;; "ogg") source="ogg" ;; "lac") source="flac" ;; "aac") source="aac" ;; "m4a") source="m4a" ;; "mp4") source="mp4" ;; "ape") source="ape" ;; "mpc") source="mpc" ;; *) echo "unsupported source file" exit 0 ;; esac echo echo "Source file is $source" echo PS3='Choose output-file format: ' echo select output in "mp3" "ogg" "flac" "aac" "m4a" "mpc" do case "$output" in "mp3") for i in *.$source; do neuername=`echo "$i"|sed -e 's/'$source'$/'$output'/'`; echo "$i -> $neuername"; mplayer -ao pcm:fast "$i"; lame -m j -h --vbr-new -b 192 "audiodump.wav" -o "$neuername"; done rm "audiodump.wav" ;; "ogg") for i in *.$source; do neuername=`echo "$i"|sed -e 's/'$source'$/'$output'/'`; echo "$i -> $neuername"; mplayer -ao pcm:fast "$i"; oggenc -q 5 "audiodump.wav" -o "$neuername"; done rm "audiodump.wav" ;; "flac") for i in *.$source; do neuername=`echo "$i"|sed -e 's/'$source'$/'$output'/'`; echo "$i -> $neuername"; mplayer -ao pcm:fast "$i"; flac -5 "audiodump.wav" -o "$neuername"; done rm "audiodump.wav" ;; "aac") for i in *.$source; do neuername=`echo "$i"|sed -e 's/'$source'$/'$output'/'`; echo "$i -> $neuername"; mplayer -ao pcm:fast "$i"; faac -q 100 "audiodump.wav" -o "$neuername"; done rm "audiodump.wav" ;; "m4a") for i in *.$source; do neuername=`echo "$i"|sed -e 's/'$source'$/'$output'/'`; echo "$i -> $neuername"; mplayer -ao pcm:fast "$i"; faac -q 100 -w "audiodump.wav" -o "$neuername"; done rm "audiodump.wav" ;; "mpc") for i in *.$source; do neuername=`echo "$i"|sed -e 's/'$source'$/'$output'/'`; echo "$i -> $neuername"; mplayer -ao pcm:fast "$i"; mppenc --xtreme "audiodump.wav" "$neuername"; done rm "audiodump.wav" ;; esac break done echo "Delete source file?" echo echo "[y]es, [n]o" read delete case "$delete" in "y") rm -v "$i" ;; "n") ;; esac exit 1

₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪
Ghaash agh akûl – Nazgûl skoiz, Mirdautas vras!
₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪₪
  antisystem ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 31.01.2008, 19:11   # 9
Bernie
Master of supply
rot rot rot rot 
Bewertung:
Bernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 PunkteBernie hat 2500 bis 5000 Punkte
Registriert seit: Aug 2005
Internet: DSL 6000
Beiträge: 1.381
Power: 26
Name des Scripts: background_script
Author: Bernie
Beschreibung: wechselt den Background nach der Urzeit
Benutzung: ./background_script
Benoetigt: gnome
Code:
Code:
date=`date +%H` if [ 7 -lt $date -a 11 -gt $date ]; then gconftool-2 -s /desktop/gnome/background/picture_filename <pfad zum Bild> -t string elif [ 10 -lt $date -a 17 -gt $date ]; then gconftool-2 -s /desktop/gnome/background/picture_filename <pfad> -t string elif [ 16 -gt $date -a 22 -gt $date ]; then gconftool-2 -s /desktop/gnome/background/picture_filename <pfad> -t string else gconftool-2 -s /desktop/gnome/background/picture_filename <pfad> -t string fi
Das ist natürlich nur ein Anhaltspunkt. Man kann das beliebig aufbohren auf Wochentage, Monate, die Zeitintervalle ändern...

MfG
bernie

Kein Mensch ist illegal, es gibt kein Gesetz was daran etwas ändert!!
**** RACISM!!
Was ist das nur für eine Welt,
wo Wohlstand mehr als Freiheit zählt??
  Bernie ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 29.02.2008, 14:18   # 10
E-qualizer
Hühnchen
Bewertung:
E-qualizer hat 200 bis 299 PunkteE-qualizer hat 200 bis 299 PunkteE-qualizer hat 200 bis 299 Punkte
Registriert seit: Feb 2008
Beiträge: 1
Power: 0
Name des Scripts: dsl

Author: E-qualizer

Beschreibung: Ermöglicht Neuverbindung nach einer Zwangstrennung des ISP
Das war mein erster Versuch ein "sinvolles" Skript zu schreiben, also seit bitte nachsichtig mit meiner Syntax ;-)

Benutzung: Backgroundskript

Code:

Code:
#!/bin/bash Z=0 until [ "$Z" -ge 5 ] do if ping -c 1 (z.B. IP von T-Online...) then echo "+ online +" sleep 60s else if ping -c 1 (z.B. IP von Google..) then echo "+ online +" sleep 60s else echo "+ offline +" rcnetwork restart sleep 60s fi fi done
  E-qualizer ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 24.12.2008, 16:05   # 11
Korllino
Master of supply
rot rot rot rot 
Bewertung:
Korllino hat 1000 bis 2499 PunkteKorllino hat 1000 bis 2499 PunkteKorllino hat 1000 bis 2499 PunkteKorllino hat 1000 bis 2499 PunkteKorllino hat 1000 bis 2499 PunkteKorllino hat 1000 bis 2499 PunkteKorllino hat 1000 bis 2499 Punkte
Registriert seit: Jul 2005
Internet: DSL 2000
Beiträge: 1.663
Power: 28
Hier ist nichts neues, mach ich mal was
Kann alles selbst abgeändert werden.
Ich benutz dieses Script meist für xChat

Name des Scripts: now playing
Author: Bibba
Beschreibung: now playing Anzeige für MacOsX
Benutzung: ./Name
Code: Apple-Script
Code:
tell application "iTunes" set AlbumName to album of current track set ArtistName to artist of current track set Titel to name of current track set np to "np:" & ArtistName & " - " & Titel & " (" & AlbumName & " min) end tell
Code: Bash-Script
Code:
#!/bin/bash osascript *PFAD*/nowplaying.scpt
  Korllino ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 20.01.2010, 11:48   # 12
Shir Khan
Kabel Wurm
rot rot rot 
Bewertung:
Shir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 PunkteShir Khan hat mehr als 5000 Punkte
Shir Khan hat mehr als 5000 Punkte
Registriert seit: Nov 2006
Beiträge: 986
Power: 21
Name des Scripts: makesfv
Author: Shir Khan
Beschreibung: Erstellt für rar-Splitarchive (benannt nach dem Schema archiv.rar, archiv.r00, archiv.r01, archiv.r02, ... usw.) eine sfv-Datei, die dann archiv.sfv heißt und im selben Verzeichnis wie die Archive liegt.
Benötigt: Das Programm cfv (Bei Ubuntu '$ sudo apt-get install cfv', bei Debian '# apt-get install cfv'
Benutzung: ./makesfv.sh (oder wie auch immer ihr das Skript nennt)
Code:
Code:
#/bin/bash dir="" echo "Bitte das Verzeichnis mit den Archiven angeben:" while true do read dir if [ -d "${dir}" ]; then echo "Angegebenes Verzeichnis: "${dir}"" break else echo "Verzeichnis '"${dir}"' existiert nicht. Bitte existierendes Verzeichnis eingeben!" fi done cd "${dir}" if ls | grep .rar > /dev/null; then for i in *.rar do file=$(echo "${i}" | cut -d "." -f1) echo -e "\nGefundenes rar-Archiv: "${i}"" echo "Erstelle "${file}".sfv :" echo "cfv -C -f "${file}.sfv" "${file}.*"" cfv -C -f "${file}".sfv "${file}".* echo "$(tail --lines=+3 "${file}".sfv)" > "${file}".sfv done else echo "Keine rar-Archive gefunden!" echo "Beende!" fi

"In the name of the Gods, ships shall be built
to carry our warriors out amongst the stars."

  Shir Khan ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 17.02.2010, 17:39   # 13
coach
-= Pinguinfreund =-
blau blau blau 
Bewertung:
coach hat die Renommee-Anzeige deaktiviert
Registriert seit: Apr 2005
Internet: DSL2 16K
Beiträge: 3.047
Power: 36
Name des Scripts: SFT-Loader
Author: coach
Beschreibung: Startet den SFT-Loader
Benutzung: ./Name sft-datei.sft

Code:
#!/bin/sh LEECHER=/pfad/zur/leecher.exe cd "`dirname "$1"`" WINEDEBUG="-all" wine $LEECHER `basename "$1"`
dazu am besten unter /usr/share/applications/ eine .desktop-datei anlegen mit folgendem inhalt:
Code:
[Desktop Entry] Encoding=UTF-8 Name=SFT-Loader Exec=pfad-und-name-des-scripts MimeType=application/x-application-sft; Icon=euer-icon-mit-pfad Terminal=false Type=Application Categories=Application;Network; StartupNotify=false
und als icon könnt ihr das nehmen...mfg coach

PS: am besten das script in /usr/bin und das icon unter /usr/share/icons packen;-) wenn ihr die sft-dateien damit verknüpft, sollte der sft-loader wie unter windows die datei sofort öffnen

PPS: achja, es ist kein mechanismus eingebaut um zu erkennen, ob eine datei mit übergeben wurde. wenn dem nicht so ist, sagt der load 'datei nicht gefunden' und schmiert (bie mir zumindest) ab^^

EDIT: und bevor ichs vergesse: sollte auch mit jeglichen sonderzeichen im pfad zurechtkommen;-)
  coach ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 18.01.2011, 18:48   # 14
DonW33d0
Da geht noch einer!
rot rot 
Bewertung:
DonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 PunkteDonW33d0 hat mehr als 20.000 Punkte
Registriert seit: May 2006
Internet: DSL2 32K
Beiträge: 589
Power: 20
Name des Scripts: SouthParkDumper
Author: DonW33d0
Beschreibung: speichert den RTMP-Stream von southpark.de auf der Festplatte und erzeugt eine mkv Datei.
Benutzung: ./script.sh [Staffel] [Episode] | Zahlen müssen immer 2stellig sein also "01" anstatt "1".

Code:

Zitat:
#!/bin/bash

GDIR="rtmpe://cp75298.edgefcs.net/ondemand/mtviestor/_!/intlod/southpark/video/Deutsche/Season"
EDIR="rtmpe://cp75298.edgefcs.net/ondemand/mtvnorigin/gsp.comedystor/com/sp/season"

if [ $1 -le 8 ]; then
rtmpdump -o "1.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/"$1""$2"_1_DI_DEU_640x480_800.mp4"
rtmpdump -o "2.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/"$1""$2"_2_DI_DEU_640x480_800.mp4"
rtmpdump -o "3.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/"$1""$2"_3_DI_DEU_640x480_800.mp4"
fi


if [ $1 -gt 8 ] && [ $1 -lt 12 ]; then
rtmpdump -o "1.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/"$1""$2"_1_DI_DEU_1280x720_1200.mp4"
rtmpdump -o "2.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/"$1""$2"_2_DI_DEU_1280x720_1200.mp4"
rtmpdump -o "3.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/"$1""$2"_3_DI_DEU_1280x720_1200.mp4"
fi

if [ $1 -ge 12 ] && [ $1 -lt 14 ]; then
rtmpdump -o "1.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/sp_"$1""$2"_act1_DEU_1280x720_1200.mp4"
rtmpdump -o "2.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/sp_"$1""$2"_act2_DEU_1280x720_1200.mp4"
rtmpdump -o "3.mp4" -r ""$GDIR"_"$1"/"$1""$2"/acts/sp_"$1""$2"_act3_DEU_1280x720_1200.mp4"
fi

if [ $1 -ge 14 ]; then
rtmpdump -o "1.mp4" -r ""$EDIR"_"$1"/"$1""$2"/acts/sp_"$1""$2"_act1_1280x720_1200.mp4"
rtmpdump -o "2.mp4" -r ""$EDIR"_"$1"/"$1""$2"/acts/sp_"$1""$2"_act2_1280x720_1200.mp4"
rtmpdump -o "3.mp4" -r ""$EDIR"_"$1"/"$1""$2"/acts/sp_"$1""$2"_act3_1280x720_1200.mp4"
fi


ffmpeg -i "1.mp4" -vcodec copy -acodec copy "./part1.mkv"
ffmpeg -i "2.mp4" -vcodec copy -acodec copy "./part2.mkv"
ffmpeg -i "3.mp4" -vcodec copy -acodec copy "./part3.mkv"
mkvmerge -o "$1$2.mkv" part1.mkv +part2.mkv +part3.mkv



rm ./1.mp4
rm ./2.mp4
rm ./3.mp4

rm ./part1.mkv
rm ./part2.mkv
rm ./part3.mkv
Anmerkung:
Ich habe dieses Script quick&dirty letzte Nacht aus einer Laune raus geschrieben also bitte kein geflame über die Form.

Welche Programme werden vorrausgesetzt:
- ffmpeg
- rtmpdump
- mkvmerge


Viel Spass damit oder auch nicht

|_|0|_|
|_|_|0|
|0|0|0|
  DonW33d0 ist offline   Mit Zitat antworten

AW: Bash-Scripte
Alt 08.09.2011, 19:02   # 15
Crack02
Super Moderator
no remorse
team
Bewertung:
Crack02 hat die Renommee-Anzeige deaktiviert
Registriert seit: Aug 2004
Beiträge: 10.347
Power: 77
Name des Scripts: Uploaded.to Downloader
Author: Crack02
Beschreibung: Ein einfaches Skript um einen oder mehrere Links von Uploaded.to Premium zu saugen.

Größeres Update: Multithreading hinzugefügt.

Fürs Auge isses noch nix, weil die Wartemeldungen sich häufen und zwischen drin wget seine Rückmeldungen reinquetscht, aber es erfüllt seinen Zweck. Am besten in einer screen Shell laufen lassen.

Solche Skripte gibt es natürlich noch andere im Web. Das Problem bei allen war, dass wget oder curl beim Download der Datei einen falschen Namen gegeben haben. Anstelle von 123456.rar hieß die datei fghuehw, was dem Downloadlink bei Uploaded entspricht. Da man wget nicht direkt verklickern konnte, dass der richtige Dateinamen im HTTP Header übertragen wird, wird jetzt vor dem eigentlichen Download selber erstmal "ausgekundschaftet" (mit spider), um den Dateinamen aus dem Header abgreifen zu können.
Dieser wird dann an den eigentlichen Download an wget übergeben und die Datei mit dem richtigen Namen gespeichert.


Features:
  • Bei Erstnutzung werden die Logindaten für den Premium Account abgefragt und in einem Cookie hinterlegt, welches bei weiterer Nutzung erkannt wird.
  • Das Skript erkennt die drei Linkvarianten von uploaded (ul.to/123456, uploaded.to/file/123456 und uploaded.to/file/123456/123456.txt)
  • Ein einzelner Downloadlink kann als Parameter übergeben werden, mehrere Downloadlinks können aus einer einfachen Textdatei ausgelesen werden.

Es fehlen noch eine Hand voll Sicherheitsabfragen für ungültige Downloadlinks oder falsche Premium-Daten, d.h. die eingegebenen Daten sowie die Links sollten gültig und online sein, da das Skript sonst abkackt oder zu spinnen anfängt.
Wurde ergänzt.

Wget muss installiert sein.

Was vielleicht demnächst noch dazu kommt:
  • Multi-Threading bei Nutzung einer Linkliste.
  • Skipfunktion für lokal bereits Vorhandene Dateien.
Benutzung:
Code:
Usage with single download link: ./uploaded.download.sh http://uploaded.to/file/123456 or http://ul.to/123456 or http://uploaded.to/file/123456/123456.txt For multiple download links, put them in a text file: ./uploaded.download.sh links.txt

Code:
#!/usr/local/bin/bash # by Crack02 @ RR Board # Hier die maximale Anzahl an parallelen Downloads angeben. Standard = 5 vorgabe=5 ## Ab hier nichts mehr ändern. # Exit Trap fuckit() { echo "" echo "CTRL+C detected. Cleaning /tmp and killing downloads..." echo "" wgets=`ps |grep wget|wc -l` echo "Killing `echo $wgets` wget processes" killall wget rm /tmp/*wget.log rm /tmp/zaehler kill $zaehlerpid echo "Done and exit." exit 0 } trap fuckit SIGINT SIGTERM # COOKIE ERSTELLEN if [ ! -f ~/.ulcookie.txt ] then echo "No cookie has been detected. Creating one for you." echo -n "Enter your uploaded.to user id: " read ulid echo -n "Enter your Uploaded.to password: " read ulpw wget --save-cookies ~/.ulcookie.txt --post-data "id=$ulid&pw=$ulpw" http://uploaded.to/io/login echo "Cookie written to ~/.ulcookie.txt" rm login fi # HILFE if [ -z $1 ] then echo "Usage with single download link: $0 http://uploaded.to/file/123456" echo "or http://ul.to/123456" echo "or http://uploaded.to/file/123456/123456.txt" echo "For multiple download links, put them in a text file: $0 links.txt" exit 0 fi # Einige Tests und Abfragen type wget > /dev/null 2>&1 if [ ! $? = 0 ]; then echo "wget not found! Cant continue without wget. Exiting." exit 1 fi if [ ! -w $PWD ]; then echo "`pwd` is not writeable. Check permissions. Exiting." exit 1 fi # Zufälligen Wget Log generieren und whoami anfüttern. wgetlog=`echo $RANDOM`.wget.log whoami=`whoami` # LINKCHECKER linkcheck() { #cleanup logsda=`ls /tmp |grep .wget.log` if [ -z $logsda ]; then echo "" else rm /tmp/*.wget.log fi if [[ ! $1 =~ ^http\://(uploaded\.to/file|ul\.to)/[a-zA-Z0-9]+ ]]; then return 9 fi wget -S --spider --load-cookies ~/.ulcookie.txt $1 -o /tmp/$wgetlog filedown=`cat /tmp/$wgetlog|grep "404 Not Found"` accdown=`cat /tmp/$wgetlog|grep "recursion is disabled"` if [[ ! -z $filedown ]]; then return 8 fi if [[ ! -z $accdown ]]; then return 7 fi } # Überwachung auf laufende Downloads zaehlermachen() { if [ -z /tmp/zaehler ]; then touch /tmp/zaehler fi while [[ 1 == 1 ]] do zaehler=`ps -u | grep wget | grep $whoami | wc -l` echo $zaehler > /tmp/zaehler sleep 1 done } zaehlermachen $vorgabe & zaehlerpid=`echo $!` # Parallelen Download aus Datei if [ -f $1 ] then echo "Loading from links in file..." echo "Max Threads = `echo $vorgabe`" for i in `cat $1` do linkcheck $i returnvalue=`echo $?` if [[ $returnvalue = 0 ]]; then echo "Current threads: `echo $zaehler`" while [[ `cat /tmp/zaehler` -ge $vorgabe ]] do echo "Maximum threads reached. Awaiting downloads to finish..." sleep 2 done echo "Grabbing filename from server..." filename=`cat /tmp/$wgetlog|grep filename= |awk -F "\"" '{ print $2 }'` echo "Filename found: $filename. Downloading..." wget --progress=bar:force -nv --load-cookies ~/.ulcookie.txt -O "$filename" $i & else case $returnvalue in 7 ) echo "Login data invalid or server problem. Retrying after other downloads have been finished." echo $i >> /tmp/retry;; 8 ) echo "Link seems to be down. Skipping...";; 9 ) echo "Link regex seems to be invalid. Skipping...";; esac fi done # Fehlgeschlagene Downloads erneut versuchen. if [ -f /tmp/retry ] then echo "Found retry file. Retrying those..." for i in `cat /tmp/retry` do linkcheck $i returnvalue=`echo $?` if [[ $returnvalue = 0 ]]; then echo "Current threads: `echo $zaehler`" while [[ `cat /tmp/zaehler` -ge $vorgabe ]] do echo "Maximum threads reached. Awaiting downloads to finish..." sleep 1 done echo "Grabbing filename from server..." filename=`cat /tmp/$wgetlog|grep filename= |awk -F "\"" '{ print $2 }'` echo "Filename found: $filename. Downloading..." wget --progress=bar:force -nv --load-cookies ~/.ulcookie.txt -O "$filename" $i & else case $returnvalue in 7 ) echo "`echo $i` seems to be still ****** up. Will write this link to /tmp/skipped" echo $i >> /tmp/skipped;; 8 ) echo "Link seems to be down. Skipping...";; 9 ) echo "Link regex seems to be invalid. Skipping...";; esac fi done fi echo "Last download has been started in the background." echo "There are still `echo $zaehler` wget threads running. Wget will yell if they are finished." echo "Exiting" # Download einzelner Link else linkcheck $1 returnvalue=`echo $?` if [[ $returnvalue = 0 ]]; then if [ -z $2 ]; then echo "grabbing filename from server..." filename=`cat /tmp/$wgetlog|grep filename= |awk -F "\"" '{ print $2 }'` echo "Filename found: $filename. Downloading..." else filename=`echo $2` echo "Using $2 as filename." fi wget --progress=bar:force --load-cookies ~/.ulcookie.txt -O "$filename" $1 else case $returnvalue in 7 ) echo "Login data invalid or Server problem. Try again.";; 8 ) echo "Link seems to be down.";; 9 ) echo "Link regex seems to be invalid or if you selected a file it does not exist.";; esac fi fi # Downloadüberwachung beenden kill $zaehlerpid rm /tmp/zaehler if [ -f /tmp/retry ]; then rm /tmp/retry fi # Falls Links wegen Fehlern übersprungen wurden, zeige diese an. if [ -f /tmp/skipped ]; then echo "" echo "skipped links:" echo "" cat /tmp/skipped echo "" echo "You can find these links in /tmp/skipped too." fi exit 0
Bekannte Probleme: Manchmal kommt der Fehler "Login data invalid or Server problem.". Das Problem ist, dass über wget nicht genau diffierenziert werden kann, ob die Logindaten falsch sind oder der Server gerade ein Problem hat. Im Zweifelsfall die "defekten" versuchen neu zu laden.
Möglicherweise defekte Downloads werden jetzt einer Datei gespeichert und am Ende erneut geladen. Falls diese auch fehlschlägt, bekommt man am Ende eine Liste aller potentiell kaputten Downloads.

Ggf. den Interpreter anpassen. Die meisten Linux-Distros verwenden #!/bin/bash
Danke an Cable für seine Regex-Hilfe

"Jeder hat das Recht auf Meinungsfreiheit und freie Meinungsäußerung; dieses Recht schließt die Freiheit ein, Meinungen ungehindert anzuhängen sowie über Medien jeder Art und ohne Rücksicht auf Grenzen Informationen und Gedankengut zu suchen, zu empfangen und zu verbreiten." (Artikel 19 der Menschenrechte Vereinigten Nationen, 10.12.1948)
Zumindest theoretisch...
  Crack02 ist offline   Mit Zitat antworten
Antwort

RR:Board > Computer > Linux & BSD > Bash-Scripte


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[JavaScript] - scripte zusammenfügen Snoop87 Webentwicklung 2 10.02.2009 20:56
Comments zum Thema "Bash-Scripte" Inder Linux & BSD 6 10.10.2006 16:28
Lizenslose scripte Terrorbeat Webentwicklung 3 09.06.2006 16:37
Suche scripte! Suicidex2k Webentwicklung 5 30.03.2006 16:37



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.
vBulletin Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.