Jump to content
Guest amdfanatyk

Projekty Userow

Recommended Posts

Guest amdfanatyk

proponuje, zeby dac ten topic jako przyklejony, bedzie to dobre miejsce, aby pochwalic sie swoimi projektami; oczywiscie malo skromnie zaczne od siebie :P

 

FALF Player

odtwarzacz muzyki dla KDE; glownym impulsem do zalozenia projektu stala sie chec posiadania jednoczesnie wielu playlist, jak to ma miejsce w programie foobar, dodatkowo pomocna okazala sie moja nienawisc do amaroka jako programu upstrzonego wieloma niepotrzebnymi opcjami, zajmujacego 25MiB ramu, rozwijanego przez nadetych bufonow, ktorzy mysla, ze stali sie bogami (moze do konca nie jest to ich wina lecz tych, ktorzy tu i owdzie wypisuja bzdury); tak to jest, ze jak w projekcie nie ma juz co rozwijac, to zamiast go zamkac i zajac sie czyms innym, dorabia sie jakies pierdoly.

 

IPB ImageIPB Image

 

FALF Player na kde-apps.org.

Share this post


Link to post
Share on other sites

Zrobiłem pierwszy przydatny i niezawodny skrypt :D Niestety już mamy takie coś w fedorze <_<

 

Bash+Zenity i mamy demona, który sprawdza i instaluje aktualizacje

--> ikona w schowku gdy są dostępne updaty

--> zwykły user może zaznaczyć co zaktualizować

--> ikonka "w toku"

--> powiadomienie o zakończeniu

- tu: http://wiki.fedora.pl/wiki/Zenity#Demon_do...lizacji_systemu

- i tu:http://wiki.fedora.pl/wiki/U%C5%BCytkownik...ole/yum-zupdate

 

ps. szkoda, że tak mało osób (żeby nie powiedzieć prawie nikt) nie udostępnia swoich skryptów/programów. Come on! Nawet jak są wadliwe, dziwne, mało przydatne dla ogółu to fajnie jest zobaczyć cudze rozwiązania.

 

 

[EDIT]

W skrypcie był błąd z wyświetlaniem (i tylko wyświetlaniem), bo pomyliłem wersje do wklejenia. Teraz jest ok.

Share this post


Link to post
Share on other sites

Oczywiście żadnemu z nas to nigdy nie będzie potrzebne, bo przecież korzystamy z jabber i tylko jabber ;) Ale jeśli komuś by się spodobało- feel free

Kowerter Jabber -> GG

 

Co umie:

*Przetwarza pliki Pidgina i PSI (chyba nawet obie wersje umie ;) ) oraz zwraca plik kontaktów gg

*Zamienia polskie znaczki na odpowiedniki łacińskie (ą->a, etc.)

* W większości przypadków działa.

* !! !! Robaczki gratis !! !! ;)

 

Co nie umie:

*Nie łączy się z serwerem Jabbera i nie pobiera rostera

*Nie obsługuje grup

*Nie przygotowuje obiadu i nie prasuje koszuli

 

Share this post


Link to post
Share on other sites

Witam,

 

Ucząc się programowania staram się pisać coś co się może przydać. W tym przypadku napisałem nakładkę gui w javie na polecenie shred - bezpieczne usuwanie plików z wielokrotnym nadpisywaniem miejsca pliku.

 

Opis programu:

- Umożliwia usuwanie pojedynczego pliku jak i całej zawartości folderu - nie usuwa folderów.

- Ilość nadpisań jest standardowo ustawiona na 20. W każdy momencie można wpisać własną liczbę.

- Program do przedstawiania postępu swojego działania, uruchamia zewnętrzny terminal - xterm (czasami trzeba go zainstalować), który po zakończeniu działania automatycznie się zamyka.

 

Jako, że jest program napisany jest w javie trzeba mieć zainstalowaną w systemie obsługę javy.

 

Screenshot: http://zapodaj.net/9f3abedd58ee.png.html

