Przydatne skrypty

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Awatar użytkownika
lenonek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 195
Rejestracja: 12 lut 2007, 21:49
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Przydatne skrypty

Post autor: lenonek »

Czasami potrzebuję połączyć się z netem w innym miejscu za pomocą kabla. Admin filtruje urządzenia po macu, więc potrzebowałem prostego skryptu do przełączania adresu mac mojej karty eth0.
Skrypt wymaga zainstalowanego macchangera

Kod: Zaznacz cały

sudo apt-get install macchanger
Kod skrytpu:

Kod: Zaznacz cały

#!/bin/bash
macchanger -s eth0 | awk '{print $3;}' > mac.txt
curmac=$(cat mac.txt)
mac="00:00:00:00:00:00"
if [ $curmac != $mac ]
 then
  sudo ifconfig eth0 down
  sudo macchanger --mac=00:00:00:00:00:00 eth0
  sudo ifconfig eth0 up
 else
  sudo ifconfig eth0 down
  sudo macchanger --mac=11:11:11:11:11:11 eth0
  sudo ifconfig eth0 up
fi
skrypt przypisany do skrótu pozwala na łatwą i szybką zmianę.
:)
pioruns
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1172
Rejestracja: 19 lis 2006, 21:28
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: Przydatne skrypty

Post autor: pioruns »

Wine-Git for League of Legends i Runes of Magic
Wine Git kompilator i instalator, przygotowany pod grę League Of Legends oraz Runes of Magic. Graficzny skrypt do ściągania, kompilowania i instalowania najnowszej wersji Wine ze źródła Git (codzienne update). Korzysta z systemu popup notify-send oraz okienek zenity (a więc przyda się GNOME). Skrypt sam pobiera zależności niezbędne do zbudowania paczki i pyta się o pozwolenie na zainstalowanie ich. Przy kolejnych uruchomieniach, skrypt aktualizuje Wine z Gita, i kompiluje najnowszą wersję. Dodatkowo instaluje niezbędne komponenty winetricks do gry w League Of Legends oraz aplikuje wymaganego patcha. Skrypt buduje poprawnie Wine na 32 i 64bitowych systemach. Sprawdzony na Ubuntu 10.10 i Debian Testing.

Download (zawsze najnowsza wersja) 5 kB: http://manishe.bshellz.net/wine-git.sh
Dyskusja: viewtopic.php?f=206&t=142988

Notes:
* Z braku czasu nie dokończyłem jeszcze tłumaczyć skryptu na angielski, jeśli ktoś chce mi pomóc, to zapraszam:)
* Gra League of Legends została brutalnie zmodyfikowana przez developerów gry, firmę Riot Games i nie działa już w najnowszym Wine. Musimy czekać na naprawę.
* Runes of Magic po skompilowaniu Wine przy mojego skryptu działa znakomicie, 100% - ale tylko na kartach Nvidia GeForce. Na kartach AMD Radeon stwierdziłem występowanie buga http://bugs.winehq.org/show_bug.cgi?id=17818, który znacznie utrudnia zalogowanie się do gry.
Ostatnio zmieniony 10 lip 2011, 03:14 przez pioruns, łącznie zmieniany 2 razy.
Registered Linux user #454644 ---> https://linuxcounter.net/
outslider
Sędziwy Jeż
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:

Automagiczny zasysacz Ubuntu 11.04:D

Post autor: outslider »

Automagiczny zasysacz Ubuntu 11.04:D

Jeśli nie możecie się doczekać momentu nowego wydania i co chwilę sprawdzacie stronę ubuntu.com - może lepiej włączyć autozasysacz?
Skrypt sprawdza ftp (ftp://ftp.man.szczecin.pl/pub/Linux/ubu ... -amd64.iso) w poszukiwaniu edycji desktop.

Kod: Zaznacz cały

#!/bin/bash


while true; do
    if [ "`links -dump ftp://ftp.man.szczecin.pl/pub/Linux/ubuntu-cd/11.04|grep 11.04-desktop`" != "" ]; then
        echo "jest:D"
        wget ftp://ftp.man.szczecin.pl/pub/Linux/ubuntu-cd/11.04/ubuntu-11.04-desktop-amd64.iso&
        exit
    fi
    echo "Jeszcze nie;p"
    sleep 90
done
Do działania potrzebny jest links.

Oby tylko masowe zasysanie nie spowodowało, jak zwykle, problemu z serwerami:D

Sleep 90 dałem, żeby nie zarzynać serwera niepotrzebnie, a te półtorej minuty mi nie zrobi różnicy.
pioruns
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1172
Rejestracja: 19 lis 2006, 21:28
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: Przydatne skrypty

Post autor: pioruns »

Skrypt sprawdza datę modyfikacji plików ISO na głównej stronie Ubuntu, czekając, aż pojawią się tam pliki z 28 kwietnia. Jest to lepszy sposób, bo na Szczecińskim serwerze to pliki mogą wylądować z opóźnieniem. Jak pliki się pojawią, zobaczymy napis "HURRAY". Do tego skrypt jest tylko w jednej linijce:D

Kod: Zaznacz cały

while /bin/true ; do wget -O- 'http://releases.ubuntu.com/11.04/?C=M;O=D' 2>/dev/null | grep '28-Apr' | wc -l | sed '/^0$/d' | sed -e 's/.*/HURRAY!/' ; sleep 5s; done
Registered Linux user #454644 ---> https://linuxcounter.net/
outslider
Sędziwy Jeż
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:

Re: Przydatne skrypty

Post autor: outslider »

@pioruns
Heh, proste i skuteczne;)

Tymczasem skrypt - akcja Nautilusa do ustawiania bieżącego katalogu jako localhosta Apacha2:

Kod: Zaznacz cały

#!/bin/bash
#Set localhost in open directory
#Ustawia localhost w otwartym katalogu
#Author:  Outslider
#License: Public Domain

place=$1
place="`echo $place|sed 's/%20/\\ /g'|sed 's/\//\\\\\//g'`"

x="`cat /etc/apache2/sites-available/default|grep DocumentRoot|sed 's/\//\\\\\//g'`"

cat /etc/apache2/sites-available/default|sed 's/'"$x"'/'"\tDocumentRoot \"$place\""'/g'> /tmp/change_localhost_temp_file
cat /tmp/change_localhost_temp_file > /etc/apache2/sites-available/default

gksudo apache2ctl restart
Jako parametry w konfiguracji skryptu trzeba podać:

Kod: Zaznacz cały

%d/%b
Swoją drogą zaskoczyła mnie ilość znaków "/" jaką trzeba wsadzić w sedzie, żeby zmienić "/" na "\/" ale inaczej nie działa. Brudne i szybkie.
Awatar użytkownika
michal671
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 174
Rejestracja: 13 gru 2010, 15:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64
Lokalizacja: Ostrów Wielkopolski
Kontakt:

Re: Przydatne skrypty

Post autor: michal671 »

Kod: Zaznacz cały

#!/bin/sh
#
# GNOME Panel Save / Restore
# Writen by PhrankDaChicken
#
# http://ubuntu.online02.com
#
#
# Updated to add restore defaults by jimjimovich
# http://www.starryhope.com
#
#
# Translated into Polish by michal671
# http://www.pcb.orge.pl
#


DIR=$(pwd)
TITLE="Przywracanie paneli"

Main () {
	CHOICE=$(zenity --list --title "$TITLE" --hide-column 1 --text "Co chcesz zrobić?" --column "" --column "" \
"0" "Zapisz ustawienia paneli" \
"1" "Przywróć ustawienia paneli" \
"2" "Przywróć domyślne ustawienia paneli")
	if [ $CHOICE = 0 ]; then
		Zapisz_Panel
	fi
	if [ $CHOICE = 1 ]; then
		Przywroc_Panel
	fi
	if [ $CHOICE = 2 ]; then
		Zresetuj_Panel
	fi	
}

Przywroc_Panel () {
	FILE=$(zenity --title "$TITLE: Otwórz plik" --file-selection --file-filter "*.xml" )
	if [ -n "$FILE" ]; then 
		gconftool-2 --load "$FILE"
		killall gnome-panel
	fi
	Main
}

Zapisz_Panel () {
	FILE=$(zenity --title "$TITLE: Zapisz plik" --file-selection --save --confirm-overwrite --filename "Gnome_Panel.xml" --file-filter "*.xml" )
	if [ -n "$FILE" ]; then 
		EXT=$(echo "$FILE" | grep "xml")
		if [ "$EXT" = "" ]; then
			FILE="$FILE.xml"
		fi
		gconftool-2 --dump /apps/panel > $FILE
		zenity --info --title "$TITLE: Plik zapisany" --text "Plik zapisany jako: \n $FILE"
	fi
	Main
}

Zresetuj_Panel () {
	zenity --question --text="Czy na pewno chcesz przywrócić domyślne panele (górny i dolny)?"
	gconftool-2 --recursive-unset /apps/panel
	rm -rf ~/.gconf/apps/panel
	pkill gnome-panel
	exit
}

Main

# END OF Script
Skrypt zapisujący, przywracający oraz resetujący ustawienia paneli, z graficznym interfejsem (nie jestem autorem tego skryptu, jedynie przetłumaczyłem go na język Polski)

Instrukcja użycia:
Uruchamiamy gedit, wklejamy do niego powyższy skrypt, zapisujemy jako Panel_Restore.sh, klikamy dwukrotnie na zapisany plik i wybieramy Uruchom ;).
Ostatnio zmieniony 12 lip 2011, 23:50 przez michal671, łącznie zmieniany 2 razy.
To by było na tyle :)

http://www.ubuntu-pomoc.org/ ← Porady dla Twojego systemu ;)
Zapraszam na moją stronę! → http://www.pcboard.net.pl/ oraz mój blog http://www.wilku.tk/
Inny OS: Sabayon Linux 7
overprophet
Piegowaty Guziec
Piegowaty Guziec
Posty: 21
Rejestracja: 22 gru 2008, 19:49
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Przydatne skrypty

Post autor: overprophet »

a co tam też się pochwale :D

1 wyświetlanie prognozy pogody z new.meteo.pl (dla krakowa)

Kod: Zaznacz cały

#!/bin/bash

echo Prognoza pogody

if [ "$#" != 0 ]
then

  b='http://new.meteo.pl/um/metco/mgram_pict.php?ntype=0u&fdate='$1'&row=466&col=232&lang=pl'

else

  a=$(date '+%Y%m%d')
  h=$(date '+%H')

  if [ "$h" -gt 18 ]
  then
    h=06
  elif [ "$h" -gt 12 ]
  then
    h=00
  else
    a=$(date --date='day ago' '+%Y%m%d')
    if [ "$h" -gt 06 ]
    then
      h=18
    else
      h=12
    fi
  fi

  b='http://new.meteo.pl/um/metco/mgram_pict.php?ntype=0u&fdate='$a$h'&row=466&col=232&lang=pl'

fi

wget $b -O ~/smiec
eog ~/smiec
rm ~/smiec
echo usunieto plik

2 notatki w konsoli

dodaj_notatke

Kod: Zaznacz cały

#!/bin/bash

echo "$@" >> ~/notatka

cat -n ~/notatka |tail
wyswietl_notatke

Kod: Zaznacz cały

