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
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.
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.