Настройте Cron Job, чтобы выбрать последний файл и электронную почту - PullRequest
0 голосов
/ 11 марта 2012

Довольно простой вопрос.

У меня есть задание cron, которое ежедневно в полночь выполняет запрос mysql и выдает файл csv, скажем user_analytics_2012-03-11.csv.Поэтому каждый день создается новый файл с новой отметкой даты.

Я пытаюсь настроить новое задание cron, которое запускается после этого задания, подбирает последний файл csv и отправляет его мне по электронной почте.

Мне удалось сделать это путем жесткого кодирования имени файла, и оно отлично работает:

mutt -s "Number of users logged in" -a /tmp/user_analytics_2012-03-11.csv example@gmail.com < /tmp/message.txt

Теперь, как мне сделать эту настройку, чтобы автоматически подобрать последний файл.Большое спасибо

РЕДАКТИРОВАТЬ

Я попробовал следующее, и это, кажется, работает - это правильный путь для этого.

mutt -s "Number of users logged in" -a /tmp/user_analytics_$(date +\%Y-\%m-\%d).csv example@gmail.com < /tmp/message.txt

Ответы [ 2 ]

0 голосов
/ 11 марта 2012

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

mutt -s "Number of users logged in" -a /tmp/$(ls -t | head -n 1) example@gmail.com < /tmp/message.txt
0 голосов
/ 11 марта 2012

Если у вас установлен mailx (man mail для особенностей вашей системы):

mysql_command | mail -s "Number of users logged in" example@gmail.com

Это обходит создание файла в первую очередь.

...