#!/bin/bash

if [ "$1" == czysc ]
then
cat -n ~/notatka|less
#echo  "" > ~/notatka

rm ~/notatka
touch ~/notatka
chmod 400 ~/notatka

echo -e "\n\n\t wyczyszczono plik \n"
else
cat $1 ~/notatka
fi
wywołanie z

Kod: Zaznacz cały

wyswietl_notatke czysc
tworzy nowy pusty plik do notowania(usuwając stary)
natomiast podanie innych parametrów spowoduje przekazanie ich do cat (np -n)
Awatar użytkownika
anemus
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 117
Rejestracja: 19 lut 2007, 20:25
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Lokalizacja: Niebiańskie Piekiełko

Re: Przydatne skrypty

Post autor: anemus »

Ot takie wprawki z nudów. Trochę chaotyczne i niedopracowane, może się zdarzyć parę błędów.
Jak komuś się nie chce pamiętać składni przy tworzeniu zaszyfrowanych archiwów:

Kod: Zaznacz cały

#!/bin/bash
#Szyfrowanie archiwów
if [ "$1" == "-h" ];
	then 
	echo "Składnia:"
	echo "kompres <plik> <akcja> <szyfr> <kompresja>"
	echo "<plik> - nazwa pliku, jeśli konieczne z ścieżką bazwzględną"
	echo "<akcja> - k jeśli chcesz stworzyć archiwum, d jeśli chcesz rozpakować zaszyfrowane archiwum"
	echo "<szyfr> - wybierz rodzaj szyfrowania: d -  des3 lub a - aes-256-ecb"
	echo "<kompresja> - rodzaj kompresji: z w wypadku gzip, j w wypadku bzip2"
	echo "W wypadku nie podania jednego lub więcej parametrów proszę o odpowiedzenie na kolejne zadawane pytania"
else
if [ -a "$1" ];
then
   pliki="$1"
else
  echo "Podaj ścieżkę do pliku lub katalogu:"
        read pliki
fi  
  echo "$pliki"
if [ -n "$2" ];
then
   kompres="$2"
else
    echo "Chcesz kompresować (k) czy dekompresować (d):"
	read kompres
fi
    echo "$kompres"
if [ -n "$3" ];
then
    szyfr="$3"
else
    echo "Podaj rodzaj szyfrowania, d - des3 lub a - aes-256-ecb (domyślnie będzie wybrany aes):"
    read szyfr
fi
    echo "$szyfr"
    echo "Podaj hasło:"
    read -s haslo
case "$szyfr" in
   "d") szyfr="des3" ;;
   "a") szyfr="aes-256-ecb" ;;
   *) szyfr="aes-256-ecb" ;;
esac
if [ -n "$4" ];
   then
	 pack="$4"
	 echo "$pack"
else
         echo "Podaj sposób kompresji, z - gzip lub j - bzip2 (domyślnie gzip) "
         read pack
case "$pack" in
   "z") pack="z" ;;
   "j") pack="j" ;;
   *) pack="z" ;;
esac
         echo "$pack"
fi
if [ "$kompres" == "k" ];
   then
   if [ "$pack" == "z" ];
         then
             koniec="gz"
   else
             koniec="bz2"
   fi
	tar -"$pack"Pcvf - $pliki | openssl $szyfr -salt -k $haslo | dd of=$pliki.$szyfr.$koniec
elif [ "$kompres" == "d" ];
   then
         dd if=$pliki | openssl $szyfr -d -k $haslo | tar -"$pack"Pxvf -
else
   echo "Brak wyboru"
fi
fi
Dodane tylko dwa algorytmy ale nie jest problemem dodać więcej udostępnianych przez openssl...
Ostatnio zmieniony 12 lip 2011, 23:08 przez anemus, łącznie zmieniany 1 raz.
Awatar użytkownika
kapat
Sędziwy Jeż
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:

Re: Przydatne skrypty

Post autor: kapat »

Zainspirowany postem @lenonek wyskrobałem na szybko demona wyłączającego Touchpad po podłączeniu myszy do lapka.

Kod: Zaznacz cały

#! /bin/bash

#################################################################################
#
### Demon wyłączający touchpada po podłączeniu myszy
# Autor: Kapat
# Mail:     kapusciarek[at]gmail.com
#
##### History: ##################################################################
#
## Wersja 0.1 - pon, 11 lip 2011, 01:22:24   
#
################################################################################


# Wydaj polecenie <ls /sys/class/input/mouse*> by sprawdzić port myszki
# u mnie mysz znajdowała sie na inpucie 0.
_MOUSE_=0
_TOUCHPAD_=""

# 1 - TuchPad nie działa
# 0 - TuchPad Działa

MouseCheck()
{
	gconftool-2 --get /desktop/gnome/peripherals/touchpad/touchpad_enabled | grep true >> /dev/null
	case $? in
		'0') _TOUCHPAD_=0 ;;
		'1') _TOUCHPAD_=1 ;;
	esac
	
}
DisableTouchPad() {
	#echo Wyłączenie TouchPada 
	gconftool-2 --set --type boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled false
}

EnableTouchPad() {
	#echo Włączenie TouchPada 
	gconftool-2 --set --type boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled true
}

Run() {
	MouseCheck
	if [ -a /sys/class/input/mouse$_MOUSE_ ]
		then
			if [ $_TOUCHPAD_ -eq 0 ]
				then
					DisableTouchPad
			fi	
		else
			if [ $_TOUCHPAD_ -eq 1 ]
				then 
					EnableTouchPad
			fi	
	fi
}


while [ true ]
do
	Run
	#sleep 10s
done
Pozdrawiam. Kapat

