Ok, das Problem hat mir keine Ruhe gelassen, also hab ich noch weiter gebastelt (du Glückspilz )
Es gibt zwei Probleme, ein einfaches, nämlich das cd. Die Schleife gibt keine absoluten Pfade, sondern nur relative Pfade an. Nach dem cd passen die dann natürlich nicht mehr. Du kannst also entweder den alten cwd speichern und daraus in jedem Schleifendurchlauf den absoluten Pfad bauen oder du übergibst wput einfach die gleichen relativen Pfade wie Handbrake.
Das zweite Problem war komplizierter. "find" schreibt die Dateipfade in pipe und "while read" liest davon die einzelnen Dateinamen. Das Problem ist nun, dass Handbrake auch aus der pipe liest. Nach dem Handbrake Aufruf ist die pipe dann leer und die Schleife endet. Das kann man beheben, indem man Handbrake eine eigene leere pipe zum lesen gibt.
Während meiner Bastelei habe ich beide Scripten auch mal zusammengeführt zu einem und ein paar "Verschönerungen" dazugepackt, vielleicht magst du das ja lieber.
Ich hoffe das Problem ist damit gelöst.
Es gibt zwei Probleme, ein einfaches, nämlich das cd. Die Schleife gibt keine absoluten Pfade, sondern nur relative Pfade an. Nach dem cd passen die dann natürlich nicht mehr. Du kannst also entweder den alten cwd speichern und daraus in jedem Schleifendurchlauf den absoluten Pfad bauen oder du übergibst wput einfach die gleichen relativen Pfade wie Handbrake.
Das zweite Problem war komplizierter. "find" schreibt die Dateipfade in pipe und "while read" liest davon die einzelnen Dateinamen. Das Problem ist nun, dass Handbrake auch aus der pipe liest. Nach dem Handbrake Aufruf ist die pipe dann leer und die Schleife endet. Das kann man beheben, indem man Handbrake eine eigene leere pipe zum lesen gibt.
Code:
echo "" | HandbrakeCLI ...
Während meiner Bastelei habe ich beide Scripten auch mal zusammengeführt zu einem und ein paar "Verschönerungen" dazugepackt, vielleicht magst du das ja lieber.
Ich hoffe das Problem ist damit gelöst.
Code:
#!/bin/bash
src_dir="$1"
prefix="$2"
dst_dir="/media/freigaben/uploads"
find "$src_dir" -name "${prefix}*" -print0 | while read -d $'\0' f
do
base_name="$(basename "$f")" && base_name="${base_name%.*}"
echo "" | HandBrakeCLI -i "$f" -o "${dst_dir}/${base_name}.mp4"
7z a -mx=9 -v100m "${dst_dir}/4ftp/${base_name}.7z" "${dst_dir}/${base_name}.mp4"
wput -nd "${dst_dir}/4ftp/${base_name}.7z*" ftp://domain.com
done
Zuletzt bearbeitet: