das Skript

#!/usr/bin/perl -w                                                                                                                                                               
                                                                                                                                                                                 
                                                                                                                                                                                 
use File::Basename ;                                                                                                                                                             
                                                                                                                                                                                 
sub usage () {                                                                                                                                                                   
        print "\n                                                                                                                                                                
# 16.Juli 2015\n                                                                                                                                                                 
# Das Skript soll ab dem einem festzulegenden Pfad alle Unterverzeichnisse durchsuchen\n                                                                                         
# und für jedes gefundene Bild ein weiteres Bild im HD Format erzeugen/umwandeln\n                                                                                               
# Grund: das muss vom Fernseher/Bildschirm nicht mehr umgerechnet werden\n                                                                                                       
# (das würde bei einem 24-Mega-Pixel Bild einfach zu lange dauern\n                                                                                                              
\n                                                                                                                                                                               
# Ablauf\n                                                                                                                                                                       
# Bilder finde\n                                                                                                                                                                 
# schauen ob es schon ein HD Bild gibt (für die HD Bilder habe ich ein eigens Verzeichnis -lokal-, das läss\n                                                                    
# sich leichter auf den Server syncronisieren\n                                                                                                                                  
# wenn nein: erstellen - syncronisieren/kopieren - an der ursprünglichen Stelle lösche\n                                                                                         
\n                                                                                                                                                                               
# fehlt: die HD-Bilder auf den Server via rsync überage\n                                                                                                                        
                                                                                                                                                                                 
  YES - am Ende -> ergibt keine Nachfrage ob weitergemacht werden soll -alle 100 Bilder\n                                                                                        
#--------------------------------------------\n                                                                                                                                   
   Beispiel:  $0 /home/markus/Bilder [YES]\n$0 .\n
#--------------------------------------------\n" ;

        exit 0 ;
}

if ($ARGV[ 0 ] eq "") {
        usage () ;
}
my $dasVerzeichnis=$ARGV[0] ;
if ( ! -d "$dasVerzeichnis" ) { die "Parameter 1 ($dasVerzeichnis) ist kein Verzeichnis!\nABBRUCH..." ; }
print "# -----------------\n Verzeichnis: $dasVerzeichnis\n # --------------------------\n" ;

my $nichtAnhalten=0 ;
if ($ARGV[ 1 ] eq "YES") { $nichtAnhalten=1; }

# ----------- PARAMETER  ---------------------- #
## hier sollte soweit nix zu tun sein. Das Verzeichnis wird als Parameer 1 mitgegeben
#my $dasVerzeichnis="/home/markus/Bilder" ;
#my $dasVerzeichnis="/usr" ;
my $ZielVerzeichnis="$dasVerzeichnis/HD-Bilder" ;
my $Erkennung=".HD.jpg" ;

# -------------------------------------------- #
print "find $dasVerzeichnis -type f -name \"*.[jJ]*[pP][gG]\n\"" ;
my @files = grep { !/^\.\.?$/ } `find $dasVerzeichnis/ -type f -name "*.[jJ]*[pP][gG]" | grep -v '$ZielVerzeichnis'|grep -v thumbs` ;
my $origFile ;
my $origHDFile ;
my $dirName ;
my $ii=0 ;
my $jj=0 ;
my $kk=0 ;
my $mm=0 ;

foreach $file(@files) {
        chomp $file ;
        print "# -----------------------------\n$mm von $#files = $file \n# -----------------------------\n" ;
        # Name der Zieldatei: Zielverzeichnis + um das Suchverzeichnis gekürzte Pfad + Ergänzung um Erkennung
        $origHDFile = $ZielVerzeichnis.substr($file,length($dasVerzeichnis)) ;
        $origHDFile =~s/\.[jJ]*[pP][gG]/\.HD\.jpg/ ;
        $dirName = dirname($origHDFile) ;

        if ( !-e "$origHDFile" ) {
                $jj++ ;
                # wenn keine Ziel-HD-Datei existiert wird eine Original-HD-DAtei mit der Endung .HD erzeugt
                system("convert -verbose -scale 1920x1080 \"$file\" \"$file.HD\"") ;
                # Verzeichnis im HD-Folder anlegen. dazu muss erstmal aus dem origHDFile der DAteiname entfernt werden
                system("mkdir -vp \"$dirName\"") ;
                # diese .HD Datei wird dann via rsync kopiert
                system("rsync -av \"$file.HD\" \"$origHDFile\"" ) ;
                # nach dem sync - Original.HD löschen
                system("rm -fv \"$file.HD\"") ;
        } else {
                $kk++ ; #print "vorhanden: $origHDFile\n" ;
                print "bereits vorhanden: $origHDFile\n" ;
        }
        $mm++ ;
        $ii++ ;
        if ( "$nichtAnhalten" == "1" ) { $ii=1 ; }
        if ( $ii > 100 ) {
                print "Sicherheitsabfrage:\n";
                print "Wollen sie weitermachen? (J/N)" ;
                $dieAntwort = <STDIN>;
                if (uc (substr($dieAntwort,0,1)) ne "J") { die "Abbrechen gedrückt!\n" ; exit 1 ;}
                $ii=1 ;
        print "DEBUG: ii=$ii\n" ;
        }
}
print "\n# -----------------------------\nFertig. Es wurden $mm Dateien gefunden.\nneu erzeugte HD-Bilder: $jj\nvorhandene Bilder: $kk\n\n" ;

# --- EOF --- #

 

cronjobs:

# aus den vorhandenen Bildern HD-Bilder für den SErver generieren
59 20 * * * HD-Bilder-erstellen.pl /home/derUser/Bilder YES

# die HD-Bilder auf den Server bringen
17 21 * * * rsync --delete -ave ssh ~/Bilder/HD-Bilder/* derServer:/media/usb0/Bilder/
# derServer: ist ein Eintrag der über /etc/hosts auf die IP-Adresse gemappt wird.