"Informatyk nie czyta, on przetwarza informacje."
Awatar użytkownika
michal671
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 174
Rejestracja: 13 gru 2010, 15:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64
Lokalizacja: Ostrów Wielkopolski
Kontakt:

Re: Przydatne skrypty

Post autor: michal671 »

Prosty skrypcik do obsługi FDD. Po uruchomieniu trzeba podać hasło. Gdy zamkniemy Nautilusa stacja dyskietek automatycznie zostanie odmontowana ;).

Instrukcja użycia:
Uruchamiamy terminal i wpisujemy:

Kod: Zaznacz cały

sudo gedit /usr/bin/floppy
Do otwartego pliku wklejamy:

Kod: Zaznacz cały

#!/bin/bash

# Skrypt do obsługi stacji dyskietek
# Napisany przez michal671 <mkasprzak@ubuntu-pomoc.org>
# http://www.pcb.orge.pl/

echo Skrypt pozwala na użycie dyskietek, wystarczy podać hasło. Stacja zostanie automatycznie odmontowana po zamknięciu Nautilusa
echo Montowanie stacji dyskietek, proszę czekać...
sudo mkdir /media/floppy
sudo mount /dev/fd0 /media/floppy
gksudo nautilus /media/floppy
sudo umount /dev/fd0
echo Obsługa FDD została ukończona
a następnie zapisujemy i zamykamy edytor.
Teraz wpisujemy:

Kod: Zaznacz cały

sudo chmod +x /usr/bin/floppy
Od teraz skrypt możemy uruchomić za pomocą polecenia:

Kod: Zaznacz cały

floppy
Skrót na pulpit
Możemy stworzyć skrót na pulpicie do szybkiego uruchomienia skryptu. Wystarczy uruchomić terminal i wpisać:

Kod: Zaznacz cały

gedit ~/Pulpit/FDD.desktop
a następnie do otwartego pliku wkleić:

Kod: Zaznacz cały

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Icon[pl_PL]=media-floppy
Name[pl_PL]=Stacja dyskietek
Exec=floppy
Name=Stacja dyskietek
Icon=media-floppy
Zapisujemy, zamykamy i gotowe :) !
To by było na tyle :)

http://www.ubuntu-pomoc.org/ ← Porady dla Twojego systemu ;)
Zapraszam na moją stronę! → http://www.pcboard.net.pl/ oraz mój blog http://www.wilku.tk/
Inny OS: Sabayon Linux 7
yanan
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 22 lis 2010, 17:08
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

Re: Przydatne skrypty

Post autor: yanan »

Witam

Napisałem program, dzięki któremu możemy zobaczyć wiele informacji dot. stanu połączenia modemu z BTS/ NodeB. Program prowadzi statystyki połączeń. Projekt jest stale rozwijany, napisałem go pół roku temu jednak dopiero teraz zdecydowałem się na jego publikację...

Adres projektu:

citrusmodem
Awatar użytkownika
daniel10a
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 200
Rejestracja: 12 sty 2008, 22:20
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Przydatne skrypty

Post autor: daniel10a »

Jeśli ktoś słucha radia przez internet to może zrobić to w taki sposób:
Do pliku .bashrc dopisać:

Kod: Zaznacz cały

#-Radio-----------------------------------------------------------------------------------------------|
    alias radio_xxl='screen -S mplayer -md mplayer http://dslone.xxl-radio.de:8000'
    alias radio_gdjb='screen -S mplayer -md mplayer  http://www.di.fm/mp3/trance.pls'
    alias radio_party='screen -S mplayer -md mplayer http://91.121.127.22:8000'
    alias radio_rewers='screen -S mplayer -md mplayer http://r1.vj.pl:8050/'
    alias czworka='screen -S mplayer -md mplayer mms://stream.polskieradio.pl/program4'
    alias vocaltrance='screen -S mplayer -md mplayer http://188.165.21.29:3500'
    alias radio_off='killall mplayer'
#
Awatar użytkownika
knezmej
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 sty 2010, 00:45
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: Unity
Architektura: x86_64

symbole ( emblems ) i notatki ( annotations ) w nautilus 3 - oneiric ocelot 11.10

Post autor: knezmej »

Nautilus miał przewagę -oczywiście dla mnie- nad dolphinem dzięki:
  • symbolom (emblems) i notatkom (annotations),
    a także możliwości ukrywania głównego paska narzędziowego i paska stanu skrótem klawiszowym z nautilus-elementary,
    zmiany tła na ciemniejsze.
