Как сказать Mut отправить все файлы, но не сегодняшний файл? - PullRequest
0 голосов
/ 30 апреля 2018

Как сказать mut, прикрепите все * .csv файлы, но не текущий активный csv-файл, в котором по-прежнему работает приложение, работающее на фоновом режиме ..

Actuall Script:

mutt -s "$(date -d 'now' +%Y_week%V)" -a /var/log/app/*.csv -- example@example.com

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2018

Если имена файлов отсортированы правильно (то есть все они имеют формат yyyy-mm-dd.csv), вы можете сделать что-то вроде:

mutt -s "$(date -d 'now' +%Y_week%V)" -a $(find /var/log/app/ -maxdepth 1 -name \*\.csv | sort -r | sed '1d') -- example@example.com

Это позволит отсортировать имена файлов с самыми последними сверху, а вызов sed отбрасывает верхнее. Это будет работать, только если вы уверены, что сегодняшний файл уже существует. Если это не так, вы пропустите вчерашний.

Если вам нужно, чтобы это работало, даже если сегодняшнего файла еще нет, вы можете сделать:

mutt -s "$(date -d 'now' +%Y_week%V)" -a $(find /var/log/app/ -maxdepth 1 -name \*\.csv | grep -v "$(date +%Y-%m-%d.csv)") -- example@example.com

Вам, конечно, нужно изменить вызов $(date +%Y-%m-%d.csv), чтобы сгенерировать имя файла, которое вы пытаетесь исключить, если оно находится в другом формате.

...