Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Szukam osób do pomocy, nie musisz mieć umiejętności

Zaczęty przez dawidxx7, Kwiecień 05, 2018, 04:40:26 PM

Poprzedni wątek - Następny wątek

dawidxx7

Witam, mam nietypową prośbę. Otóż pracuję nad algorytmem kompresji losowych danych. Wiem, że takie dane trudno skompresować. Napisałem, krótki skrypt w bashu, który tworzy losowy plik i go kompresuje. Gdy po skompresowaniu uda się uzyskać rozmiar mniejszy niż przed kompresją to skrypt zapisuje wszystko do pliku wyniki.tar i kończy działanie. Skrypt tworzy również swoje tymczasowe pliki, których prosiłbym nie usuwać. Szczególnie pliku proba.dat gdzie przechowywana jest ilość wykonanych prób. Gdy usuniemy ten plik to skrypt zaczyna liczyć próby od początku przez co zaburza się statystykę. Moja prośba jest taka. Jeśli jest ktoś chętny pomóc to niech odpali ten skrypt. Działający skrypt pobiera trochę mocy procesora więc odpalcie go gdy nie używacie komputera. I żeby wam nie przegrzać komputera to możecie odpalić ten skrypt na jakąś godzinkę czy dwie. Więcej nie trzeba, mam nadzieję, że jeśli sporo osób to odpali to nawet kilkadziesiąt minut na osobę wystarczy by znaleźć plik z losowymi danymi, który się skompresuje do mniejszego rozmiaru. Jeśli komuś skrypt znajdzie taki taki plik to proszę by utworzony plik wyniki.tar wysłać mi w jakiś sposób.
Byłbym bardzo wdzięczny za pomoc. Dziękuję.

Niestety nie widzę opcji dodania załącznika (może dlatego, że jestem nowy) więc wklejam kod skryptu. zapiszcie to do pliku .sh i odpalcie.
#!/bin/bash

# ⓒdawidxx7

if [ -f "proba.dat" ]
then
  read proba <"proba.dat"
  if [ $(stat -c%s "proba.dat") -lt 2 ]
  then
    proba=0
  fi
else
  proba=0
fi

licznik=0

while true
do

for((s=1000; s<=100000; s*=10))
do
  dd if=/dev/urandom of=sampleSiz$s.txt bs=$s count=10
  tar -cjvf zippedSiz$s.tar.bz2 sampleSiz$s.txt
  proba="$( BC_LINE_LENGTH=0 bc <<< "$proba + 1")"
  ((licznik++))
  if [ $licznik -gt 100 ]
  then
    echo $proba > proba.dat
    licznik=0
  fi
 
  if [ $(stat -c%s "sampleSiz$s.txt") -gt $(stat -c%s "zippedSiz$s.tar.bz2") ]
  then
  echo -ne "nieskompresowany: sampleSiz$s.txt o rozmiarze: $(stat -c%s "sampleSiz$s.txt") skompresowany: zippedSiz$s.tar.bz2 o romiarze $(stat -c%s "zippedSiz$s.tar.bz2") s=$s proba: " >> wynik.txt
  echo $proba >> wynik.txt
  tar -cvf wyniki.tar zippedSiz$s.tar.bz2 sampleSiz$s.txt proba.dat wynik.txt tester.sh
  exit
  fi
done

done

gom1

Trzy dni i ponad milion prób - bez efektu:

gom1@debian:~/temp$ uptime
10:04:46 up 3 days, 18:25, 1 user,  load average: 1,53, 1,46, 1,41
gom1@debian:~/temp$ cat proba.dat
1075751


Niestety bez efektu. Chciałem pomóc, przykro mi.
Wszędzie dobrze, ale w /home najlepiej

dawidxx7

Cytat: gom1 w Kwiecień 13, 2018, 10:08:03 AM
Trzy dni i ponad milion prób - bez efektu:

gom1@debian:~/temp$ uptime
10:04:46 up 3 days, 18:25, 1 user,  load average: 1,53, 1,46, 1,41
gom1@debian:~/temp$ cat proba.dat
1075751


Niestety bez efektu. Chciałem pomóc, przykro mi.
ok, dzięki wielkie za zaangażowanie.

Zobacz najnowsze wiadomości na forum