Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
useful:encryption:randfs [2009/01/05 15:05] chemistuseful:encryption:randfs [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-if you are the author of this script please let me know (I forgot to link you down) 
  
-**randfs /mnt/file** 
-<code perl> 
-#!/usr/bin/perl 
- 
-use strict; 
-use warnings; 
-use IO::File; 
- 
-$|=1; 
- 
-my $file; 
- 
-sub randomString(){ 
- my $fetch=(int(rand(512))+512)*20480; 
- my $data=''; 
- my $packet; 
- my $fh=new IO::File('/dev/urandom','r') 
- || die("Unable to open /dev/urandom: $!\n"); 
- binmode($fh); 
- while(length($data) < $fetch){ 
- printf("\rGenerating %d bytes urandom string... %d%%",$fetch,(length($data)*100/$fetch)); 
- read($fh,$packet,8192); 
- $data.=$packet; 
- } 
- $fh->close(); 
- printf("\rGenerating %d bytes urandom string... done\n",$fetch); 
- return($data); 
-} 
- 
-sub fillDisk($){ 
- my $string=shift; 
- my $written=0; 
- my $size=length($string); 
- my $started=time; 
- my $mbytes; 
- $SIG{TERM}=$SIG{INT}=sub{ 
- print("\n"); 
- removeFile(); 
- exit(1); 
- }; 
- my $fh=new IO::File($file,'w') 
- || die("Unable to open $file: $!\n"); 
- binmode($fh); 
- while(print($fh $string)){ 
- $written+=$size; 
- $mbytes=$written/1048576; 
- printf("\rWriting growing file to disk... %d MB (%d MB/s)   ",$mbytes,($mbytes/((time-$started)||1))); 
- } 
- $fh->close(); 
- print("\n"); 
-} 
- 
-sub syncDisk(){ 
- print('Writing cached data to disk... '); 
- system('/bin/sync'); 
- print("done\n"); 
-} 
- 
-sub removeFile(){ 
- print('Removing the growing file from disk... '); 
- unlink($file); 
- system('/bin/sync'); 
- print("done\n"); 
-} 
- 
-sub showUsage(){ 
-print(<<__EOF); 
-This programm will generate a urandom string of 10 to 20 MBytes, 
-repeatedly write this into the given file until writing becomes impossible 
-and remove the file from disk. 
- 
-The given file must NOT exist! 
- 
-Usage: $0 <filename> 
- 
-__EOF 
- exit(1); 
-} 
- 
-sub main(){ 
- $file=$ARGV[0]; 
- print("Randomize Free Space, (C)2006 Veit Wahlich <cru at zodia dot de>\n\n"); 
- unless(defined($file) && $file=~/^[^\-]/ && not(-e $file)){ 
- showUsage(); 
- } 
- fillDisk(randomString()); 
- syncDisk(); 
- removeFile(); 
- exit(0); 
-} 
- 
-main(); 
-1;</code> 
Last modified: le 2009/01/05 15:05