Witaj Gościu, jeżeli to czytasz to znaczy że nie jesteś zarejestrowany/zalogowany. Kliknij by się zarejestrować. Rejestracja zajmie mniej niż 30 sekund , a dzięki temu zniknie Ci ten dymek oraz będziesz miał pełne możliwośći personalizacji forum do własnych potrzeb.
Rozne Przydatne Skrypty Wlasnej Roboty
Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 17

Temat: Rozne Przydatne Skrypty Wlasnej Roboty

  1. #1
    Avatar Sir_Yaro
    Sir_Yaro jest nieaktywny Były Administrator
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • ThinkPad T500
      • Procesor:
      • Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
      • Karta Graficzna:
      • ATI HD3650
      • Karta Dźwiękowa:
      • Conexant 20561
      • Monitor:
      • TFT WSXGA+
      • Kernel:
      • 3.2.0-34
    Dystrybucja: Kubuntu 14.04 LTS
    Polska
    Dołączył
    Jan 2004
    Skąd
    Gdansk
    Wiek
    38
    Postów
    3,675
    Wątków
    214
    Downloads
    27
    Uploads
    31
    Siła Reputacji
    157
    Reputacja
    1854

    Rozne Przydatne Skrypty Wlasnej Roboty

    W tym temacie prosze umieszczac skrypty wlasnej roboty ktorymi chcecie sie podzielic z innymi osobami.

    Zasady pisania w tym temacie:
    - KAZDY post ma miec wpisany temat
    - Skrypt/y OBOWIAZKOWO wklejony/e w pole [ CODE ] - (wyjatkiem jest jesli skrypt jest bardzo dlugi - wtedy moze byc tylko zalacznik)
    - WYMAGANY opis i ewentualne uwagi - nie wazne czy osobno czy jako komentarze w skrypcie
    - DODATKOWO mozna dodac skrypt/y jako zalacznik/i
    - prosze nie podawac linkow do skryptow umieszczanych gdzies po za tym serwerem - jest to zwiazane z tym, ze w 90% przypadkow po jakims czasie serwer XYZ robi sie nieaktywny albo plik zostaje usuniety i pozostaje martwy link...
    - ZADNYCH DYSKUSJI CZY KOMENTARZY W TYM TEMACIE
    - tutaj MOZNA, a nawet TRZEBA pisac posty jeden pod drugim jesli dotycza innego skryptu.
    - osoby nie stosujace sie do tych zalecen beda dostawaly banana na pare dni...

    na razie to tyle....

  2. Panna Google
    Panna Google jest aktywna
    Avatar Panny Google

    Dołączył
    01-05-2004
    Skąd
    Internet
    Postów
    999
    Pochwał
    159

    Nie lubisz reklam? Zarejestrowani ich nie widzą! Rejestracja





  3. #2
    Dołączył
    Dec 2004
    Skąd
    Brno
    Wiek
    35
    Postów
    1,449
    Wątków
    35
    Downloads
    0
    Uploads
    0
    Siła Reputacji
    191
    Reputacja
    2462
    Kiedys sciagnalem podobny skrypt z internetu i przerobilem go, wiec nie jest do konca mojej roboty. Bardziej mozna go potraktowac jako ciekawostke niz jako do praktycznego zastosowania.
    Skrypt sprawdza plec osoby, ktora podala swoje imie i nazwisko, badz samo imie.

    Kod:
    #!/bin/bash
    
    echo -n "Podaj imie i nazwisko, ktorej chesz okreslic plec:"
    
    read dane
    
    x=`echo $dane | cut -d" " -f1`
    
    case $x in
     [Kk]uba|[Bb]arnaba)
    
       echo "To jest facet"
      ;;
     *a)
    
       echo "To jest kobita"
      ;;
     *[^a])
    
       echo "To jest facet"
      ;;
    esac
    Jak widac skrypt opiera sie na tym, ze imiona zenskie koncza sie przewaznie na litere "a", natomiast meskie nie. Wyjatek stanowia imiona Kuba i Barnaba.
    Ostatnio edytowane przez suncez ; 28.10.2010 o 21:53
    "Jednej rzeczy nauczyłem się w moim długim życiu:
    że cała nasza nauka w konfrontacji z rzeczywistością
    wydaje się prymitywna i dziecinna - a jednak jest to
    najcenniejsza rzecz, jaką posiadamy."

    Albert Einstein

  4. #3
    Avatar Sir_Yaro
    Sir_Yaro jest nieaktywny Były Administrator
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • ThinkPad T500
      • Procesor:
      • Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
      • Karta Graficzna:
      • ATI HD3650
      • Karta Dźwiękowa:
      • Conexant 20561
      • Monitor:
      • TFT WSXGA+
      • Kernel:
      • 3.2.0-34
    Dystrybucja: Kubuntu 14.04 LTS
    Polska
    Dołączył
    Jan 2004
    Skąd
    Gdansk
    Wiek
    38
    Postów
    3,675
    Wątków
    214
    Downloads
    27
    Uploads
    31
    Siła Reputacji
    157
    Reputacja
    1854

    Skrypt do odswierzania adresu ip i podtrzymywania polaczenia

    ~/bin/adres
    Kod:
    #!/bin/bash
    ADRES="83.141.73.1"
    karta="eth2"
    
    testuj() {
    ping -c1 -W40 $ADRES 
    
    if [ $? != 0 ]; then
        echo "brak polaczenia - zmiana MAC"
        echo "oraz proba uzyskania adresu z serwera dhcp"
        killall dhclient
        killall dhclient3
        # zmiana adresu mac na losowy
        ifconfig $karta down
        tmp=`/home/yaro/bin/numer`
        numer=`left 2 $tmp`
        tmp2=`/home/yaro/bin/numer`
        numer2=`left 2 $tmp2`
        tmp3=`/home/yaro/bin/numer`
        numer3=`left 2 $tmp3`
        ifconfig $karta hw ether 00:20:ED:$numer:$numer2:$numer3
        ifconfig $karta up
        dhclient $karta
        ifconfig
        testuj
    
    fi
    exit
    }
    
    testuj2() {
    ping -c1 -W40 $ADRES  >/dev/null 2>&1
    
    if [ $? != 0 ]; then
        echo "Proba odswierzenia adresu z serwera dhcp"
        killall dhclient
        killall dhclient3
        dhclient $karta
        ifconfig
        sleep 5
        testuj
    
    fi
    exit
    }
    
    
    
    ADRES=`ifconfig |grep -e "inet addr"|grep Bcast|tr -cs '[a-zA-Z0-9.]' '[\n*]'|head -n 4|tail -n 1`
    
    if [ "$ADRES" = "" ]; then
    dhclient $karta
    sleep 5
    
    fi
    
    testuj2
    
    #end Script
    /home/yaro/bin/numer
    Kod:
    #!/usr/bin/perl
    #use Crypt::UnixCrypt;
    #use Crypt::Salt;
    $rnd = rand()*70;
    if ($rnd < 10) {$rnd = rand()*100;}
    if ($rnd < 10) {$rnd = rand()*100;}
    if ($rnd < 10) {$rnd = rand()*100;}
    print $rnd;
    print;
    left.c
    Kod:
     
    #include <stdio.h>
    #include "string2.h"
    
    int main(int argc, char *argv[])
    {
        printf(left(atoi(argv[1]), argv[2]));
        return 1;
    }
    string2.h
    Kod:
    #include <string.h>
    
    int leftseek(int position, char *string1, char *string2)
    {
        int q = 0, k = 0, i = 0, size1 = 0, size2 = 0;
        int n;
        int *p;
        char c;
    
        size1 = strlen(string1);
        size2 = strlen(string2);
    
        if(position < size1)
            n = position;
        else
            n = size1;
    
        p = (char *)malloc(size2 * sizeof(int));
        p[0] = 0;
        for(i = 1; i < size2; i++)
        {
            while(k > 0 && string2[k] != string2[i])
                            k = p[k];
                    if(string2[k] == string2[i])
                            k++;
                    p[i] = k;
        }
    
        for(i = 0; i < n; i++)
        {
            while(q > 0 && string2[q + 1] != string1[i])
                q = p[q];
            if(string2[q + 1] == string1[i])
                q++;
            if(q == size2 - 1)
                return (i - size2 + 2);
        }
    
        return -1;
    }
    
    int rightseek(int position, char *string1, char *string2)
    {
        int q = 0, k = 0, i = 0, size1 = 0, size2 = 0;
        int n;
        int *p;
        char c;
    
        size1 = strlen(string1);
        size2 = strlen(string2);
    
        if(position < size1)
            n = position;
        else
            n = size1;
    
        p = (char *)malloc(size2 * sizeof(int));
        p[0] = 0;
        for(i = 1; i < size2; i++)
        {
            while(k > 0 && string2[k] != string2[i])
                            k = p[k];
                    if(string2[k] == string2[i])
                            k++;
                    p[i] = k;
        }
    
        for(i = n; i < size1; i++)
        {
            while(q > 0 && string2[q + 1] != string1[i])
                q = p[q];
            if(string2[q + 1] == string1[i])
                q++;
            if(q == size2 - 1)
                return (i - size2 + 2);
        }
    
        return -1;
    }
    
    int middleseek(int position1, int position2, char *string1, char *string2)
    {
        int q = 0, k = 0, i = 0, size1 = 0, size2 = 0;
        int n1, n2;
        int *p;
        char c;
    
        size1 = strlen(string1);
        size2 = strlen(string2);
    
        if(position1 < size1)
            n1 = position1;
        else
            n1 = size1;
        if(position2 < size1)
            n2 = position2;
        else
            n2 = size1;
        if(n1 > n2)
            n1 = n2;
    
        p = (char *)malloc(size2 * sizeof(int));
        p[0] = 0;
        for(i = 1; i < size2; i++)
        {
            while(k > 0 && string2[k] != string2[i])
                            k = p[k];
                    if(string2[k] == string2[i])
                            k++;
                    p[i] = k;
        }
    
        for(i = n1; i < n2; i++)
        {
            while(q > 0 && string2[q + 1] != string1[i])
                q = p[q];
            if(string2[q + 1] == string1[i])
                q++;
            if(q == size2 - 1)
                return (i - size2 + 2);
        }
    
        return -1;
    }
    
    char *left(int length, char *string)
    {
        char *request;
        int size = 0;
        int i, n;
    
        size = strlen(string);
    
        if(length < size)
            n = length;
        else
            n = size;
        request = (char *)malloc(n * sizeof(char));
    
        for(i = 0; i < n; i++)
             request[i] = string[i];
    
        return request;
    }
    
    char *right(int length, char *string)
    {
        char *request;
        int size = 0;
        int i, n;
    
        size = strlen(string);
    
        if(length < size)
            n = length;
        else
            n = size;
        request = (char *)malloc(n * sizeof(char));
    
        for(i = 0; i < size; i++)
            request[i] = string[size - n + i];
    
        return request;
    }
    
    char *middle(int start, int end, char *string)
    {
        char *request;
        int size = 0;
        int i, n1, n2, tmp;
    
        size = strlen(string);
    
        if(start < size)
            n1 = start;
        else
            n1 = size;
        if(end < size)
            n2 = end;
        else
            n2 = size;
        if(n1 > n2)
        {
            tmp = n1;
            n1 = n2;
            n2 = tmp;
        }
        request = (char *)malloc((n2 - n1) * sizeof(char));
    
        for(i = 0; i < (n2 - n1); i++)
            request[i] = string[n1 + i];
    
        return request;
    }
    w katalogu z 2ma ostatnimi plikami wykonujemy:
    Kod:
    gcc -o left left.c
    wrzucamy do jakiegos katalogu bin (np /usr/bin)
    i wrzucamy uruchamianie pliku adres co wymagany przez nas czas.

    skrypt dziala w ten sposob ze sprawdza zadany adres, probujac go spingowac. jesli mu sie to nie uda w ciagu 40 sekund probuje z serwera dhcp odswierzyc adres ip karty, a nastepnie ponownie wykonuje pinga.
    Jesli i ta proba sie nie powiedzie, skrypt wylacza karte, zmienia adres MAC na losowy (w 50%), wlacza karte i ponownie prosi o adres IP. Jesli sie uda konczy dzialanie jesli nie to powtarza ww operacje az do skutku.

    skrypt zwraca jakiekolwiek komunikaty tylko w przypadku niepowodzenia pierwszego pinga wiec jesli masz u siebie serwer poczty, a lacze pada dosc rzadko to nie bedziesz dostawal co chwile mejla z wynikiem komendy..

    jesli sa jakies pytania/watpliwosci prosze pytac na PM

    [Dodano 2006-04-02, 15:20:28]

    aha, warto jeszcze sie zastanowic nad zmiana:
    Kod:
    ping -c1 -W40
    na cos w stylu:
    Kod:
    ping -c10 -W40
    aby byla wieksza ilosc pingow i wieksza niezaleznosc od zagubionych przypadkowo pojedynczych pakietow....

  5. #4
    Dołączył
    Oct 2003
    Skąd
    Wrocław
    Wiek
    34
    Postów
    2,467
    Wątków
    38
    Downloads
    0
    Uploads
    0
    Siła Reputacji
    65
    Reputacja
    517

    Odp: Rozne Przydatne Skrypty Wlasnej Roboty

    To i ja się pochwalę
    Zalążek, mam nadzieję, większego skryptu do zmiany rozmiaru obrazków.
    Aktualnie jest ustawione na 640x480.
    Skrypt należy uruchamiać z parametrem, którym jest katalog ze zdjęciami.
    W wyniku działania skryptu powstaje katalog katalog_small, a w nim przerobione zdjęcia.
    Kod:
    #!/bin/bash
    
    #Skrypt nalezy uruchamiac z parametrem.
    #Parametrem jest katalog z obrazkami, ktore chcemy zmniejszyc
    #Zmienna SIZE odpowiada za rozmiar nowego obrazka.
    #Zmienna JAKOSC, a wlasciwie procenty w zmiennej okreslaja... jakosc
    #obrazka
    #Katalog z plikami wynikowym jest w tym samy katalogu co zrodlowy, 
    #ale zawirajacy koncowke _small
    
    CONVERT=`which convert`
    RESIZE='-resize'
    JAKOSC='-quality 85%'
    SIZE='640x480'
    KATALOG=$1
    E=`echo`
    
    
    if [ ! -x $CONVERT ]; then
        echo "Musisz mieć zainstalowany program convert z pakietu imagemagick "
            exit 1
    	fi
    
    if [ $E "$1" = "" ];then
    echo "Uruchom mnie przez $0 /scizeka/do/katalogu/ze/zdjeciami"
    	exit 1
    	fi
    
    
    if [ ! -e "$1" ];then
    	echo "Potrzebuje czegos do konwersji!"
    	exit 1
    fi
    
    
    if [ ! -d "$1" ];then
    	echo "Podaj katalog!!"
    	exit 1
    fi
    
    
    WYNIK="`basename "$1"`_small"
     
    cd "$1"
    
    test -d ../"$WYNIK" || mkdir ../"`basename "$1"`_small"
    
    	
    for plik in *;  
    do
    if [ $E "`file -ib $plik | cut -c 1-5`"  = "image" ]; then
    	echo "Przetwarzanie $plik..."
    	$CONVERT $plik $RESIZE $SIZE $JAKOSC  ../"$WYNIK/small-$plik"
    	else 
    	echo "Pomijam $plik"
    fi
      done
    
      echo "Przetwarzanie zakończone!"
    exit 0






    Reputacja przyznana temu postowi
    Łącznie punktów reputacji: 17

    Komentarze:
     Aquila.pl  zgadza się   Dzięki. Super sprawa.
    Attached Files
    Ostatnio edytowane przez zolty ; 09.05.2006 o 11:10 Powód: Załącznik :]/Pierwsza poprawka :P

  6. #5
    Avatar Shadow
    Shadow jest nieaktywny Ubuntu Devoted
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • C64
      • Procesor:
      • MOS 6510
      • Karta Graficzna:
      • VIC 6569
      • Karta Dźwiękowa:
      • SID 6581
      • Monitor:
      • Commodore 1802
      • Kernel:
      • Basic V2.0
    Dystrybucja: Ubuntu Interpid
    Dołączył
    Apr 2005
    Skąd
    Poznań
    Postów
    384
    Wątków
    39
    Downloads
    3
    Uploads
    0
    Siła Reputacji
    62
    Reputacja
    579

    Red face Przyjemny skrypcik do cryptsetup.

    Tak .. zamarzyło mi się kiedyś trochę prywatności - całego systemu
    nie chciałem szyfrować więc wydzieliłem sobie partycję. Etap pierwszy (na którym
    zrestą stanęło - prowizorka jest wieczna) zakładał skrypt uruchamiany pod KDE który
    otworzy okienko zapyta się dwa razy o hasełko i zamontuje zaszyfrowaną partycję
    pod ustalone miejsce. Przy ponownym uruchomieniu - odmontuje ją.

    Wymagania:
    - Python
    - QT, KDE
    - QT bindings for Python
    - Dm-crypt
    - Cryptsetup
    - Sudo + Spis w sudoers:

    Kod:
    user  ALL=NOPASSWD: /bin/cryptsetup,/sbin/modprobe
    I skrypcik:

    Kod:
    #!/usr/bin/env python
    #
    # Cryptsetup.py
    #
    # Remember to add folowing line(s) to /etc/sudoers
    #
    # users ALL=NOPASSWD:/usr/bin/cryptsetup,/sbin/modprobe
    #
    # where users should contain all users which You want to give permission
    # to use cryptsetup and modprobe. For more informations please read
    # the sudo man
    #
    import sys
    import os
    from qt import *
    app=QApplication(sys.argv)
    p=QWidget()
    
    if os.path.exists("/dev/mapper/secret"):
            QMessageBox.information(p, "Encryption status", "Encrypted device exist - removing" )
            os.system("umount /mnt/secret >/dev/null")
            retval=os.system("sudo cryptsetup remove secret")
            if retval<>0:
                    QMessageBox.information(p, "Encryption status", "Can't remove device is busy" )
            sys.exit(0)
    a=QInputDialog.getText("Welcome to the Rock", "Please Enter Password",QLineEdit.Password)
    if a[1]==0:sys.exit(0)
    b=QInputDialog.getText("Welcome to the Rock", "Please Enter Password Again",QLineEdit.Password)
    if b[1]==0:sys.exit(0)
    
    a=a[0]
    b=b[0]
    
    if a=="" or b=="":
            QMessageBox.critical(p, "Error", "Empty Passwords not allowed" )
            sys.exit(1)
    
    if a<>b:
            p=QWidget()
            QMessageBox.critical(p, "Error", "Passwords 1 & 2 does not match" )
            sys.exit(2)
    text=str(a)
    retval=os.system("sudo modprobe dm-crypt")
    if retval<>0:sys.exit(3)
    retval=os.system("sudo modprobe sha256")
    if retval<>0:sys.exit(4)
    
    command="echo "+text+" | sudo cryptsetup -c aes-cbc-essiv:sha256 create secret /dev/sda3"
    retval=os.system(command)
    if retval<>0:sys.exit(5)
    retval=os.system("mount /mnt/secret")
    if retval<>0:
            QMessageBox.critical(p, "Error", "Wrong Password" )
            retval=os.system("sudo cryptsetup remove secret")
            sys.exit(6)
    else:
            QMessageBox.information(p, "Encryption status", "Encrypted Device OK" )
    #
    # End of this "art" piece of software :-)
    Zapisujemy skrypcik np do /usr/sbin/sejfik.py - nadajemy odpowiednie prawa dostępu i wykonywania.

    Wpis w fstab:
    Kod:
    /dev/mapper/secret     /mnt/secret      ext3        user,noauto,users,exec  0 0
    Oczywiście /mnt/secret i /dev/sda3 trzeba zmienić na wartości jakie nam odpowiadają.
    To samo tyczy się systemu plików (vfat,ext2,ext3,jfs etc).
    przygotowanie pustej partycji do użycia z cryptsetup (zakładamy /dev/sda1):
    Kod:
    # modprobe dm-crypt
    # modprobe sha256
    # cryptsetup cryptsetup -y -c aes-cbc-essiv:sha256 create secret /dev/sda1"
    <- podajemy dwa razy hasło - tylko nie 4 literki bo entropia żadna - sugeruje 10-16 jako min.
    # mkfs.ext3 /dev/mapper/secret
    # mount /mnt/secret
    Na koniec pozostaje zrobić sobie skrót na desktop sejfik gotowy


    PS1. Jeżeli uprzednio ta partycja była pusta a chcemy mieć duży poziom bezpieczeństwa
    to polecam przed rozpoczęciem zabawy:
    Kod:
    #dd if=/dev/urandom of=/dev/sda1 bs=8192k
    PS2. w przykładzie algorytm kodowania to aes-cbc - można wybrać inny - trzeba wtedy
    zmienić odpowiednio w skrypcie - po szczegóły odsyłam do dokumentacji dm-crypt'a.
    PS3. Jak ktoś słusznie zauważył przydałaby się możliwość zaszyfrowania istniejącej
    partycji. Poniższy sposób został przetestowany i wygląda na 99% pewny.
    Jednak jak zawsze zalecam utworzenie backup'u jeśli to możliwe.
    Uwaga:
    Jeśli w czasie przeprowadzania tej operacji nastąpi zanik zasilania, zwiecha systemu
    itd. - to możemy pożegnać się na zawsze z naszymi danymi !

    Do dzieła więc: (w przykładzie partycja z danymi to /dev/hda1)
    1) Odmontowujemy partycję.
    2) Tworzymy tymczasowe urządzenie który posłuży nam do konwersji:
    Kod:
    # cryptsetup -y -c aes-cbc-essiv:sha256 create encrypted /dev/hda1
    hasło tu podane ma być hasłem docelowym jakim chcemy mieć zabezpieczone dane.
    3) Uruchamiamy szyfrowanie:
    Kod:
    # dd if=/dev/hda1 of=/dev/mapper/encrypted bs=8192k
    i czekamy (modląc się aby nic nie padło) na zakończenie operacji
    4) Usuwamy tymczasowe urządzenie
    Kod:
    # cryptsetup remove encrypted
    W ten sposób mamy zaszyfrowaną całą partycję i gotową do użycia z powyższym
    skryptem





    Reputacja przyznana temu postowi
    Łącznie punktów reputacji: 28

    Komentarze:
     Sir_Yaro  zgadza się   bardzo fajne..... chyba sie pobawie tym....
     Hagal  zgadza się   Dzięki za rozszerzenie opisu - teraz to się przyda
    Ostatnio edytowane przez suncez ; 28.10.2010 o 21:55
    "There is no light without a Shadow "
    Własne Radyjo ? Czemu by nie ...


    --------------------------------------------------------------------------------------
    PROSZĘ O UŻYWANIE PRZYCISKÓW REPUTACJI

  7. #6
    Avatar Shadow
    Shadow jest nieaktywny Ubuntu Devoted
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • C64
      • Procesor:
      • MOS 6510
      • Karta Graficzna:
      • VIC 6569
      • Karta Dźwiękowa:
      • SID 6581
      • Monitor:
      • Commodore 1802
      • Kernel:
      • Basic V2.0
    Dystrybucja: Ubuntu Interpid
    Dołączył
    Apr 2005
    Skąd
    Poznań
    Postów
    384
    Wątków
    39
    Downloads
    3
    Uploads
    0
    Siła Reputacji
    62
    Reputacja
    579

    Cool Odp: Rozne Przydatne Skrypty Wlasnej Roboty

    Kolejny kamyczek do ogródka.
    Mam kartę ASUSA GeForce 6800 GT i trochę wkurzał mnie głośny wiatrak.
    I z lenistwa ponieważ nie chciało mi się wiatraczka przestawiać ręcznie
    powstał poniższy skrypt. Powinien on działać także z innymi GeForce'ami 6800
    o ile
    1)
    Kod:
    nvclock -i
    wyrzuca temperaturę dla karty i GPU
    2 np.
    Kod:
    nvclock -f -F 50
    działa na naszej karcie

    a tu już zapowiadany skrypcik:

    Kod:
    #! /bin/bash
    #
    # This script controls permanently fan
    # of Asus V9999 Geforce 6800
    #
    # need nvclock with working nvclock -i and -f -F commands
    #
    # Author: MrMad
    # mailto: mr.mad.pl@gmail.com
    #
    # version 0.0.1
    # Licensed under GPL v.2
    # USE IT AT OWN RISK - Burn baby burn ! ;-)
    #
    
    #
    # Some general settings here
    # adjust at own risk ;-)
    # MaxGPU - maximum GPU temperature - at this poiny fan is set to MaxSpeed
    # MinGPU - minimum GPU temperature - at this point fan is set to MinSpeed
    # MaxBoard - maximum Board temperature - at this poiny fan is set to MaxSpeed
    # MinBoard - minimum Board temperature - at this point fan is set to MinSpeed
    # MaxSpeed - Maximum Fan Speed to use
    # MinSpeed - Minimum Fan Speed to use
    # Interval - period between checks
    #
    
    MaxGPU=58
    MinGPU=50
    MinBoard=62
    MaxBoard=72
    Interval=10
    MaxSpeed=100
    MinSpeed=30
    
    #
    # In case of break restore fan
    #
    function restorefan()
    {
    nvclock -f -F $MaxSpeed >/dev/null
    exit 0
    }
    
    #
    # takeover some signals
    #
    trap restorefan SIGHUP SIGINT SIGQUIT SIGTERM SIGKILL
    
    
    #
    #main loop starts here - endless
    #
    while true
    do
        #
        # Read the current temperatures
        #
            Temperatures=$(nvclock -i | grep temperature)
            GPUTemp=$(echo $Temperatures | awk -F": " '{ print substr($3,0,2) }')
            BoardTemp=$(echo $Temperatures | awk -F": " '{ print substr($2,0,2) }')
    
        #
        # calculate fan speed based on GPU temp
        #
            ((FanGPU = (MaxSpeed-MinSpeed)*(GPUTemp-MinGPU)/(MaxGPU-MinGPU)+MinSpeed))
        #
        # calculate fan speed based on Board temp
        #
            ((FanBoard = (MaxSpeed-MinSpeed)*(BoardTemp-MinBoard)/(MaxBoard-MinBoard)+MinSpeed))
    
        #
        # choose the higher one
        #
            if ((FanGPU>=FanBoard))
                then
                    Fan=$FanGpu
                else
                    Fan=$FanBoard
                fi
        #
        #check the max min values
        #
            if ((Fan>MaxSpeed))
                then
                    Fan=$MaxSpeed
                fi
            if ((Fan<MinSpeed))
                then
                    Fan=$MinSpeed
                fi
        #
        # set speed using nvclock
        # only if it's diffferent from current
        #
            if ((OldFan!=Fan))
                then
                nvclock -f -F $Fan >/dev/null
                #wait a moment
                sleep 1
                #
                # check the actual fan value
                #
                ActFan=$(nvclock -i | grep PWM | awk -F": " '{ print substr($2,0,2) }')
                #
                #cause of sometimes nvclock fails we check following
                #and if current value is below MinSpeed we go to max for safety for a while
                #
                    while ((ActFan<MinSpeed))
                    do
                        nvclock -f -F 100 >/dev/null
                        sleep 1
                        ActFan=$(nvclock -i | grep PWM | awk -F": " '{ print substr($2,0,2) }')
                    done
                #
                #store current value
                #
                OldFan=$Fan
    
            #End of ifsame checking
            fi
        #
        # Go sleep for a while
            sleep $Interval >/dev/null
        #
    done
    Ostatnio edytowane przez suncez ; 28.10.2010 o 21:58
    "There is no light without a Shadow "
    Własne Radyjo ? Czemu by nie ...


    --------------------------------------------------------------------------------------
    PROSZĘ O UŻYWANIE PRZYCISKÓW REPUTACJI

  8. #7
    Avatar niggazzz
    niggazzz jest nieaktywny Sprzedawca Żywopłotów
    Mężczyzna
    Dystrybucja: Mandriva 2006 Free
    Dołączył
    Apr 2006
    Skąd
    Warsaw
    Postów
    69
    Wątków
    6
    Downloads
    1
    Uploads
    0
    Siła Reputacji
    22
    Reputacja
    1

    Odp: Rozne Przydatne Skrypty Wlasnej Roboty

    2 Proste skrypty do operacji na nazwach plikow, a konkretnie do masowej zmiany nazw plikow w obrebie jednego katalogu.


    1. Skrypt do zmiany spacji na podkreslenia.
    Kod:
    #!/bin/bash
    
    (IFS="\n"; for i in *;do mv "$i" "${i// /_}";done)
    2. Skrypt do zmiany spacji na kropki
    Kod:
    #!/bin/bash
    
    (IFS="\n"; for i in *;do mv "$i" "${i// /.}";done)
    Oczywiscie to tylko przyklad. Po odpowiedniej modyfikacji koncowki skryptu mozna zmienac spacje,kropki, czy tez podkreslenia na dowolne znaki. Ja go uzywam do zmiany nazw mp3ek z podkreslen na spacje
    Ostatnio edytowane przez niggazzz ; 24.09.2006 o 16:03

  9. #8
    Avatar Shadow
    Shadow jest nieaktywny Ubuntu Devoted
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • C64
      • Procesor:
      • MOS 6510
      • Karta Graficzna:
      • VIC 6569
      • Karta Dźwiękowa:
      • SID 6581
      • Monitor:
      • Commodore 1802
      • Kernel:
      • Basic V2.0
    Dystrybucja: Ubuntu Interpid
    Dołączył
    Apr 2005
    Skąd
    Poznań
    Postów
    384
    Wątków
    39
    Downloads
    3
    Uploads
    0
    Siła Reputacji
    62
    Reputacja
    579

    GentooSweep :)

    Cóż, załączony skrypcik jest w fazie alpa ale działa i wyszedł już poza proof of concept .

    Skrypt ten jest przeznaczony dla posiadaczy Gentoo.
    Jego zadaniem jest znalezienie plików które zostały zainstalowane z poza portage.
    Może się tak stać jeśli zainstalujemy coś z CVS'a RPM'a czy inaczej namieszamy w systemie.
    Mnie się tak zdarzyło i parę dni zajęło mi dojście czemu po zainstalowaniu i odinstalowaniu
    KDevelop'a z CVS'a wersja z portage'u nie chce więcej działać. Okupione to wszystko górą czasu
    i desperackim emerge -ve world - co i tak rezultatu nie przyniosło.

    Skrypt wymaga do działania sqlite i gentoolkit.
    Wynik jego działania jest wyświetlany na ekranie a dodatkowo tworzony jest plik
    ~/gentoosweep.log w którym mamy raport o znalezionych podejrzanych plikach.
    Dużo do życzenia pozostawia jego szybkość działania ale być może następna wersja pojawi
    się na sourceforge napisana w c i zoptymalizowana.
    Zapraszam do testowania i proszę o opinie i komentarze.

    Pozdrawiam
    MrMad

    PS. Exclude List nie działa w chwili obecnej.
    PS2. Podziękowania dla Hagal'a za cenne rady i uwagi.

    DODANO 3.01.2007:
    Tak się zapaliłem do tego że stworzyłem własny projekt na SF.net -> http://sourceforge.net/projects/gentoo-sweep/
    Zapraszam do testowania bo powyższy sktypt oprócz tego że działa i jako proof of concept się nadaje to na wyniki trzeba
    czekać godzinami. Wersja na sf.net "Gentoo Clean & Shine" w całości napisana w c . Mam nadzieję że będzie użyteczne.
    Attached Files
    Ostatnio edytowane przez suncez ; 28.10.2010 o 21:59
    "There is no light without a Shadow "
    Własne Radyjo ? Czemu by nie ...


    --------------------------------------------------------------------------------------
    PROSZĘ O UŻYWANIE PRZYCISKÓW REPUTACJI

  10. #9
    Avatar Shadow
    Shadow jest nieaktywny Ubuntu Devoted
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • C64
      • Procesor:
      • MOS 6510
      • Karta Graficzna:
      • VIC 6569
      • Karta Dźwiękowa:
      • SID 6581
      • Monitor:
      • Commodore 1802
      • Kernel:
      • Basic V2.0
    Dystrybucja: Ubuntu Interpid
    Dołączył
    Apr 2005
    Skąd
    Poznań
    Postów
    384
    Wątków
    39
    Downloads
    3
    Uploads
    0
    Siła Reputacji
    62
    Reputacja
    579

    Lightbulb Odp: Rozne Przydatne Skrypty Wlasnej Roboty

    MrMad Stikes Back !
    Ostatnio trafiłem na zdjęcia które rozszerzenie .jpg miały a mimo to jpeg'ami nie były .
    Cóż było robić - za całość winę ponosi windowsowy program do tworzenia albumów z
    serii Flip, który takowe pliko tworzy z własnym nagłówkiem oczywiście, podglądem wewnątrz
    i następnie właściwym obrazem jpeg - na zdjęciach mi zależało, więc zakasałem rękawy i
    napisałem programik, który z takowych dziwnych plików batchem wyciąga to co na jpeg'a
    wygląda. Program bierze pod uwagę wszystkie pliki w katalogu w którym go uruchomiono (bez
    względu na rozszerzenie) i zapisuje je w tworzonym przez siebie podkatalogu convert w tymże
    samym katalogu. Oprócz standardowego --help, program przyjmuje jeden parametr bezwymiarowy i nienazwany - który z kolei fragment z nagłówkiem jpeg zapisać - mnie przydało się 2.
    Zdaję sobie sprawę że wyżej opisana sytuacja to rzadkość ...
    ale Windziarz nie śpi i nie wiadomo kiedy zaatakuje

    Dołączam dwa załączniki:
    -jpeg-extract - wersja skompilowna GCC 4.1 against GLibc 2.5
    -źródełka convert.c (co kompilujemy stosując magiczny przepis nr 4 czyli: gcc -O2 -Wall ./convert.c -o ./jpeg-extract )

    I to by było na tyle





    Reputacja przyznana temu postowi
    Łącznie punktów reputacji: 21

    Komentarze:
     Sir_Yaro  zgadza się   bardzo fajne
    Attached Files
    "There is no light without a Shadow "
    Własne Radyjo ? Czemu by nie ...


    --------------------------------------------------------------------------------------
    PROSZĘ O UŻYWANIE PRZYCISKÓW REPUTACJI

  11. #10
    Avatar Sir_Yaro
    Sir_Yaro jest nieaktywny Były Administrator
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • ThinkPad T500
      • Procesor:
      • Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
      • Karta Graficzna:
      • ATI HD3650
      • Karta Dźwiękowa:
      • Conexant 20561
      • Monitor:
      • TFT WSXGA+
      • Kernel:
      • 3.2.0-34
    Dystrybucja: Kubuntu 14.04 LTS
    Polska
    Dołączył
    Jan 2004
    Skąd
    Gdansk
    Wiek
    38
    Postów
    3,675
    Wątków
    214
    Downloads
    27
    Uploads
    31
    Siła Reputacji
    157
    Reputacja
    1854

    Thumbs up Odp: Rozne Przydatne Skrypty Wlasnej Roboty

    Automatyczne otwieranie zakladki w operze na ustalonej stronie raz dziennie.

    Chcialem miec w operze taki sam bajer jak jest w firefksie ktory otwiera automatycznie raz dziennie w nowej zakladce strone pajacyka. Pokombinowalem i prosze:

    wykonujemy polecenie:
    Kod:
    which opera
    i zapamietujemy wynik

    potem:
    Kod:
    cd 
    mkdir bin
    cd bin
    touch opera
    chmod +x ./opera
    kate ./opera
    do otwartego w ten sposob pliku wklejamy:
    Kod:
    #!/bin/bash
    
    OPERA=/usr/bin/opera
    
    ##########################################
    
    dzien=`date +%d`
    if [ `cat ~/.opera/date.id` != $dzien ]
    then
    echo $dzien>~/.opera/date.id
    
    iloscokien=`cat ~/.opera/sessions/autosave.win|grep -e 'window count='|tr "=" "\n"|tail -n 1`
    parentwindownr=`cat ~/.opera/sessions/autosave.win |grep -e 'id='|head -n 1|tr '=' '\n'|tail -n 1`
    nowailoscokien=$[iloscokien + 1]
    
    sed s/"window count=$iloscokien"/"window count=$nowailoscokien"/g ~/.opera/sessions/autosave.win > ~/.opera/sessions/autosave.win.tmp
    mv ~/.opera/sessions/autosave.win.tmp ~/.opera/sessions/autosave.win
    
    szukaj="\[XYZ"
    zmien="\["$nowailoscokien
    
    adresskryptu=`which opera`
    adresformy=`dirname $adresskryptu`
    
    sed -e "s/$szukaj/$zmien/g" ${adresformy}/opera.forma | sed -e "1,20s/parent=0/parent=$parentwindownr/g" >> ~/.opera/sessions/autosave.win
    
    fi
    
    $OPERA $*
    na samym poczatku zmieniamy /usr/bin/opera na to co nam wyrzucilo pierwsze polecenie.

    nastepnie wykonujemy:
    Kod:
    cd ~/bin
    touch opera.forma
    kate ./opera.forma
    i wklejamy do otwartego pliku ponizszy kod (zwroc uwage na dodatkowy enter na poczatku):
    Kod:
    [XYZ]
    x=0
    y=24
    w=1042
    h=585
    state=2
    restore to state=0
    id=2391
    parent=0
    saveonclose=1
    position=1
    stack position=0
    active=1
    locked=0
    type=1
    addressbar alignment=4
    navigationbar auto alignment=0
    navigationbar alignment=0
    window id=8
    max history=1
    current history=1
    has speeddial in history=1
    lists=history url,history document type,history title,history scrollpos list
    encoding
    show img=1
    load img=1
    user auto reload enable=0
    user auto reload sec user setting=300
    user auto reload only if expired=0
    output associated window=0
    CSS mode=0
    handheld mode=0
    scale=100
    show scrollbars=1
    search engine=0
    
    [XYZhistory url]
    count=1
    0=http://pajacyk.pl/
    
    [XYZhistory document type]
    count=1
    0=6
    
    [XYZhistory title]
    count=1
    0=Polska Strona Głodu.
    
    [XYZhistory scrollpos list]
    count=1
    0=0
    Teraz uruchomienie opery standardowym poleceniem opera powinno tak na prawde wywolywac nasz skrypt ktory bedzie po odpowiednich modyfikacjach w zapisanych zakladkach odpalal prawdziwa opere z juz otwarta zakladka pajacyka (lub inna strona jesli zmienimy ten drugi plik). ;D ;D
    Ostatnio edytowane przez Sir_Yaro ; 10.05.2007 o 00:23

Strona 1 z 2 12 OstatniOstatni

Informacje o wątku

Users Browsing this Thread

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Uprawnienia

  • Nie możesz zakładać nowych wątków
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •