Я хочу использовать команду find, чтобы получить файлы старше 8640 минут и отправить результат в тело электронной почты. Я использовал этот скрипт, который делает использование файла - ATTACH_FILE - содержащий результаты команды найти:Запуск команды поиска и результатов электронной почты
#!/bin/sh
ATTACH_FILE="/pub/email_attach.txt"
WORK_DIR="/pub/"
rm -f $ATTACH_FILE
find $WORK_DIR -maxdepth 1 -name '*x.rsd' -type f -daystart -mmin +8640 -exec echo {} >> $ATTACH_FILE \;
if [ ! -z $ATTACH_FILE ]; then
FILESIZE=$(stat -c%s "$ATTACH_FILE" 2>> getLatestErr.log)
echo $ATTACH_FILE "size $FILESIZE bytes"
if [ $FILESIZE -gt 0 ]; then
cat $ATTACH_FILE | mail -s "Test "$TODAY [email protected]
fi
fi
Как я могу получить тот же результат, помещая сообщение в теле письма, не используя вспомогательный файл ПРИКРЕПИТЬ ФАЙЛ ?
Захват вывода поиска в переменной: 'FILELIST = $ (find ...)', отсутствие перенаправления вывода; используйте 'FILELIST' вместо' ATTACH_FILE' в остальном коде, удалите строки, относящиеся к файлу. Замените вычисление FILESIZE и проверьте с помощью 'if [-n" $ {FILELIST} "]; затем ' –
@Tom Regner благодарит за вашу ответственность. Если я использую FILE_LIST = $ (найти $ WORK_DIR -maxdepth 1-name '* x.rsd' -type f -daystart -mmin +8640); У меня есть все элементы в одной строке, например file1 file2 .... Как я могу разделить их на несколько строк? – famedoro
Вы использовали одно из предлагаемых решений? Есть ли еще проблемы? Немного отзыва приятно :) –