Program: Pobierz najnowszą wersję programu

Share this post


Link to post
Share on other sites

Klasyczna gierka Kółko i Krzyżyk z klimatem Rockmana (J) lub jak kto woli Megamana (reszta świata)

Do uruchomienia zalecam konsolę Nintendo DS jako, że najlepiej odwzorowuje dźwięki jednakże potwierdzić mogę działanie na emulatorach:

no$gba (uruchomić przez wine32)

Desmume (repozytorium rpmfusion-free-updates)

iDeaS (trzeba znaleźć, bowiem strona domowa się zmieniła i gdzieś projekt posiało)

 

Do gry potrzebny nam będzie tylko stylus (DS) lub myszka (emulatory)

Animowane "elektrody" zmieniają muzykę, zaś przyciski RESET po zakończonej rundzie resetują planszę jednakże wynik zostaje zapamiętany na górnym ekranie

 

Oświadczam również, że oryginalnymi twórcami Rockmana/Megamana jest CAPCOM i nie czerpę żadnych korzyści materialnych z rzeczonego projektu, który ma cel typowo fanowski

 

Muzykę pobrano z mod-archive prócz 3 ostatnich utworów, które zostały dostarczone przez admina forum Rocknarok - CielSara, podziękowania w jego stronę

 

Plik można pobrać z:

Rapidshare - http://rapidshare.com/files/343602458/Tic-Tac-Toe.nds

Sendspace - http://www.sendspace.com/file/zv8do5

 

Jako, że oba te serwisy pomimo posiadania przeze mnie konta potrafią usunąć nieaktywne linki, z góry proszę (i dziękuję ;) ) jeśli ktoś zauważy niedziałający link proszę o PM, reaktywuję go najszybciej jak się da...ewentualnie znajdę jakieś trzecie miejsce na takie pliki

 

Projekt przygotowany przez iSubaru czyli mnie (na scenie DS taki mam nick)

Share this post


Link to post
Share on other sites

Plik rozpakowuje, zmienia nazwy dla zdefiniowanych w zmiennych tablicowych plikach *.zip. Tworzy katalog rozpakowane, na podstawie nazwy pliku tworzy podkatalog do którego rozpakowuje zbiór. I tak robi w pętli dla każdego istniejącego pliku. Na zakończenie wchodzi do każdego z podkatalogów i zmienia nazwe wg formatu: d|e(nazwa_zbioru_bez_rozszerzenia).

 

 

#!/bin/bash
# 
# 
# 
# Skrypt rozpakowuje i nazywa exe dedykowane dla ctree 6,7,9.
# 
# 
# morg 2k10
# 
# 
# 

glowny=$PWD