Użytkownicy oneiric ocelot wiedzą, że te funkcje zostały zarzucone :-( w nowym nautilusie 3. Downgrade nautilusa 3->2 jest niezalecany z powodu różnic między GTK+3 a GTK+2
(nie próbowałem; informacje z http://askubuntu.com/questions/64375/ho ... f-nautilus).
Piszę z nadzieją, że potwierdzam tym użyteczność tych funkcjonalności oraz wywieram konstruktywną motywację na innych. Może ktoś zna dobre rozwiązania?

Wychodząc swoim potrzebom naprzeciw, napisałem sobie wątpliwej jakości skrypty, które dają mi dostęp i pozwalają na edycję emblematów i adnotacji.
Oto owe skrypty (niech żyje KISS, brzytwa Ockhama):

ADNOTACJE

skrypt dla adnotacji uruchamiany z menu skryptów (~/.gnome2/nautilus-scripts)

Kod: Zaznacz cały

#!/bin/bash
for arg do
if i=`gvfs-info "$arg" | grep -A 1000000 metadata::annotation: | sed s/\metadata::annotation:\// | grep -v metadata:: | zenity  --text-info --editable  --ok-label="V" --cancel-label="X" --checkbox="zmień"`; then
`gvfs-set-attribute -t string "$arg" metadata::annotation "$i"`
else
exit
fi
done
skrypt dla adnotacji uruchamiany innymi sposobami

Kod: Zaznacz cały

#!/bin/bash
if zenity --question --text="adnotacja do:" --ok-label="plik" --cancel-label="katalog" ; then
arg=`zenity --file-selection`
else
arg=`zenity --file-selection --directory`
fi
if i=`gvfs-info "$arg" | grep -A 1000000 metadata::annotation: | sed s/\metadata::annotation:\// | grep -v metadata:: | zenity  --text-info --editable  --ok-label="V" --cancel-label="X" --checkbox="zmień"`; then
`gvfs-set-attribute -t string "$arg" metadata::annotation "$i"`
else
exit
fi
EMBLEMATY
UWAGA wymaga pliku .nautilus_emblematy_lista z listą emblematów wg wzoru:nowa_linia spacja nazwa_emblematu;
listę z domyślnymi emblematami możesz stworzyć wpisując w terminalu:

Kod: Zaznacz cały

echo -e " art\n camera\n cool\n danger\n default\n desktop\n development\n documents\n downloads\n draft\n favorite\n generic\n important\n mail\n marketing\n money\n multimedia\n new\n ohno\n OK\n package\n people\n personal\n photos\n pictures\n plan\n presentation\n readonly\n sales\n sound\n synchronizing\n system\n ubuntuone-synchronized\n ubuntuone-unsynchronized\n ubuntuone\n updating\n unreadable\n urgent\n videos\n web" > ~/.nautilus_emblematy_lista
skrypt dla emblematów uruchamiany z menu skryptów (~/.gnome2/nautilus-scripts)

Kod: Zaznacz cały

#!/bin/bash
for arg do
i=`gvfs-info "$arg" | grep metadata::emblems: | sed s/\metadata::emblems:\// | tr -d []" " | sed s/,/"\n"/`
if [ "$i" = "" ]; then
c=`cat ~/.nautilus_emblematy_lista | sed s/" "/"FALSE\n"/ | zenity --list --checklist --column "1" --column "2" --multiple --hide-header --separator=", "  --ok-label="V" --cancel-label="X"`
else
a=`cat ~/.nautilus_emblematy_lista | grep -F -v -w "$i" | sed s/" "/"FALSE\n"/`
b=`cat ~/.nautilus_emblematy_lista | grep -F -w "$i" | sed s/" "/"TRUE\n"/ | grep -F -w -B 1 "$i" | sed s/FALSE/TRUE/`
c=`echo -e "$b\n$a" | zenity --list --checklist --column ? --column ! --multiple --hide-header --separator=", " --checkbox="zmień"`
fi
`gvfs-set-attribute -t stringv "$arg" metadata::emblems "$c"`
done
skrypt dla emblematów uruchamiany innymi sposobami

Kod: Zaznacz cały

#!/bin/bash
if zenity --question --text="emblemat do:" --ok-label="plik" --cancel-label="katalog" ; then
arg=`zenity --file-selection`
else
arg=`zenity --file-selection --directory`
fi
i=`gvfs-info "$arg" | grep metadata::emblems: | sed s/\metadata::emblems:\// | tr -d []" " | sed s/,/"\n"/`
if [ "$i" = "" ]; then
c=`cat ~/.nautilus_emblematy_lista | sed s/" "/"FALSE\n"/ | zenity --list --checklist --column "1" --column "2" --multiple --hide-header --separator=", "  --ok-label="V" --cancel-label="X"`
else
a=`cat ~/.nautilus_emblematy_lista | grep -F -v -w "$i" | sed s/" "/"FALSE\n"/`
b=`cat ~/.nautilus_emblematy_lista | grep -F -w "$i" | sed s/" "/"TRUE\n"/ | grep -F -w -B 1 "$i" | sed s/FALSE/TRUE/`
c=`echo -e "$b\n$a" | zenity --list --checklist --column ? --column ! --multiple --hide-header --separator=", " --checkbox="zmień"`
fi
`gvfs-set-attribute -t stringv "$arg" metadata::emblems "$c"`
UWAGA aby pojawiły/zniknęły znaczniki emblematów, adnotacji na ikonach trzeba odświeżyć (F5) okno nautilusa
-nie wiem jak zrobić to sprawnie w skrypcie :-( mapowanie:xsendkeycode 71 1; xsendkeycode 71 0 nie działa należycie, ?może wykorzystać wmctrl?

Niech wszyscy czują się wolni do korzystania, ulepszania ich, bo tworząc je widziałem, że są słabe.
Jak będę miał czas to dodam funkcję dodawania nowych-dodatkowych emblematów i poprawię jeszcze skrypty -zwłaszcza nautilus_emblematy-.
Awatar użytkownika
kondziu jah
Zakręcona Traszka
Zakręcona Traszka
Posty: 621
Rejestracja: 27 wrz 2010, 19:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86_64
Lokalizacja: Wrocław
Kontakt:

Re: Przydatne skrypty

Post autor: kondziu jah »

Skrypt sprawdza czy jest dostępna aktualizacja kernela lub xservera (można wyłączyć odpowiednią opcją), po czym porównuje zainstalowaną wersję sterownika z dostępną na serwerze ftp nvidii. Na podstawie porównania proponuje zapis w wybrane miejsce (jedno z prefiniowanych lub ręcznie wpisane). Działa na systemach linux 32 bit i 64 bit. Skrypt wywołuje się poleceniem "nvidia-downloader" (opcjonalnie: z opcjami).

Aby skrypt automatycznie pobierał nowy sterownik (o ile istnieje nowszy niż mamy zainstalowany) należy dodać go do autostartu (ewentualnie crona lub ata), koniecznie z opcją "-p ścieżka".

wersja 0.3.2:

Kod: Zaznacz cały

#!/bin/bash
# nvidia-downloader -> ułatwia pobieranie sterowników NVIDIA dla systemów 
# GNU/Linux opartych o architekturę i386 (i486, i586,  ...) oraz amd64.
#
# kondziu@elektroda.net
# Public domain
# Initial version: November, 2011
# Revised: November 2011

VERSION=0.3.2

function HELP {
	clear
	echo "nvidia-downloader -> ułatwia pobieranie sterowników NVIDIA dla systemów 
GNU/Linux opartych o architekturę i386 (i486, i586,  ...) oraz amd64.


Składnia: 	polecenie [opcje] [-p ścieżka]
		nvidia-downloader -p /tmp
		nvidia-downloader -qn
		nvidia-downloader -qp ./nv/


Opcje:

	-f		Bezwzględne pobranie, nawet jeśli nie konieczne.
	
	-h, --help	Wyświetla tę listę.
	
	-n		Nie sprawdza dostępności aktualizacji serwera X oraz
			   kernela, więc nie wymaga uprawnień roota.

	-p ścieżka	Pobiera do podanej lokalizacji. Przyjmuje zarówno
			   ścieżki względne jak i bezwzględne. Tworzy katalog
			   docelowy jeśli nie istnieje.

	-q		Tryb minimalizujący ilość wyświetlanych informacji.

	-v, --version	Wyświetla wersję programu.
	"
	exit
}

if [ "$1" = "--help" ]
then
	HELP
elif [ "$1" = "--version" ]
then
	echo $VERSION
	exit
fi

if [ `uname -s` != "Linux" ]
then
	echo -e "Skrypt przeznaczony jest na dla systemów operacyjnych GNU/Linux. \nPrzerwano."
	exit
fi

if [ `dpkg -l|grep -w apt -m 1|awk '{print $2}'` != "apt" ]
then
	echo -e "Odświeżenie listy pakietów działa tylko na systemach Debianopodobnych. \nPrzerwano."
	exit
fi

if [ `dpkg --print-architecture` = "amd64" ]
then
	ARCH=x86_64
elif [ `dpkg --print-architecture` = "i386" ]
then
	ARCH=x86
else
	echo -e "Nie rozpoznano architektury. \nPrzerwano."
	exit
fi

CHECK=1
QUIET=0
FORCE=0

while getopts fhnp:qv OPTION
do

	case $OPTION in
	f)
		FORCE=1;;
	h)
		HELP;;
	n)
		CHECK=0;;
	p)
		CHOOSE=$OPTARG;;
	q)
		QUIET=1;;
	v)
		echo $VERSION
		exit;;
	"?")
		echo -e "Użycie: nvidia-downloader [-fnq] [-p ścieżka] \nPomoc: nvidia-downloader --help"
		exit;;
	esac

