Hello Guest, if you reading this it means you have not yet registered. Please take a second to Click here to register and in a few simple steps, you will be able to enjoy all the many features of our fine community. Please note that nicknames are prohibited lewd or meaningless (no numbers or letters at random) and introduce yourself in the section for you to meet our community.
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
    39
    Postów
    3,675
    Wątków
    214
    Siła Reputacji
    159
    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
    36
    Postów
    1,449
    Wątków
    35
    Siła Reputacji
    194
    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 20: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
    39
    Postów
    3,675
    Wątków
    214
    Siła Reputacji
    159
    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
    35
    Postów
    2,467
    Wątków
    38
    Siła Reputacji
    68
    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 10: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
    Siła Reputacji
    65
    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 20: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
    Siła Reputacji
    65
    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 20: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
    Siła Reputacji
    25
    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 15: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
    Siła Reputacji
    65
    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 20: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
    Siła Reputacji
    65
    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
    39
    Postów
    3,675
    Wątków
    214
    Siła Reputacji
    159
    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 ; 09.05.2007 o 23: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
  •