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

Autor Wątek: Szukam osób do pomocy, nie musisz mieć umiejętności  (Przeczytany 605 razy)

Offline dawidxx7

  • Newbie
  • *
  • Wiadomości: 2
Szukam osób do pomocy, nie musisz mieć umiejętności
« dnia: Kwiecień 05, 2018, 04:40:26 pm »
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

Offline gom1

  • Sr. Member
  • ****
  • Wiadomości: 484
  • RLU #281182
Odp: Szukam osób do pomocy, nie musisz mieć umiejętności
« Odpowiedź #1 dnia: 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.
Wszędzie dobrze, ale w /home najlepiej

Offline dawidxx7

  • Newbie
  • *
  • Wiadomości: 2
Odp: Szukam osób do pomocy, nie musisz mieć umiejętności
« Odpowiedź #2 dnia: Kwiecień 25, 2018, 04:00:02 pm »
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.