done

CONNECT=$(ping -c 1 www.google.com|grep "100% packet loss")

if [ -n "$CONNECT" ]
then
	echo -e "Brak połączenia z Internetem. \nPrzerwano."
else

	if [ "$CHECK" = "1" ]
	then
	
		if [ "$QUIET" = "0" ]
		then
			echo "Odświeżanie listy pakietów..."
		fi
		
		sudo apt-get -qq update	
		
		X=$(sudo apt-get dist-upgrade -s | grep xserver)
		KERNEL=$(sudo apt-get dist-upgrade -s | grep linux)
	
		if [ "$QUIET" = "0" ]
		then
	
			if [ -n "$X" ] || [ -n "$KERNEL" ]
			then
				echo "Dostępna jest aktualizacja serwera X lub jądra systemu. Po aktualizacji systemu może być konieczna ponowna instalacja sterownika."
			else
				echo "Instalacja sterownika nie jest konieczna."
			fi
		
		fi
		
	fi

	rm -f /tmp/latest.txt

	if [ "$QUIET" = "0" ]
	then
		echo -e "\nPobieranie informacji o zainstalowanym sterowniku..."
	fi

	CURRENT=$(cat /etc/X11/xorg.conf|grep version|awk '{print $4}')

	if [ "$QUIET" = "0" ]
	then
	
		if [ -z "$CURRENT" ]
		then
			echo "Sterownik NVIDIA nie jest zainstalowany."
		else
			echo "Wykryto wersję $CURRENT."
		fi
		
		echo -e "\nPobieranie informacji o dostępnej wersji strownika..."
		
	fi

	wget -q ftp://download.nvidia.com/XFree86/Linux-$ARCH/latest.txt -P /tmp
	
	if [ "$QUIET" = "0" ]
	then
		echo "Przetwarzanie informacji o dostępnym sterowniku..."
	fi

	LATEST=$(cat /tmp/latest.txt|awk '{print $1}')
	DOWNLOAD=$(cat /tmp/latest.txt|awk '{print $2}')
	FILE=${DOWNLOAD##*/}

	if [ "$LATEST" = "$CURRENT" ]
	then 
		echo "Brak nowszej wersji do pobrania."
		
		if [ "$FORCE" = "0" ]
		then
			exit
		fi
		
	else
	
		if [ "$QUIET" = "0" ]
		then
			echo "Znaleziono $LATEST"
		fi
		
	fi

	if [ -z "$CHOOSE" ]
	then
		echo -e "\nAby pobrać, wpisz ścieżkę do katalogu lub wybierz jedną z opcji:
      1. /tmp
      2. $HOME
      3. Nie pobieraj (domyślnie)."
		read CHOOSE
	fi

	case "$CHOOSE" in
	1)
		CHOOSE=/tmp;;
	2)
		CHOOSE=$HOME;;
	3)
		rm -f /tmp/latest.txt
		exit;;
	"")
		rm -f /tmp/latest.txt
		exit;;
	esac

	if [ ! -d "$CHOOSE" ]
	then
		mkdir "$CHOOSE"
	fi

	if [ "$QUIET" = "0" ]
	then
		echo -e "\nZapisywanie pliku do $CHOOSE..."
		wget -c ftp://download.nvidia.com/XFree86/Linux-$ARCH/$DOWNLOAD -P $CHOOSE
	else
		wget -c -q ftp://download.nvidia.com/XFree86/Linux-$ARCH/$DOWNLOAD -P $CHOOSE
	fi

	if [ "$QUIET" = "0" ]
	then
		echo "Nadawanie atrybutu wykonywalności..."
	fi

	chmod +x $CHOOSE/$FILE
	echo "Zakończono."
	rm -f /tmp/latest.txt
