Mail aus Skript übernimmt keinen inhalt aus Datei
Hallo zusammen,
Ausgangspunkt:
ich überarbeite momentan ein Shell-Skript welches per rsynch Verzeichnisse von einem Mount Point in einen Anderen kopieren, eine Mail mit dem Inhalt einer info.txt (wird in den Verzeichnissen generiert) raus schicken und danach die Quell-Verzeichnisse löschen soll.
Mein Problem:
Das Skript macht soweit was es soll, aber leider kommt die Mail ohne Inhalt an. Als einzigen Output bekomme ich:
ftp-synch
Help-Sync
Das ist bestimmt was recht triviales, aber irgendwie komme ich nicht auf meinen Fehler. Vielleicht kann mir wer von euch helfen.
Grüße
Ausgangspunkt:
ich überarbeite momentan ein Shell-Skript welches per rsynch Verzeichnisse von einem Mount Point in einen Anderen kopieren, eine Mail mit dem Inhalt einer info.txt (wird in den Verzeichnissen generiert) raus schicken und danach die Quell-Verzeichnisse löschen soll.
Mein Problem:
Das Skript macht soweit was es soll, aber leider kommt die Mail ohne Inhalt an. Als einzigen Output bekomme ich:
# ./ftp-synch
recode: fopen (/mnt/destination/portal/files/__info.txt): No such file or directory
cat: /mnt/destination/portal/files/__info.txt: No such file or directory
Null message body; hope that's ok
ftp-synch
#!/bin/bash
ftpdir="/mnt/source/ftp/portal-ftp/public/files/uploaded"
startdir="$ftpdir"
rsyndir=""
filetest="__info.txt"
function rmdir() {
rm -r "$1"
}
function rsyncdir() {
/data/01_script/Help-Sync "$1"
echo "dollar1dir is = $1" >>/var/log/portal/rsync.log
}
function scandir() {
local dirname
local dirvalue
local file
for dirname in "$1"/*; do
if [ -f "$dirname" ]
then
echo "A file was found..." >>/var/log/portal/rsync.log
file=$(echo "$dirname" | cut -d"/" -f10)
echo "File have the value $file" >>/var/log/portal/rsync.log
if [ "$file" = "$filetest" ]
then
echo "The file is a "$filetest" save folder">>/var/log/portal/rsync.log
rsyndir=$(dirname "$dirname")
rsyncdir "$rsyndir"
echo "rsyncdir 1 is = $rsyncdir" >>/var/log/portal/rsync.log
fi
elif [ -d "$dirname" ]
then
echo "Found Folder "$dirname" , check if the directory is empty.">>/var/log/portal/rsync.log
dirvalue=$(ls -al "$dirname" | wc -l)
if [ "$dirvalue" -le 3 ]
then
echo "Folder "$dirname" is empty and will be deleted">>/var/log/portal/rsync.log
dir2rm="$dirname"
rmdir "$dir2rm"
echo "rmdir = $dir2rm"
else
scandir "$dirname"
echo "rsyncdir EOL is = $rsyncdir" >>/var/log/portal/rsync.log
# rsyncdir "$rsyncdir"
fi
fi
done
}
if [ -d "$ftpdir" ]
then
scandir "$ftpdir"
else
echo Error "$ftpdir" is not a directory
fi
end
Help-Sync
#!/bin/bash
echo Start rsync /mnt/source $(date) >>/var/log/portal/rsync.log
rsync -avz --remove-source-files "$1" /mnt/destination/portal/ >>/var/log/portal/rsync.log 2>>/var/log/portal/rsync.err
echo End rsync /mnt/source $(date) >>/var/log/portal/rsync.log
dir=$(echo "$1" | cut -d"/" -f7 )
recode ibmpc..u8 /mnt/destination/portal/"$dir"/__info.txt
cat /mnt/destination/portal/"$dir"/__info.txt | mail -s "Neue Datei auf Portal" name@mail.com
Das ist bestimmt was recht triviales, aber irgendwie komme ich nicht auf meinen Fehler. Vielleicht kann mir wer von euch helfen.
Grüße
Please also mark the comments that contributed to the solution of the article
Content-ID: 400147
Url: https://administrator.de/contentid/400147
Printed on: December 12, 2024 at 02:12 o'clock
5 Comments
Latest comment
Moin,
wenn ich das richtig sehen, dann löschst Du hier die Datei:
Und deshalb ist sie hier nicht mehr da:
hth
Erik
wenn ich das richtig sehen, dann löschst Du hier die Datei:
Zitat von @D1Ck3n:
Help-Sync
Help-Sync
#!/bin/bash
[...]
rsync -avz --remove-source-files "$1" /mnt/destination/portal/ >>/var/log/portal/rsync.log 2>>/var/log/portal/rsync.err
Und deshalb ist sie hier nicht mehr da:
recode ibmpc..u8 /mnt/destination/portal/"$dir"/__info.txt
cat /mnt/destination/portal/"$dir"/__info.txt | mail -s "Neue Datei auf Portal" name@mail.com
hth
Erik