Przydatne skrypty
- dk75
- Przebojowy Jelonek
- Posty: 1142
- Rejestracja: 07 mar 2007, 22:59
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: Przydatne skrypty
Ja mam /tmp w RAM a i tak kasuję w swoich skryptach wszystko co tam zapisałem
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
- empitt
- Przyjaciel
- Posty: 465
- Rejestracja: 16 lis 2007, 13:35
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Kod: Zaznacz cały
grep 'NO_PUBKEY' /tmp/keye | sed 's/.*NO_PUBKEY //'
Kod: Zaznacz cały
sed -i '/NO_PUBKEY/!d;s/.*NO_PUBKEY //' /tmp/keye
Oto moja wersja skryptu do pobierania brakujących kluczy:
Kod: Zaznacz cały
#!/bin/bash
echo 'Proszę czekać...'
x=0
while [ $x -ne 2 ]
do
sudo apt-get update 2> outfile > /dev/null
sed -i '/NO_PUBKEY/!d;s/.*NO_PUBKEY //' outfile &> /dev/null
gpg --keyserver 'x-hkp://gpg-keyserver.de' --recv-keys $(cat outfile) &> /dev/null
gpg --export --armor $(cat outfile) | sudo apt-key add - && echo 'true' > outfile || rm -f outfile
x=$(( $x + 1 ))
done
if [ -s outfile ]
then
echo -ne '\nPowiodło się'
rm -f outfile
else
echo -ne '\nNie powiodło się'
fi
echo ' (Naciśnij enter, aby zakończyć działanie skryptu)'
read
-
- Sędziwy Jeż
- Posty: 68
- Rejestracja: 03 lis 2007, 23:14
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
-
- Wytworny Kaczor
- Posty: 284
- Rejestracja: 30 paź 2005, 21:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Po to, żeby skrypt czekał na użytkownika z informacją "Powiodło się lub nie"Ja nie do końca rozumiem, po co to naciskanie Enter na końcu skryptu? I z drobnostek dodałbym w przypadku niepowodzenia zakończenie z jakimś kodem, np. exit 1 czy coś.
Kto co woli
- empitt
- Przyjaciel
- Posty: 465
- Rejestracja: 16 lis 2007, 13:35
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Jeśli ktoś będzie uruchamiać skrypt standardowo w konsoli, to exit może być, ale jak ktoś będzie odpalać go poprzez dwuklik, to exit wyłączy skrypt i skąd użytkownik będzie wiedział jaki był końcowy wynik? Dlatego w tym przypadku lepiej pasuje read od exit.outslider pisze:Ja nie do końca rozumiem, po co to naciskanie Enter na końcu skryptu? I z drobnostek dodałbym w przypadku niepowodzenia zakończenie z jakimś kodem, np. exit 1 czy coś.
EDIT:
Proste polecenie do sprawdzania połączenia z internetem:
Kod: Zaznacz cały
ping -c 1 209.85.129.105 &> /dev/null && echo 'Jest połączenie' || echo 'Brak połączenia'
Kod: Zaznacz cały
#!/bin/bash
wget -q -t 10 -T 5 209.85.129.105 -O net
if [ $? != '0' ] ; then
echo -n 'Brak połączenia'
else
echo -n 'Jest połączenie'
fi
echo ' (Naciśnij enter, aby zakończyć działanie skryptu)'
rm -f net
read
-
- Wytworny Kaczor
- Posty: 284
- Rejestracja: 30 paź 2005, 21:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Nie koniecznie bo wynik zakończenia przechowuje zmienna $?, a wynik ten można przypisać innej zmiennej, a potem się do niej odwołać itd. Nie jest to potrzebne chyba, że ktoś nas o to poprosi bo np. chce wykorzystać nasz skrypt i wywołać go w swoim programie. Jest jeszcze możliwość grupowania poleceń {} lub (), ale i to zależy od programisty jak to wszystko rozwiąże.Jeśli ktoś będzie uruchamiać skrypt standardowo w konsoli, to exit może być, ale jak ktoś będzie odpalać go poprzez dwuklik, to exit wyłączy skrypt i skąd użytkownik będzie wiedział jaki był końcowy wynik? Dlatego w tym przypadku lepiej pasuje read od exit.
-
- Sędziwy Jeż
- Posty: 68
- Rejestracja: 03 lis 2007, 23:14
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Ale jak ktoś odpali przez dwuklik to i tak nie zobaczy, co pokazało echo;p. Mało tego, wtedy nie będzie można wyłączyć skryptu przez klawisz Enter, bo skrypt nie będzie czytał z stdin. Więc to tym gorzej, bo skrypt będzie wisiał w procesach jedyne co robiąc to czekając na Enter, który nie nadejdzie...Jeśli ktoś będzie uruchamiać skrypt standardowo w konsoli, to exit może być, ale jak ktoś będzie odpalać go poprzez dwuklik, to exit wyłączy skrypt i skąd użytkownik będzie wiedział jaki był końcowy wynik? Dlatego w tym przypadku lepiej pasuje read od exit.
A jak będzie z GUI (zenity czy kdialog) to i tak trzeba kliknąć na przycisk, zanim okno zniknie.
Ok, dobra, już się na ten temat nie wypowiadam, bo nie po to wątek.
-----edit-----
żeby nie mnożyć postów nad miarę:
empitt, to znaczy, że u Ciebie po dwukliku pojawia się konsola? U mnie nie, u mnie skrypt uruchomiony dwuklikiem działa w tle. Dlatego napisałem, że nie ma to sensu. Skoro jednak u Ciebie tak to wygląda, to widać bywają sytuacje, gdzie jest to przydatne;p
- empitt
- Przyjaciel
- Posty: 465
- Rejestracja: 16 lis 2007, 13:35
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
-
- Wytworny Kaczor
- Posty: 284
- Rejestracja: 30 paź 2005, 21:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Zacząłem pisać ten prosty skrypt dobre pół roku temu, ale że z sudo działał w postaci jednej linii, a z gksu czy gksudo już nie, to napisałem go w takie postaci jak widzicie.
Główny skrypt
Kod: Zaznacz cały
#!/bin/bash
## REPO ADD 0.3
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3
OPTIONS=$( zenity --title="Dodaj Repozytorium" --text="Wybierz opcje z poniższej listy" --list --checklist --column="Wybór" --column="Lista opcji" \
FALSE "Nazwij repozytorium" \
FALSE "Odśwież listę pakietów" \
FALSE "Edytuj plik \"sources.list\"" )
[ "$?" = 1 ] && exit 1
for REPO_FILE in "$@"
do
echo "$OPTIONS" | grep -q "Nazwij repozytorium" \
&& { REPO_NAME=$( zenity --width=300 --entry --title="Dodaj Repozytorium" --text="Nazwa repozytorium dla \"$REPO_FILE\"" ); DIALOG_NAME="$?"; }
[ "$DIALOG_NAME" = 1 ] && exit 1
export REPO_FILE
export REPO_NAME
gksu -k "$HOME/.gnome2/nautilus-scripts/.repo_add" ; REPO_ADD=$?
[ $REPO_ADD = 0 ] \
&& notify-send -t 2500 -i dialog-apply 'Gotowe' "Repozytorium \"$REPO_NAME\" dodane do listy." \
|| notify-send -t 2500 -i dialog-warning 'Błąd' 'Coś poszło nie tak.'
done
echo "$OPTIONS" | grep -q "Odśwież listę pakietów" \
&& gksu apt-get update \
| zenity --title="Odświeżania listy pakietów" --text="Proszę cierpliwie czekać, może to chwilę potrwać." --progress --pulsate --auto-close
echo "$OPTIONS" | grep -q "Edytuj plik \"sources.list\"" \
&& gksu gedit /etc/apt/sources.list
Skrypt, któremu exportuję wartość zmiennej z listy
Kod: Zaznacz cały
#!/bin/bash
## REPO ADD 0.3
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3
echo -e '## Dodane przez rozszerzenie' \"Dodaj Repozytorium\" 'dnia' $(date +%d.%m.%Y) 'o godzinie' $(date +%X) "\n## $REPO_NAME" \
| tee -a /etc/apt/sources.list
sed -e '/^$/d' < "$REPO_FILE" | tee -a /etc/apt/sources.list
Kod: Zaznacz cały
#!/bin/bash
for FILE in *
do
[ "$FILE" != Install ] && [ "$FILE" != README ] \
&& chmod u+x "$FILE" && cp -p "$FILE" "$HOME/.gnome2/nautilus-scripts" \
&& echo -e 'Kopiowanie pliku' \""$FILE"\" '[\E[31m OK \E[0m]' \
|| echo -e 'Kopiowanie pliku' \""$FILE"\" '[\E[32m NO \E[0m]'
done
mv "$HOME/.gnome2/nautilus-scripts/repo_add" "$HOME/.gnome2/nautilus-scripts/.repo_add"
echo -e '\n\E[31m Jeśli chcesz być informowany o procesie aktualizacji, doinstaluj dymki.\n Możesz to zrobić wpisująć w terminalu:\E[0m sudo apt-get install libnotify-bin\n'
read -p 'Naciśnij dowolny klawisz aby zakończyć: '
30.06.2010
Na stronie znajduje sie wersja 0.2 z kilkoma nowościami + prezentacja video.
08.07.2010
Wersja 0.3 z możliwością edytowania pliku sources.list. Wideo prezentacja + gotowa paczuszka- odsyłam na strone.
-
- Piegowaty Guziec
- Posty: 10
- Rejestracja: 02 maja 2008, 13:37
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: Przydatne skrypty
Kod: Zaznacz cały
#!/bin/sh
if [ -n "$1" ]
then
if [ -d "$1" ]
then
cd "$1"
else
echo invalid directory
exit
fi
fi
for i in *
do
OLDNAME="$i"
NEWNAME=`echo "$i" | tr ' ' '_' | tr A-Z a-z | sed s/_-_/-/g`
if [ "$NEWNAME" != "$OLDNAME" ]
then
TMPNAME="$i"_TMP
echo ""
mv -v -- "$OLDNAME" "$TMPNAME"
mv -v -- "$TMPNAME" "$NEWNAME"
fi
if [ -d "$NEWNAME" ]
then
echo Recursing lowercase for directory "$NEWNAME"
$0 "$NEWNAME"
fi
done
Kod: Zaznacz cały
#!/bin/bash
for i in *.wav
do
lame -h -b 192 "$i" "$i.mp3"
done
Kod: Zaznacz cały
#! /bin/sh
for a in *.wav.mp3; do mv $a `basename $a .wav.mp3`.mp3; done
-
- Sędziwy Jeż
- Posty: 33
- Rejestracja: 05 lut 2010, 21:39
- Płeć: Mężczyzna
- Wersja Ubuntu: 13.10
- Środowisko graficzne: Unity
- Architektura: x86_64
Odp: Przydatne skrypty
O skrypcie:
Skrypt głównie dla młodzieży szkolnej/studentów!
Od dziś conky podpowie nam jakie lekcje mamy jutro nie będziecie już musieli szukać kartek z planem lekcji!!!
Nie dziwcie się, że skrypt nie działa po instalacji bowiem jest on tak napisany aby nie działał w wakacje oraz soboty, w niedziele działa ponieważ pokazuje plan na poniedziałek!
Wymagania pakiet lua dostępny w repo bodajże:
Kod: Zaznacz cały
sudo apt-get install lua5.1
Kod: Zaznacz cały
local user = "miziak" --podajemy nazwę naszego użytkownika
local nazwy, dzien, plan = {"poniedzialek", "wtorek", "sroda", "czwartek", "piatek"}, tonumber(os.date("%w"))+1, ""
local bool = false
for line in io.lines("/home/"..user.."/Dokumenty/plan lekcji") do
if(line:lower():find(nazwy[dzien]))then
if(not bool)then
bool = true
plan = "Plan na jutro(" .. nazwy[dzien] .. ") to:\n"
else
break
end
else
plan = plan .. line .. "\n"
end
end
print(plan)
Kod: Zaznacz cały
#!/bin/bash
jutro=$(date +%w)
jutro=$((($jutro+1)%7))
miesciac=$(date +%m)
if [[ "$miesciac" != "08" && "$miesciac" != "07" ]]
then
if [ "$jutro" != "6" ]
then
echo ""
lua /home/miziak/.skrypty_conky/plan.lua
fi
fi
Kod: Zaznacz cały
${execi 1 ~/.skrypty_conky/plan.sh}
Teraz w folderze pod tytułem Dokumenty(jest on na partycji /home) tworzymy zwykły plik i nazywamy go plan lekcji jest to plik konfiguracyjny skryptu wklejasz do niego:
Między nazwami dni umieszczamy swój plan lekcji nie musi ich być koniecznie 9 może być nawet jednaPoniedzialek:
1
2
3
4
5
6
7
8
9
Poniedzialek:
Wtorek:
1
2
3
4
5
6
7
8
9
Wtorek:
Sroda:
1
2
3
4
5
6
7
8
9
Sroda:
Czwartek:
1
2
3
4
5
6
7
8
9
Czwartek:
Piatek:
1
2
3
4
5
6
7
8
9
Piatek:
Kod: Zaznacz cały
local user = "miziak" --podajemy nazwę naszego użytkownika
Pozdrawiam,
Miziak
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 02 wrz 2010, 16:43
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: Przydatne skrypty
pierwszy usuwa wszelkie spacje z nazw zaznaczonych plików:
Kod: Zaznacz cały
#!/bin/bash
clear
messages="Wprowadzono następujące modyfikacje:"
for oldName in "$@"
do
path="$NAUTILUS_SCRIPT_CURRENT_URI"
path=${path##file:\/\/}
newName=${oldName//\ /\_}
if [ "$oldName" != "$newName" ]; then
messages="${messages}\nmv \"$path/$oldName\" \"$path/$newName\""
mv "$path/$oldName" "$path/$newName"
else
messages="${messages}\n$oldName: spacji do wyczyszczenia "
fi
done
echo -e $messages | zenity --text-info --width 530
Kod: Zaznacz cały
#!/bin/bash
clear
messages="Wprowadzono następujące modyfikacje:"
for oldName in "$@"
do
path="$NAUTILUS_SCRIPT_CURRENT_URI"
path=${path##file:\/\/}
newName=${oldName//\_/ }
newName=${newName//\ \ / }
newName=${newName//\%20/ }
newName=${newName//\ \./\.}
if [ "$oldName" != "$newName" ]; then
messages="${messages}\nmv \"$path/$oldName\" \"$path/$newName\""
mv "$path/$oldName" "$path/$newName"
else
messages="${messages}\n$oldName: spacji do wyczyszczenia "
fi
done
echo -e $messages | zenity --text-info --width 530
EDIT:
i jeszcze jeden skrypcik. Dodałem go sobie w ubuntu do automatycznego uruchamiania w momencie logowania. Pozwala on na zamontowanie dysków zaszyfrowanych za pomocą true crypt. Oczywiście należy podać swoje opcje montowania (urządzenia, katalogi montowania):
Kod: Zaznacz cały
#! /bin/bash
clear
sudo -k
wynik=""
i=0
while [ "$wynik" = "" ]; do
if [ $i = 3 ]; then
exit 1
fi
haslo=$(zenity --entry \
--title="Podaj hasło root" \
--text="Podaj hasło root:" \
--entry-text "" \
--hide-text)
wynik=$(echo $haslo | sudo -kS ls -al)
i=$i+1
if [ "$haslo" = "" ]; then
anulowac=`zenity --question --text="Nie podałeś hasła, czy chcesz anulować?"; echo $?`
if [ "$anulowac" = "0" ]; then
exit 1
fi
fi
if [ "$wynik" != "" ]; then
echo $haslo | sudo -S ls -al
fi
done
haslo=$(zenity --entry \
--title="Podaj hasło trueCrypt" \
--text="Podaj hasło trueCrypt:" \
--entry-text "" \
--hide-text)
sudo truecrypt -d;
sudo truecrypt -p=$haslo /dev/sdb1 /media/truecrypt1
sudo truecrypt -p=$haslo /dev/sda3 /media/truecrypt2
sudo -k
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 13 maja 2010, 22:28
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: Przydatne skrypty
Wykorzystuje to, że podczas oglądania system tworzy plik flashowy w katalogu /tmp
Sprawdza, czy w/tmp jest taki plik, kopiuje go do wybranego katalogu, konwertuje na avi.
Kod: Zaznacz cały
#!/bin/bash
# tmp.sh data: 13wrz2010 wersja: 0.4
# skrypt wykonujący kopię plików flash z katalogu ~/tmp
if [ -e /tmp/Flash* ]
then
cp /tmp/Flash* ~/skrypty/tmp_flash/
cd ~/skrypty/tmp_flash/
ffmpeg -i Flash* -b 780000 $(date '+%F_%M').avi # konwertuje na avi (wymaga zainstalowania ffmpeg)
rm Flash*
echo "plik skopiowany"
else
echo "brak pliku do skopiowania"
fi
-
- Sędziwy Jeż
- Posty: 68
- Rejestracja: 03 lis 2007, 23:14
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
Zmieniłbym tylko, żeby output był w katalogu, w którym jest skrypt odpalany:
Kod: Zaznacz cały
#!/bin/bash
# tmp.sh data: 13wrz2010 wersja: 0.4
# skrypt wykonujący kopię plików flash z katalogu ~/tmp
if [ -e /tmp/Flash* ]
then
cp /tmp/Flash* .
ffmpeg -i Flash* -b 780000 $(date '+%F_%M').avi # konwertuje na avi (wymaga zainstalowania ffmpeg)
rm Flash*
echo "plik skopiowany"
else
echo "brak pliku do skopiowania"
fi
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 13 maja 2010, 22:28
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: Przydatne skrypty
2. Oczywiście każdy użytkownik może sobie samodzielnie ustalić do jakiego katalogu skopiuje pliki
3. wprowadzona przez Ciebie modyfikacja kopiuje do ~/home/, więc nie zawsze będzie to ten w którym jest skrypt
-
- Sędziwy Jeż
- Posty: 68
- Rejestracja: 03 lis 2007, 23:14
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
2. No tak, demokracja jest...
3. Wydaje mi się, że katalog "." oznacza bieżący katalog, więc jak ktoś odpali skrypt z jakiegoś katalogu (cd /katalog; /ścieżka/do/skryptu) to skopiuje do bieżącego, czy się mylę?
4. A, no i użytkownik musi wiedzieć, że skrypt odpalamy po zbuforowaniu pliku! Możnaby dodać sprawdzanie, np. w odstępie 3-4 sek. czy plik jeszcze rośnie, ale to chyba mnożenie bytów ponad miarę...
- kapat
- Sędziwy Jeż
- Posty: 62
- Rejestracja: 09 mar 2008, 21:55
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: Przydatne skrypty
Wywoływanie.
jpg-cliner.sh - uruchomi GUI zenity
jpg-cliner.sh -c - uruchomi tryb consolowy
Dostępne Opcje:
Kod: Zaznacz cały
USAGE: /media/Nowy/Dokumenty/Programming/Script/Software/jpg-cliner.sh <option> <Source> <Destinity>
-c Starting in text mode.
usage: /media/Nowy/Dokumenty/Programming/Script/Software/jpg-cliner.sh -c <Source> <Destinity>
-q --quiet Quiet mode. Does not display any messages
Author: Tomasz "Kapat" Kapuściarek
Mail: kapuściarek[at]gmail.com
Kod: Zaznacz cały
/home/xxx/zdjecia/2009/01.Styczen/
/home/xxx/zdjecia/2010/04.Kwiecien/
Kod: Zaznacz cały
#! /bin/bash
#################################################################################
#
### SKRYPT PORZADKUJĄCY ZDJĘCIA NA BAZIE EXIF
# Autor: Kapat
# Mail: kapusciarek[at]gmail.com
#
################################################################################
# Tablica przechowująca nazwy miesięcy, wykorzystywane do tworzenia katalogów
# Używana przez funkcje createDir
TABLE=(Styczen Luty Marzec Kwiecein Maj Czerwiec Lipiec Sierpien Wrzesien Pazdziernik Listopad Grudzien)
#Domyślne ścieżki prgramów
EXIF="/usr/bin/jhead"
# Separuje z exifa daty
parseDate() {
YEAR=$(jhead ${1} | awk '{FS=":"} /Date\/Time/ {print substr($2,2)}')
MONTH=$(jhead ${1} | awk '{FS=":"} /Date\/Time/ {print $3}')
DAY=$(jhead ${1} | awk '{FS=":"} /Date\/Time/ {print substr ($4,0,2)}')
}
# Tworzy Katalogi Na bazie Exif
createDir() {
STRMONTH=${TABLE[$(echo $MONTH | awk '{if (/^0/) print substr ($0,2); else print}')-1]}
VERBOSE="$1"
if [ -d $destDIR/$YEAR ]
then
echo -n
else
if [ $VERBOSE -eq '0' ]
then
echo -e "[CR]\\t$destDIR$YEAR"
fi
mkdir $destDIR/$YEAR
fi
if [ -d $destDIR/$YEAR/$MONTH.$STRMONTH ]
then
echo -n
else
if [ $VERBOSE -eq 0 ]
then
echo -e "[CR]\\t$destDIR$YEAR/$MONTH.$STRMONTH"
fi
mkdir $destDIR/$YEAR/$MONTH.$STRMONTH
fi
}
# Przenosi Plik do katalogu destDIR
mvFiles() {
PLIK=$(echo ${1} | sed 's/^.*\///g')
VERBOSE="${2}"
if [ -e "$destDIR$YEAR/$MONTH.$STRMONTH/$PLIK" ]
then
echo -n
else
if [ $VERBOSE -eq 0 ]
then
echo -e "[MV]\\t$destDIR$YEAR/$MONTH.$STRMONTH/$PLIK"
fi
mv $1 $destDIR$YEAR/$MONTH.$STRMONTH/
fi
}
# Wyświetla Pomoc
Help_MSG () {
echo
echo -e "USAGE: $0 <option> <Source> <Destinity>"
echo
echo -e "-c\\t\\t\\tStarting in text mode."\
"\\n\\t\\t\\tusage: $0 -c <Source> <Destinity>\\n"
echo -e "-q\\t--quiet\\t\\tQuiet mode. Does not display any messages\\n"
echo -e "\\t Author: Tomasz \"Kapat\" Kapuściarek\\n" \
"\\t Mail: kapuściarek[at]gmail.com"
}
# Zmienia nazwę plików z dużych na małe litery
Change_Exception() {
for FILE in $srcDIR*.[jJ][pP][gG]
do
if [ $FILE == *.[jJ][pP][gG] ]
then
break
else
jhead -n%Y-%m-%d_%H-%M-%S $FILE #>> error.log
fi
done
}
# Funkcja Główna wywoływana w MAIN
JPG_clean() {
for FILES in `ls $srcDIR*.jpg`
do
parseDate $FILES
createDir 0
mvFiles $FILES 0
done
}
GUI_getDirectory() {
TITLE="$1"
DIR=$(zenity --file-selection --directory --title=$TITLE)
case $? in
0)
ERROR="0";;
1)
ERROR="1";;
-1)
ERROR="-1";;
esac
}
### GUI FUNCTION
GUI_ChangeDirectory() {
GUI_getDirectory "Source"
if [ $ERROR = "1" ]
then
zenity --info --text="\nAnulowanie na życzenie użytkownika.\n"
elif [ $ERROR = "-1" ]
then
zenity --error --text="Zakończenie skryptu nieznany błąd"
else
srcDIR="$DIR/"
GUI_getDirectory "Destinity"
if [ $ERROR = "1" ]
then
zenity --info --text="\nAnulowanie na życzenie użytkownika.\n"
else
destDIR="$DIR/"
GUI_ProgressBAR
fi
fi
}
# Wyświetla Pasek posŧepu przenoszenia plików z katalogu
# Źrudłowego do Docelowego
GUI_ProgressBAR () {
cd $srcDIR
FileCount=$(ls *.[Jj][Pp][Gg]|wc -l)
(for FILES in $(ls *.[Jj][Pp][Gg])
do
COUNTER=$(ls *.[Jj][Pp][Gg]|wc -l)
STEP=$(($COUNTER*100/$FileCount))
#Tu jest jakiś błąd z jheadem sptawdzić
#jhead -n%Y-%m-%d_%H-%M-%S $FILES
parseDate $FILES
createDir 1
mvFiles $FILES 1
# TU Już nie
echo $((100-$STEP))
done) | zenity --progress --title="Progress" --text="Scanning Pictrue ..." \
--percentage=0
}
if [ "$1" = "-h" ] || [ "$1" = "--help" ] # Wywołanie okna Pomocy
then
Help_MSG
elif [ "$1" = "-c" ]
then
srcDIR="$2" # Katalog źródłowy
destDIR="$3" # Katalog Docelowy
echo -e "SRC: $srcDIR \\t DEST: $destDIR "
Change_Exception
JPG_clean
else
GUI_ChangeDirectory
fi
"Informatyk nie czyta, on przetwarza informacje."
-
- Wytworny Kaczor
- Posty: 284
- Rejestracja: 30 paź 2005, 21:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Przydatne skrypty
O ile buforowanie nie zostanie przerwane bo z tym to każdy wie jak jest Jakby się człowiek nie starał, to i tak będzie źle.możnaby dodać sprawdzanie, np. w odstępie 3-4 sek. czy plik jeszcze rośnie, ale to chyba mnożenie bytów ponad miarę...
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 13 maja 2010, 22:28
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: Przydatne skrypty
Poza tym nie każdy flv chcę ściągnąć na dysk J
Zastosowałem półśrodek w postaci aliasu 'tmp' - używam go za każdym razem, gdy chcę odpalić mój skrypt
-
- Piegowaty Guziec
- Posty: 1
- Rejestracja: 01 lis 2009, 10:34
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Architektura: x86
pliki youtube w /tmp/
myslalem i niewymysliem
otoz zawsze jak ogladam cos na youtube to filmiki zapisuja mi sie z /tmp/ jako FlashXX cos tam cos tam
napisalem sktypt ktory kopiuje wszystkie te pkiki do gdziestam
#!/bin/bash
cp /tmp/Flash* /home/p/Pulpit/
ale kopiuje wszystkie, nawet te niedokonczone a chcialbym zeby automatycznie kipiowal dopiero jak sie zassa caly a na youtube czerwony pasek dojdzie do konca,
z gory dzieki
ps, zeby jakas roznica byla miedzy plikami niedokonczonymi i skonczonymi, a tu nic, guzik, oba sa take same, nazwa, rowszezenia wogole niema, tylko data i rozmiar sie rozni
a ja jestem cienki w tych sprawach
milego
pomozecie ?
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 115 gości