fi
Skrypt pobierający najnowszy sterownik nvidia -> http://adf.ly/Y8HRT
http://adf.ly/Y8HMh -> zaproszenie do dropboksa -> 500MB gratis.
http://adf.ly/?id=5385762 -> zarabiaj na linkowaniu
http://adf.ly/YIOh1 -> UIQ3 is not dead!
Awatar użytkownika
soulreaver1
Wytworny Kaczor
Wytworny Kaczor
Posty: 409
Rejestracja: 13 mar 2009, 10:03
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64
Lokalizacja: 127.0.0.1

Re: Przydatne skrypty

Post autor: soulreaver1 »

Skrypt do synchronizacji, normalizacji głośności oraz zmiany tagów plików mp3.

Możliwości:

- Tagging mp3 - Ustawia Wartosć "Album" na nazwę katalogu w którym obecnie znajduje się plik, dla wszystkich plików w podanej ścieżce. Funkcja ta jest przydatna jeśli masz posortowane utwory w folderach, a twój przenośny odtwarzacz nie potrafi sortować muzyki za pomocą folderów.

- Normalizacja głośności - Normalizuje głośność wszystkich plików w podanej ścieżce do podanej wartości w [dB].

- Synchroniznacja - Synchronizuje rekursywnie podany folder z inną lokalizacją np. przenośny odtwarzacz, telefon.

- Wszystko razem - Synchronizuje, normalizuje głośność, ustawia tagi za jednym razem.


Skrypt do działania wymaga obecności w systemie programów: "mp3gain" oraz "id3v2"

Kod: Zaznacz cały

sudo apt-get install mp3gain id3v2
Jeśli ich nie będzie wyświetli komunikat o brakujących pakietach.

Kod: Zaznacz cały

#!/bin/bash

fstart()		{
echo ""
echo "Nacisnij \"Y\" aby rozpoczac. \n Wcisniecie innego klawisza spowoduje zakonczenie programu."
read START
	if [ $START = "y" ]; then
		"$1" "$2" "$3" "$4"
	fi
	}

ffiles_tag()    {

find "$1" -name "*.mp3" | while read -r FILE
do
   echo "Processing "$FILE" file..."
   MP3NME1=`dirname "$FILE"`
   MP3NME=`basename "$MP3NME1"`
   FILENME=`basename "$FILE"`
   id3v2 -C "$FILE"
   id3v2 "$FILE" -A "$MP3NME" -c "mp3 script v.2.0 ---Unix" # -t "${FILENME%.*}"
done
$2
$3
}

fdecide()		{	
## Główny case sterujący. Wywołanie funkcji docelowych odbywa się poprzez funkcję fstart.		
echo "1) Mp3 tagging"		
echo "2) Synchronizacja"
echo "3) Normalizacja głośności"
echo "4) Wszystko!"
echo "5) Nic, mam dość. Wyłącz się!"
read CAS1
case $CAS1 in
    1) echo "Podaj scieżkę bezwzględną do plikow mp3 :"
		read DEST
		fstart "ffiles_tag" "$DEST" "fdone" "fdecide" ;;
    2) echo "Podaj źródło :"
		read SOURCE
		echo "Podaj miejsce docelowe :"
		read DEST
		fstart "fsync" "$SOURCE" "$DEST" "fdone" "fdecide";;
    3) echo "Podaj scieżkę bezwzględną do plikow mp3 :" 
		read DEST
		echo "Podaj docelową głośność (dB) :"
		read GAIN
		fstart "fgaining" "$DEST" "$GAIN" "fdone" "fdecide";;
    4) echo "Podaj źródło :"
		read SOURCE
		echo "Podaj miejsce docelowe :"
		read DEST
		echo "Podaj docelową głośność (dB) :"
		read GAIN
		fsync "$SOURCE" "$DEST"
		fgaining "$DEST" "$GAIN" 
		ffiles_tag "$DEST" "fdone" "fdecide" ;;
    5) clear; exit
esac 		
}

fwelcome()	{
	echo " \n --------------------------------- mp3 script v.2.0  \n \n Witaj. Co mam zrobic ? \n \n"	
}	

fdone()		{
	clear
	echo "Zrobione. Co dalej? \n \n"	
}

fsync()		{
	echo "$1" "$2"
	rsync -vtr --progress --stats --ignore-existing "$1" "$2"
	$3
	$4
}

fgaining()		{
	find "$1" -name "*.mp3" -exec mp3gain -m "$2"  {} \;
	$3
	$4
}

fifinstalled()		{
BBB=`which $1 | wc -w`
if [ $BBB -eq 0 ]; then
	echo "---> Błąd! Brak programu \"$1\". Zainstaluj brakujący program i uruchom skrypt ponownie. \n"
	ERR=`expr $ERR + 1`
fi
}

