(08-06-2012 05:55) #1
[Skryptomania] Zabawiamy się z Bashem.
Witam drogich użytkowników.
W tym temacie będziemy mogli umieszczać skrypty napisane w języku Bash.
Przykładowy formularz dodania skryptu:
Kod:
[b]Nazwa skryptu:[/b]
[b]Opis skryptu:[/b]
[b]Kod skryptu: [/b](w znaczniku [code])
[b]Informacje dodatkowe:[/b] (jeżeli jakieś są)
[b]Link do pobrania skryptu:[/b] (jeżeli istnieje)
A więc żeby nie było pusto poumieszczam parę skryptów sam i będę je dodawał regularnie.
Nazwa skryptu: Aliasator
Opis skryptu: Aliasy - ułatwmy sobie pracę z apt-get:
Kod skryptu:
Kod:
#!/bin/sh
alias install='sudo apt-get install'
alias search='sudo apt-cache search'
alias upgrade='sudo apt-get upgrade'
alias update='sudo apt-get update'
alias ..='cd ..'
Nazwa skryptu: Aktualizator
Opis skryptu: Zaktualizujmy system jednym poleceniem
Kod skryptu:
Kod:
#!/bin/sh
sudo apt-get autoclean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get dist-upgrade
Nazwa skryptu: Radyjo
Opis skryptu: Skrypt pozwalający słuchać radia
Kod skryptu:
Kod:
#!/bin/bash
# Configuration
RADIO_DIR=~/.radyja
PLAYER=echo
# List available radios
list_radios () {
if [ -d $RADIO_DIR ]
then
cd $RADIO_DIR
grep 'Opis:' *.fm | sed -e 's/\.fm:Opis:/:\t/'
else
echo 'Brak zainstalowanych radiów'
fi
}
# Play radio
play_radio () {
RADIO="$RADIO_DIR/$1.fm"
if [ -f $RADIO ]
then
URL=`grep 'Adres: ' $RADIO | sed 's/^Adres: //'`
$PLAYER $URL
else
echo "Radio $1 nie odnaleziono"
fi
}
# Print help
print_help () {
echo "użycie: radyjo nazwa_radia"
echo " Aby wyświetlić listę dostępnych radiów, użyj radyjo --list"
}
# Main script
if [ ! -n "$1" ] # No argument given
then
print_help
elif [ "$1" = "--list" ] # List radios
then
list_radios
elif [ "$1" = "--help" ] # Print help
then
print_help
else # Play radio
play_radio "$1"
fi
Radia są przechowywane w plikach o nazwach: nazwa_radia.fm w katalogu ~/.radyja w formacie:
Kod:
Adres: http://adres_pliku_ze_strumieniem/blabla.ogg
Opis: Nazwa radia
Nazwa skryptu: Intruzator
Opis skryptu: Skrypt do wyszukiwania intruzów w sieci lokalnej
Kod skryptu:
Kod:
#!/bin/bash
if [ -e ~/.list ]; then
nbtscan 192.168.2.1-10 > .list
else
touch ~/.list
nbtscan 192.168.2.1-10 > .list
fi
if [ -e ~/.ile ]; then
wc -l ~/.list > ~/.ile
else
touch ~/.ile
wc -l ~/.list > ~/.ile
fi
wynik="$[$(cat ~/.ile | cut -c1)-4]"
cat ~/.list | tail -n$wynik | cut -d" " -f1-7
Kod:
#!/bin/bash
if [ -e ~/.intruz ] ; then
scan > ~/.intruz
else
touch ~/.intruz
scan > ~/.intruz
fi
if [ "$(inter | cut -c2-6)" != "ASMAX" ]; then
sleep 3600
netusers
else
if [ "$(wc -l ~/.intruz | cut -c1)" -gt "2" ]; then
zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci lokalnej"
fi
if [ "$(cat ~/.intruz | cut -c1)" = "2" ]; then
if [ "$(cat ~/.intruz | grep 192.168.2.7)" = "0" ]; then
zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci lokalnej"
fi
fi
if [ "$(wc -l ~/.intruz | cut -c1)" = "2" ]; then
if [ "$(cat ~/.intruz | grep XXX-ECF00AD4F14)" = "0" ]; then
zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci loka$
fi
fi
fi
echo "ok"
sleep 300
netusers
Informacje dodatkowe: Potrzebne pakiety: zenity i nbtscan
Nazwa skryptu: Konwertman
Opis skryptu: Skrypt do konwertowania kodowania plików tekstowych z windowsowego cp1250 do UTF8
Kod skryptu:
Kod:
#!/bin/bash
if [ $# -gt 0 ] ; then
iconv -f CP1250 -t UTF-8 --output=/tmp/$1 $1
cp $1 $1~
mv /tmp/$1 $1
else
echo "Konwersja kodowania pliku tekstowego z CP1250 (Windows) na UTF-8"
echo "użycie: $0 nazwapliku"
fi
Nazwa skryptu: Czynnościk
Opis skryptu: Skrypt odlicza czas i po jakim wykonuje czynność, którą sobie zażyczymy. W menu głównym programu wszystko można sobie ustawić
Kod skryptu:
Kod:
#!/bin/bash
clear
echo "Witaj w tekstowym wyłączniku."
echo "Wprowadź liczbę minut do odliczenia."
echo -n "> "
read ileminut
ilesekund=$[$ileminut*60]
echo "Odliczanie będzie trwało $ilesekund sekund."
function list
{
case "$1" in
a)
clear
echo "1) Czas: $ilesekund sek. ($ileminut min.) - zmień."
echo "2) Po zakończeniu: $pozak"
echo "3) Rozpocznij odliczanie."
echo "4) Zakończ"
echo -n "> "
read menu
case "$menu" in
1)
echo
echo "Wprowadź nowy czas"
echo -n
read ileminut
ilesekund=$[$ileminut*60]
list a
;;
2)
list b
list a
;;
3)
dodaj
list a
;;
4)
clear
exit 0
;;
*)
clear
echo "Błędny wybór..."
sleep 2
list a
esac
;;
b)
echo "1) Wyłącz komputer"
echo "2) Uruchom ponownie"
echo "3) Wykonaj polecenie"
echo
echo -n "> "
echo
read poz
case "$poz" in
1)
pozak1="shutdown -h now"
pozak="Wyłączenie komputera"
;;
2)
pozak1="shutdown -r now"
pozak="Ponowne uruchomienie komputera"
;;
3)
echo "Wprowadź dowolne polecenie systemowe."
echo -n "> "
read pozak1
pozak="Polecenie systemowe: $pozak1"
;;
esac
;;
esac
}
function pokaz
{
clear
echo "Pozostało odliczania: $ilesekteraz sek. / $ilesekund sek. ($ileminut min.)"
dodaj
}
function dodaj
{
if [ "$ilesekteraz" = "$ilesekund" ]
then
$pozak1
else
if [ "$juz" = "tak" ]
then
sleep 1
ilesekteraz1=$[$ilesekteraz+1]
ilesekteraz=$ilesekteraz1
pokaz
else
juz=tak
pokaz
fi
fi
}
list a
[/quote]
20)
Hasla- generowanie dla tych co musza zmieniach hasla np co tydzien.
[quote]
#!/usr/bin/perl -w
system "clear";
use Term::ANSIColor;
print color("blue"),"Hmm wymyślę hasła ..:)\n", color("reset");
print color("green"),"Podaj długość hasła (cyfrą) ",color("reset");
$li = <STDIN>;
if ($li lt "1")
{ print color("red"),"nic nie wprowadzono...!,kończe program\n", color("reset");exit}
print color("green"),"Podaj ilość haseł (cyfrą) ",color("reset");
$powt =<STDIN>;
if ($powt lt "1")
{ print color("red"),"brak wszystkich danych...!, kończe program.\n",color("reset");exit}
print "Ok, rozpoczynam generowanie haseł\n";
$ile = $powt;
for (1 ..$powt)
{
{ @lines = `pwgen -s -y $li`;print color("white"),"hasło.. ",color("reset");}foreach (@lines)
{print;}
}
Nazwa skryptu: Jaki transfer ?
Opis skryptu: Skrypt pokazujący zużycie transferu (prędkość) przez aktualnie uruchomione aplikacje/usługi itp
Kod skryptu:
Kod:
#!/bin/bash
max_chars=100 # maksymalna liczba znaków na konsoli (dlugosc paska wykresu)
max_down_speed=65536 # maksymalna prędkość pobierania w bajtach (tutaj 65536 B = 64 KB = 512Mb)
function get_speed()
{
speed=`cat /proc/net/dev | grep eth0`
if [ "$1" == 'up' ]; then
speed=`echo $speed | awk '{print $9}'`
last=$last_upl
last_upl=$speed
else
speed=`echo $speed | awk '{print $1}' | awk -F":" '{print $2}'`
last=$last_down
last_down=$speed
fi
speed=$[ $speed - $last ]
}
function kb()
{
bytes=$[$1 * 100 / 1024]
val=`echo $bytes | sed 's/\([[:digit:]]*\)\([[:digit:]]\{2\}\)/\1.\2/g'`
if [ `echo $val | wc -m` == 4 ]; then
val="0$val"
elif [ `echo $val | wc -m` == 3 ]; then
val="0.$val"
elif [ `echo $val | wc -m` == 2 ]; then
val="0.0$val"
fi
}
function wykres()
{
perc=$[$1 * 100 / $max_down_speed]
print_chars=$[$perc/ (100 / $max_chars)]
str='['
for s in `seq 0 $max_chars`
do
if [ $s -lt $print_chars ]; then
str+='#'
else
str+='-'
fi
done
str+=']'
}
last_upl=`cat /proc/net/dev | grep eth0 | awk '{print $9}'`
last_down=`cat /proc/net/dev | grep eth0 | awk '{print $1}' | awk -F":" '{print $2}'`
sleep 1
echo -e "\n"
i=1
while [ true ]
do
get_speed 'up'
kb $speed
upl_speed=$val
get_speed 'down'
wykres $speed
wykres=$str
down_sum=$[$down_sum + $speed]
kb $speed
down_speed=$val
down_avg=$[$down_sum/$i]
kb $down_avg
down_avg=$val
echo -e "\e[2A$wykres"
echo -e "Download: $down_speed KB/s\e[K\tUpload: $upl_speed KB/s\e[K\tDownload Avg: $down_avg KB/s"
i=$[$i+1]
sleep 1
done
Nazwa skryptu: SFVED
Opis skryptu: Skrypt dla Nautiliusa do sprawdzania SFV na podstawie pliku "*.SFV":
Kod skryptu:
Kod:
#!/bin/sh
# Language settings
Passed="OK"
Failed="FAILED"
PrintAllOk="All files are OK!"
PrintFail1="file(s) are OK and"
PrintFail2="file(s) are corrupt!"
case $LANG in
pl* )
Passed="OK"
Failed="Błąd"
PrintAllOk="Wszystkie pliki są OK!"
PrintFail1="plik(i) jest/są OK i"
PrintFail2="plik(i) jest/są uszkodzony/uszkodzone!"
esac
for File in "$@"
do
if [ ! -f "$File" ] || [ "${File:(( ${#File} -4 ))}" != ".sfv" && ".SFV" ];then
zenity --error --text="\"$File\" isn\'t SFV file..."
exit
fi
(cfv -rr -T -f "$@" -t sfv > "/tmp/CRCcheck.txt") 2>&1 | zenity --progress --title "Check SFV" --text "Checking: $File" --pulsate --auto-close
NumberOK=`cat /tmp/CRCcheck.txt | fgrep -o -e "$Passed" | wc -l`
NumberFailed=`cat /tmp/CRCcheck.txt | fgrep -o -e "$Failed" | wc -l`
if [ $NumberFailed == 0 ]; then
StatusMessage="$PrintAllOk"
else
StatusMessage="$NumberOK $PrintFail1 $NumberFailed $PrintFail2"
fi
echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" >> /tmp/CRCcheck.txt
echo "$StatusMessage" >> /tmp/CRCcheck.txt
zenity --text-info --title "$File" --width=640 --height=240 --filename=/tmp/CRCcheck.txt
done
(Ten post był ostatnio modyfikowany: 08-06-2012 06:24 przez DamiaX.)