Hallo erstmal
Nachdem ich seit einigen Tagen daran arbeite mir das Leben leichter zu machen und dies nun auch geschafft habe, dachte ich mir ich teile meine Arbeit mit euch, um ggf. auch euch das Leben leichte zu machen!
Kurz zusammengefasst um was es geht:
Per JDownloader speichere ich meine Downloads immer gleich auf einem share, da ich sie danach in mein Multimedia share verschoben haben möchte muss ich dies per Web-Interface machen, da Windows ja wenn man von einem share zum anderen kopiert, alles herunter lädt und dann wieder hoch. Nun hab ich mir ein Skript inkl. Cronjob erstellt das jeden Tag den Content aus den Ordnern in die richtigen Ordner im anderen share verschiebt und mir einen Report per mail zuschickt.
Anleitung
Noch kurz Vorweg wie die 2 shares aufgebaut sind:
Download
├───Raw
└───Unpacked
├───Animes
├───Filme
└───Serien
Multimedia
├───Animes
├───Filme
└───Serien
Voraussetzungen
Entware-ng um benötigte Programme zu installieren! Forum Thread
Ich empfehle nano als Texteditor aber vi geht natürlich auch, das ist dann Geschmackssache
Die coreutils-mv wird benötigt um die --verbose (-v) und -n funktion vom mv Command nutzen zu können. (Um die Aktion zu Loggen)
Move
#!/bin/shdate=$(date +'%a %d %b %Y %H:%M:%S') #Datum im Format Thu 28 Jul 2016 21:20:27if [ "$1" = "m" ]; then count=$(ls -l /share/Download/Unpacked/Filme | grep -v ^l | wc -l) if [ $count != "0" ]; then #Nur verschieben wenn Dateien zum verschieben im Ordner sind mv -vn /share/Download/Unpacked/Filme/* /share/Multimedia/Filme | tr ’ " " | tr ‘ " " > /tmp/moves while read move; do echo [$date] "Movie: "$move done < /tmp/moves rm /tmp/moves else echo [$date] "Movie: No Files to Move!" fielif [ "$1" = "s" ]; then count=$(ls -l /share/Download/Unpacked/Serien | grep -v ^l | wc -l) if [ $count != "0" ]; then mv -vn /share/Download/Unpacked/Serien/* /share/Multimedia/Serien | tr ’ " " | tr ‘ " " > /tmp/moves while read move; do echo [$date] "Series: "$move done < /tmp/moves rm /tmp/moves else echo [$date] "Series: No Files to Move!" fielif [ "$1" = "a" ]; then count=$(ls -l /share/Download/Unpacked/Animes | grep -v ^l | wc -l) if [ $count != "0" ]; then mv -vn /share/Download/Unpacked/Animes/* /share/Multimedia/Animes | tr ’ " " | tr ‘ " " > /tmp/moves while read move; do echo [$date] "Anime: "$move done < /tmp/moves rm /tmp/moves else echo [$date] "Anime: No Files to Move!" fielse echo [$date] "Move failed!"fi
Das move.sh Skript wird mit einem Parameter aufgerufen der die Art der zu verschiebenden Files angibt, um den im richtigen Ordner zu landen.
Ihr müsst um eine Benachrichtigungsmail einrichten um das Mail Skript nutzen zu können. --> Extern verlinktes Bild entfernt! Der Grund!
#!/bin/sh#Hole die Informationen der BenachrichtigungsemaileinstellungSENDER=$(/sbin/getcfg Alert "Sender")USER=$(/sbin/getcfg Alert "Alert Mail")NAS_NAME=$(/sbin/getcfg System "Server Name")SUBJECT=$1" Move Report from "$NAS_NAMEDATE=$(date)echo "From: $SENDER" >> /tmp/movereport.daily.$$echo "To: $USER" >> /tmp/movereport.daily.$$echo "Subject: $SUBJECT" >> /tmp/movereport.daily.$$echo "" >> /tmp/movereport.daily.$$cat /var/log/moviemove.log >> /tmp/movereport.daily.$$cat /var/log/seriesmove.log >> /tmp/movereport.daily.$$cat /var/log/animemove.log >> /tmp/movereport.daily.$$/usr/sbin/sendmail $USER < /tmp/movereport.daily.$$rm /tmp/movereport.daily.$$
Crontab
Zu guter Letzt noch der Cronjob.
Mit einem Texteditor die /etc/config/crontab bearbeiten.
Anleitungen wie ein Cron aufgebaut ist gibt es zur hauf! Hier ein Calculator: Link
15 20 * * * /share/Download/SCRIPTS/move.sh m > /var/log/moviemove.log && cat /var/log/moviemove.log >> /var/log/move.log15 20 * * * /share/Download/SCRIPTS/move.sh s > /var/log/seriesmove.log && cat /var/log/seriesmove.log >> /var/log/move.log15 20 * * * /share/Download/SCRIPTS/move.sh a > /var/log/animemove.log && cat /var/log/animemove.log >> /var/log/move.log20 20 * * * /share/Download/SCRIPTS/sendreport.sh [REPORT]
Dannach nur noch den Cron service neustarten:
Hoffe irgendjemandem bringt das was
Lg
_schni