fiferr1()		{
## Jeżeli którykolwiek z spr. programów nie został znaleziony przez funkcję "fifinstalled" zostanie wyś. $ERR.
## $ERR jest ustawiana w funkcji "fifinstalled".
fifinstalled "mp3gain"
fifinstalled "id3v2"
fifinstalled "rsync" 
if [ $ERR > 0 ] ; then
	echo $ERR
else
	fwelcome
	fdecide
fi
}

fiferr1		## tutaj startujemy
Działanie sprawdzone na Linux Mint 12 x64 oraz FreeBSD 8.2 x86.

-- 28 maja 2012 08:34 --

Zamiana kolejności kart dźwiękowych w systemie (uruchamiać z prawami roota):

Kod: Zaznacz cały

#!/bin/bash
VAR1=`cat /proc/asound/modules | cut -d' ' -f3 | head -n 1`
VAR2=`cat /proc/asound/modules | cut -d' ' -f3 | tail -n 1`
echo "# Zamiana kolejności kart dźwiękowych \n options $VAR2 index=0 \n options $VAR1 index=1" >> /etc/modprobe.d/alsa-base.conf && reboot
Awatar użytkownika
Nolt
Sędziwy Jeż
Sędziwy Jeż
Posty: 91
Rejestracja: 03 lut 2006, 01:32
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Re: Przydatne skrypty

Post autor: Nolt »

Komenda kosz i upgrade :)

kosz nazwa_plik - przenosi do kosza
upgrade - aktualizuje repo i wykonuje dist-upgrade -y

Kod dodajemy do /home/nazwa_uzytkownika/.bash_aliases jeśli pliku nie mamy to go tworzymy
touch ~/.bash_aliases

Kod: Zaznacz cały

alias upgrade='sudo apt-get update && sudo apt-get dist-upgrade -y'
#kosz
alias kosz="gvfs-trash"
kjur
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 120
Rejestracja: 18 lut 2007, 03:51
Płeć: Mężczyzna
Wersja Ubuntu: 22.10
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Przydatne skrypty

Post autor: kjur »

Jak na serwerze ftp kasowac stare pliki?
Mam hosting i moge tam uruchamiac skrypty php cronem. Moj skrypt wygladal jak ponizej, ale po 24 godzinach dostalem automatyczny email od admina, ze skrypt zostal wylaczony, bo zabieral za duzo zasobow serwera. Czy to przez bledy w skrypcie czy przez to, ze katalogi do sprawdzenia mialy po kilka tysiecy plikow?

Kod: Zaznacz cały

<?php
$path = '/www/ipcams/cam239/';
if ($handle = opendir($path)) {
    while (false !== ($file = readdir($handle))) { 
        $filelastmodified = filemtime($path . $file);
        //24 hours in a day * 3600 seconds per hour * 7 days -> delete files older than 7 days
        if((time()-$filelastmodified) > 7*24*3600 && is_file($file))
        {
           unlink($path . $file);
        }
    }
    closedir($handle); 
}
?>
Ktos wie jak to zdalnie robic? Byc moze tez uruchamiac inne skrypty (perl / bash), wiec jakby ktos mial jakies pomysly to prosze o pomoc.

Probowalem tez cos takiego:

Kod: Zaznacz cały

#!/bin/sh
find /www/ipcams/cam239 -mtime +7 -exec rm {} \;
i to samo - skrypt usuniety z cron'a, bo zjadal za bardzo zasoby...

Uzywam cos podobnego jak powyzej przy robieniu lokalnych backupow i dziala sobie ok na zwyklym destopie w tle, bez nadmiernego zjadania zasobow, tylko tam jest max 30 plikow do wylistowania, a nie kilkaset czy kilka tysiecy....


EDIT:

Zmienilem na:

Kod: Zaznacz cały

#!/bin/sh
find ~/www/ipcams/cam239/ -type f -mtime +7 -print0 | xargs -0 -r rm -f \;
i dziala :)

Poczytalem troche i xargs jest duzo bardziej wydajniejsze niz exec.
Awatar użytkownika
darek334
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 118
Rejestracja: 17 mar 2015, 14:17
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64

Re: Przydatne skrypty

Post autor: darek334 »

Skrypt raczej ok , pewnie masz po >1000 plików do kasacji i dlatego zamula, ustaw na 10 godzin
kjur
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 120
Rejestracja: 18 lut 2007, 03:51
Płeć: Mężczyzna
Wersja Ubuntu: 22.10
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Przydatne skrypty

Post autor: kjur »

@ darek334: Juz dziala. Zmienilem exec na xargs i smiga ladnie.
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4674
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: Przydatne skrypty

Post autor: jacekalex »

kjur pisze:Jak na serwerze ftp kasowac stare pliki?

Kod: Zaznacz cały

<?php
$path = '/www/ipcams/cam239/';
if ($handle = opendir($path)) {
    while (false !== ($file = readdir($handle))) { 
        $filelastmodified = filemtime($path . $file);
        //24 hours in a day * 3600 seconds per hour * 7 days -> delete files older than 7 days
        if((time()-$filelastmodified) > 7*24*3600 && is_file($file))
        {
           unlink($path . $file);
        }
    }
    closedir($handle); 
}
?>
To się przyda, tylko warto byłoby w pętli umieścić polecenie, żeby między usuwaniem kolejnych plików poczekał sobie np 0,01 albo 0,1sekundy, wtedy obciążenie będzie minimalne.
Oczywiście parametry trzeba dopasować do konkretnego przypadku.

Można też manipulować plikami bezpośrednio przez FTP, bez odpalania skryptów na serwerze, tu masz przykład w Perlu:
https://forum.dug.net.pl/viewtopic.php?pid=98591#p98591

Pozdro
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości