#!/usr/bin/perl # # Alle Manpages, die kein Verweis sind (also > $MIN_BYTES Bytes oder so), # durch gzip -9 schicken. # $ENV{'PATH'}="/bin:/usr/bin"; $old_dir=`pwd`; ($name=$0) =~ s#.*/##; # get basename from $0 $MIN_BYTES=200; $count=0; $all_size=0; format STDOUT = zippe Datei @<<<<<<<<<<<< mit @||||||| Bytes $_ $t . sub filesize # return filesize of 1. parameter { my ($F)=@_; (stat($F))[7]; } sub zip_dir # zip files in dir { my ($D)=@_; my $a=0; chdir $D or die "Kann nicht in Verzeichnis $D wechseln: $!\n"; print " Bearbeite Unterverzeichnis: [$D]\n"; @FILES=<*>; foreach (@FILES) { unless ( /\.gz$/ ) { if ( ($t=&filesize($_)) > $MIN_BYTES) { print "\n" unless ($a==1); $a=1; write; # write using FORMAT system "gzip", "-f9", $_; $count++; $all_size+=$t; } } } print "\n" if ($a); chdir ".."; } # main() print "\n $name: alle Man- & Cat-Pages mit gzip -9 packen .\n"; print "\n (falls >$MIN_BYTES Byte)\n\n\n"; @MANPATH=("/usr/man/de","/usr/man","/usr/X11R6/man","/usr/TeX/man","/usr/local/man", "/usr/openwin/man","/usr/man/preformat","/usr/tex-local/man","/usr/lib/perl5/man"); foreach $P (@MANPATH) { print "\nBearbeite Man-Dir $P\n\n"; chdir $P; @ALL=<*>; foreach (@ALL) { &zip_dir($_) if (-d $_ && /(cat.)|(man.)/ ) } # falls dir -> zip it } print "\nZipped $count files with $all_size bytes at all.\n\nEnd of cronjob.\n"; chdir $old_dir;