if [[ -d rozpakowane ]]; then
mv -f rozpakowane/* rozpakowane.old/
else
mkdir rozpakowane
fi


for plik in `ls *.zip  |grep -v plik `; do 
unzip -n $plik -d rozpakowane/`echo $plik |cut -d'.' -f1 ` 
done

cd rozpakowane


for exe in ` ls `; do

tutaj=$PWD

tablica[1]=`echo $exe | sed  -n  "/c45/p"`  
tablica[2]=`echo $exe | sed  -n  "/i45/p"`
tablica[3]=`echo $exe | sed  -n  "/j45/p"`
tablica[4]=`echo $exe | sed  -n  "/x45/p"`
tablica[5]=`echo $exe | sed  -n  "/l45/p"`
tablica[6]=`echo $exe | sed  -n  "/k45/p"`

cd $exe

if [[ "`pwd | awk 'BEGIN { FS="/"} {print $NF}'`" = "`echo ${tablica[@]} | sed  -n  "/l45/p"`" ]]

then 

if
[ -f dl25p ]
then
mv dl25p d$exe
fi

if
[ -f dl25p_srv ]
then
mv dl25p_srv d"$exe"_srv
fi

if
[ -f el25p ]
then
mv el25p e$exe
fi

fi

cd ../


cd $exe

if [[ "`pwd | awk 'BEGIN { FS="/"} {print $NF}'`" = "`echo ${tablica[@]} | sed  -n  "/c45/p"`" ]]

then 

if
[ -f dc25p ]
then
mv dc25p d$exe
fi

if
[ -f dc25p_srv ]
then
mv dc25p_srv d"$exe"_srv
fi

if
[ -f ec25p ]
then
mv ec25p e$exe
fi

fi

cd ../

cd $exe

		if [[ "`pwd | awk 'BEGIN { FS="/"} {print $NF}'`" = "`echo ${tablica[@]} | sed  -n  "/i45/p"`" ]]

then

if
[ -f di25p ]
then
mv di25p d$exe
fi

if
[ -f di25p_srv ]
then
mv di25p_srv d"$exe"_srv
fi

if
[ -f ei25p ]
then
mv ei25p e$exe
fi

fi

cd ../

cd $exe

	   if [[ "`pwd | awk 'BEGIN { FS="/"} {print $NF}'`" = "`echo ${tablica[@]} | sed  -n  "/x45/p"`" ]]
then

if
[ -f dc25p ]
then
mv dc25p dc$exe
fi

if
[ -f dc25p_srv ]
then
mv dc25p_srv dc"$exe"_srv
fi

if
[ -f ec25p ]
then
mv ec25p ec$exe
fi

fi

cd ../

cd $exe

	   if [[ "`pwd | awk 'BEGIN { FS="/"} {print $NF}'`" = "`echo ${tablica[@]} | sed  -n  "/j45/p"`" ]]

then

if
[ -f di25p ]
then
mv di25p d$exe
fi

if
[ -f di25p_srv ]
then
mv di25p_srv d"$exe"_srv
fi

if
[ -f ei25p ]
then
mv ei25p e$exe
fi

fi


cd ../


cd $exe

	   if [[ "`pwd | awk 'BEGIN { FS="/"} {print $NF}'`" = "`echo ${tablica[@]} | sed  -n  "/k45/p"`" ]]

then

if
[ -f di25p ]
then
mv di25p d$exe
fi

if
[ -f di25p_srv ]
then
mv di25p_srv d"$exe"_srv
fi

if
[ -f ei25p ]
then
mv ei25p e$exe
fi

fi


cd ../

done

cd $glowny

if [[ ! -d arch ]]; then
mkdir arch
mv -f *.zip arch

else 

mv -f *.zip arch

fi


exit

Share this post


Link to post
Share on other sites

@morg

Tak sobie przejrzałem Twój skrypt żeby zobaczyć co on robi i wydaje mi się, że strasznie nadłożyłeś drogi. Te wszystkie warunki w środku pętli for robią ostatecznie to samo i można to chyba skrócić do postaci:

for exe in ` ls `; do
    tutaj=$PWD
    tablica[1]=`echo $exe | sed  -n  "/c45/p"`
    tablica[2]=`echo $exe | sed  -n  "/i45/p"`
    tablica[3]=`echo $exe | sed  -n  "/j45/p"`
    tablica[4]=`echo $exe | sed  -n  "/x45/p"`
    tablica[5]=`echo $exe | sed  -n  "/l45/p"`
    tablica[6]=`echo $exe | sed  -n  "/k45/p"`

    cd $exe

    [ -f dl25p ] && mv dl25p d$exe
    [ -f dl25p_srv ] && mv dl25p_srv d"$exe"_srv
    [ -f el25p ] && mv el25p e$exe

    cd ../
done

ewentualnie dać jeden warunek, że to ma być jeden z tych 6 folderów.

* tablice w bash mają indeks od 0 nie od 1

* zmień:

$ ls *.zip

to zachowuje się dosyć dziwacznie na Fedorze, więc jeśli chcesz filtrować wynik, wyświetl listę plików w pionie (jedynka nie 'el'):

$ ls -1 *.zip

* nie wiem jak w starych unix'ach, ale w linuksie polecenie mkdir z parametrem '-p' nie wyświetla błędów jeśli folder już istnieje i tym samym zamiast pisać

if [ ! -d arch ]; then
    mkdir arch
fi

wystarczy

mkdir -p arch

* wielokrotnie powtórzyłeś ten sam kod, zamiast stworzyć funkcje.

 

Mam nadzieję, że nie byłem zbyt upierdliwy :) Jeśli coś wygląda dziwacznie dlatego, że robisz to na starych unixach to napisz to w komentarzu. Nie będę się czepiał :P Mnie na przykład strasznie irytuje, że nie używasz wcięć, ale może to ma jakąś swoją przyczynę ?

Share this post


Link to post
Share on other sites

Skrypt do archiwizacji danych z maszyn M$ (obecnie jednej) oraz zbiorów rozproszonych na lokalnym systemie w obrębie katalogów jednego użytkownika.

 

 

export haslo=
export kto=$LOGNAME
#!/bin/env bash

# Tworzenie drzewa katalogow

     mkdir -p /media/Rejent/
     mkdir -p /media/ARCH_REJENET/
     mkdir -p /home/$kto/Dokumenty/Bazy/
     mkdir -p /home/$kto/Dokumenty/Akty/
     mkdir -p /home/$kto/Dokumenty/Faktury/
     mkdir -p /home/$kto/Dokumenty/Poczta/



export ACELNOSXZ=ąćęłńóśźżĄĆĘŁŃÓŚŹŻ

if [[  `/usr/sbin/arp-scan -l |awk '{ print $1 }' |grep 4 |head -1 `  = 192.168.0.4 ]]; then 



/sbin/mount.cifs //192.168.0.4/REJENT,charset=iso8859-2,codepage=cp437 /media/Rejent/  username=admin -rw -o password=$haslo

/sbin/mount.cifs //192.168.0.4/ARCH_REJENET,charset=iso8859-2,codepage=cp437 /media/ARCH_REJENET/ username=admin -rw -o password=$haslo


kiedy=`date '+%d.%m.%Y_%H:%M:%S'`
dzisiaj=`date '+%d.%m.%Y'`
mkdir /home/$kto/Dokumenty/Akty/$dzisiaj 

zip -r9 /home/$kto/Dokumenty/Akty/$dzisiaj/Akty_notarialne_2010_`echo $kiedy`zip1.zip /media/Rejent/AKTY/PISMA/ >/home/$kto/Dokumenty/Akty/$dzisiaj/Akty_2010_`echo $kiedy`.zip.log  

# Kopia przyrostowa baz danych.

for plik in `ls /media/ARCH/BAZY/`; do 

         if [[ ! -f /home/$kto/Dokumenty/Bazy/$plik.zip ]]; then 

                    zip -r9 /home/$kto/Dokumenty/Bazy/$plik.zip /media/ARCH/BAZY/$plik >> /home/$kto/Dokumenty/Bazy/log_bazodanowy.log

        fi 

done

# Backup kompletnych plikow QFaktury GPL

zip -r9 /home/$kto/Dokumenty/Faktury/faktury_$kiedy.zip /home/$kto/.config/elinux /home/morg/elinux 

# Backup kompletu poczty

zip -r9 /home/$kto/Dokumenty/Poczta/thunderbird_$kiedy.zip /home/$kto/.thunderbird 

# Wyslanie powiadomien o wykonaniu kopii

mutt -s "Informacja o wykonanych kopiach" root@localhost < /home/$kto/Dokumenty/Bazy/log_bazodanowy.log

/bin/umount /media/ARCH_REJENET
/bin/umount /media/Rejent

fi

 

 

Poproszę o konstruktywną krytykę.

Share this post


Link to post
Share on other sites

* Jeśli już wklejasz hasło to w cudzysłowie password="$haslo"

* To dziwne obejście na sklejanie się parametru z tekstem Akty_2010_`echo $kiedy`.zip.log

zastąp przez nawias Akty_2010_${kiedy}.zip.log

 

* Wielokrotnie wpisujesz te same nazwy, ścieżki itp. To jest koszmarna praktyka: podatna na błędy przy wpisywaniu, żmudna przy jakiejkolwiek modyfikacji. Odrobina parametrów na początku + kilka funkcji daje czytelniejszy i łatwiejszy do utrzymania skrypt np. (Zmiany wprowadzone na szybko, bez sprawdzenia)

#!/bin/env bash
# export haslo=
# export kto=$LOGNAME

IP=192.168.0.4
FONT='charset=iso8859-2,codepage=cp437'
DATE=`date +%d.%m.%Y_%H:%M:%S`
DAY=`date '+%d.%m.%Y'`
Y=`date '+%Y'`
# ------------------------------------------------------------------------------
set_dirs(){
    # foldery
    SRC=/home/${kto}
    BAZY=${SRC}/Dokumenty/Bazy
    AKTY=${SRC}/Dokumenty/Akty/${DAY}
    FAKTURY=${SRC}/Dokumenty/Faktury
    POCZTA=${SRC}/Dokumenty/Poczta

    REJENT=/media/Rejent
    ARCH_REJENT=/media/ARCH_REJENET

    # Tworzenie drzewa katalogow
    for d in $SRC $BAZY $AKTY $FAKTURY $POCZTA $REJENT $ARCH_REJENT
    do
        mkdir -p $d
    done
}
# ------------------------------------------------------------------------------
backup(){
    zip -r9 ${AKTY}/Akty_notarialne_${Y}_${DATE}zip1.zip ${REJENT}/AKTY/PISMA/ >${AKTY}/Akty_${Y}_${DATE}.zip.log

    # Kopia przyrostowa baz danych.
    for plik in `ls ${ARCH_REJENT}/BAZY/`; do
        if [[ ! -f ${BAZY}/${plik}.zip ]]; then
            zip -r9 ${BAZY}/${plik}.zip ${ARCH_REJENT}/BAZY/${plik} >> ${BAZY}/log_bazodanowy.log
        fi
    done

    # Backup kompletnych plikow QFaktury GPL
    zip -r9 ${FAKTURY}/faktury_${DATE}.zip ${SRC}/.config/elinux /home/morg/elinux

    # Backup kompletu poczty
    zip -r9 ${POCZTA}/thunderbird_${DATE}.zip ${SRC}/.thunderbird

    # Wyslanie powiadomien o wykonaniu kopii
    mutt -s "Informacja o wykonanych kopiach" root@localhost < ${BAZY}/log_bazodanowy.log
}
# ------------------------------------------------------------------------------
if [[ `/usr/sbin/arp-scan -l | awk '/4/ { print $1 }' |head -1 ` = ${IP} ]]; then

    set_dirs

    /sbin/mount.cifs //${IP}/REJENT,${FONT} ${REJENT}/  username=admin -rw -o password="$haslo"
    /sbin/mount.cifs //${IP}/ARCH_REJENET,${FONT} ${ARCH_REJENT}/ username=admin -rw -o password="$haslo"

    backup

    /bin/umount ${ARCH_REJENT}
    /bin/umount ${REJENT}
fi

Share this post


Link to post
Share on other sites

Wyciagniecie uzytkowników do zbiorów dmp z przestrzeni bazy danych Oracle ( pojedynczej instancji).

 


#!/usr/bin/env ksh

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                                                                                                 #
#                                                                                                                                 #
# Eksporty wszystkich uzytkownikow ze wskazanej instancji Oracle.                                                                 #
#                                                                                                                                 #
#                                                                                                                                 #
# dumpuj.sh Copyright (c) 2k10 morg                                                                                               #
# Licencja GPLv3+: GNU GPL wersja 3 albo pozniejsza http://gnu.org/licenses/gpl.html                                              #
# To jest wolne oprogramowanie: masz prawo je zmieniac i rozpowszechniac.                                                         #
# Autorzy nie daja ZADNYCH GWARANCJI w granicach dozwolonych prawem.                                                              #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 


clear
printf "\n\nNalezy podac poprawne dane logowania dla uzytkownika typu SYS oraz haslo i SID bazy dla niego w poszczegolnych krokach w celu wyodrebnienia listy uzytkownikow przeznaczonych do eksportu. Skrypt zapisuje do pliku uzytkownicy_nazwa_instancji.txt wszystkich znalezionych a nastepnie dla poszczegolnych uzytkownikow dobiera haslo z linii 63. Eksport do dmp nastepuje w petli. \n\n\n"

printf "\n\nPodaj nazwe administratora bazy (np. sys) z ktorej chcesz zrobic export uzytkownikow:\n"
read baza

printf "\nPodaj haslo do niego: \n"
read haslo

printf "\nPodaj alias bazy danych (SID): \n"
read sid


usage()
{
clear
printf "\n\n\nNalezy podac poprawne dane logowania dla uzytkownika typu SYS oraz haslo i SID bazy dla niego w poszczegolnych krokach w celu wyodrebnienia listy uzytkownikow przeznaczonych do eksportu. Skrypt zapisuje do pliku uzytkownicy_nazwa_instancji.txt wszystkich znalezionych a nastepnie dla poszczegolnych uzytkownikow dobiera haslo z linii 63. Eksport do dmp nastepuje w petli. \n\n\n"
}


    if [[  -z ${baza} ]] ; then
         usage
    fi
    if [[  -z ${haslo} ]] ; then
         usage
    fi
    if [[  -z ${sid} ]] ; then
         usage
    fi

SprawdzUzytkownikow()
{
sqlplus -S "${baza}/${haslo}@${sid} as sysdba" <<EOF
set head off
set feedback off
spool uzytkownicy_${sid}.txt
SELECT owner FROM dba_segments GROUP BY owner;
spool off
set head on
set feedback on
quit;
EOF
}

SprawdzUzytkownikow

    for baza in `cat uzytkownicy_${sid}.txt | sed '/^$/d'` ; do  
    for haslo in ${baza} admin private ; do

    mkdir ${baza}
    kiedy=`date '+%d.%m.%Y_%H:%M:%S'`

sqlplus -S ${baza}/${haslo}@$sid <<EOF
set head off
set feedback off
spool ${baza}/${baza}.txt
spool off
set head on
set feedback on
quit;
EOF

         if [[ -f ${baza}/${baza}.txt ]] ; then
echo $baza/$haslo
                   exp $baza/$haslo@$sid BUFFER=10240000 DIRECT=Y FEEDBACK=100000 RECORDLENGTH=65535 file=${baza}/exp_${baza}_exp_z_${kiedy}.dmp log=${baza}/exp_${baza}_exp_z_${kiedy}.log grants=y consistent=y 
rm -f ${baza}/${baza}.txt
              else
                   echo " Dla bazy ${baza} haslo ${haslo} jest bledne " >>${baza}/opis.txt
         fi

    done
    done

 

 

 

Instrrukcja:

 

W linii 63 (for haslo in ${baza} admin private ; do) nalezy podac liste hasel (obecnie 3) które sa uzywane dla eksportowanej instancji. Skrypt przydatny dla adminów, DBA którzy maja przerosniete bazy i nosza sie z zamiarem odchudzenia ich.

 

Nalezy zadbac aby skrypt zostal uruchomiony na dysku z duza iloscia wolnego miejsca. Uzytkownik wykonujacy go musi miec swobodny i nieograniczony dostep do narzedzia sqlplus, oraz do tworzenia nowych katalogów.

 

morg

Share this post


Link to post
Share on other sites

Do rysowania wykresów polecam gnuplota i gnuplot-py, bardzo fajnie się robi wszelkie rodzaje wykresów. Matplotlib też niezły, ale w moim mniemaniu gnuplot ma większe możliwości.

 

Es.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×