Поместить MAILTO=root
в /etc/default/cron
. Этот файл содержит настройки по умолчанию крона.
man 5 crontab
говорит,
Если MAILTO определяется (и непустой), почта отправляется пользователю, так названному.
Относитесь: http://man.cx/cron (1) #heading4
find 'basics_mini' -type f |
sed 's/.*basics_mini\///' |
sort -t '/' -k1nr -k2nr -k3nr -k4nr |
head -1
Это найдет файлы в Вашем резервном каталоге, затем sed
разделит ведущий путь (вплоть до Вашего year
dir). Затем вид разделит путь на '/' и выполнит числовой вид на поле 1, 2, 3 и 4, т.е. год, месяц, день и время. Наконец, head -1
возвратит верхнюю строку вывода.
Конечно, это только возвратит 1 файл, даже если было несколько идентичных новейших записей (если это - беспокойство о Вас).
находка должна удовлетворить Вашим потребностям:
find "/path/to/backup_dir" -type f|sort -r|head -n1
Это только работает, если Вы имеете (как в Вашем примере), продвижение обнуляет на Ваших папках месяца и дня
Если Вы хотите резервное копирование с определенным именем файла (или шаблон) добавляют шаблон имени к параметрам находки, например.
find "/path/to/backup_dir" -type f -name "*db2inst1*"|sort -r|head -n1
... или используйте -iname
для нечувствительных к регистру шаблонов
Теперь к деталям вышеупомянутых команд:
find "/path"
рекурсивно перечисляют все файлы/директора в данном пути (если Вы не используете дальнейшую фильтрацию:-type f
параметр находки отфильтровывает все, что это не регулярный файл),-name
или -iname
файлы соответствия согласно определенному шаблонуsort
сортирует вывод в обратном порядке (-r
)head -n1
только печатает первую строку (-n 1
) из его входа и сразу выходит после выполнения этого.С этой схемой именования новое резервное копирование находится в последнем подкаталоге в лексикографическом порядке. Можно получить новый каталог непосредственно в оболочке, использовав в своих интересах то, что подстановочные знаки расширены в лексикографическом порядке.
cd basics_mini
set [0-9][0-9][0-9][0-9]/*/*/*
shift $(($#-1))
echo "The most recent backup is in $1"
В zsh можно непосредственно получить последний каталог со спецификатором шарика.
echo "The most recent backup is in" basics_mini/[0-9][0-9][0-9][0-9]/*/*/*([-1])
Мое решение состояло бы в том, чтобы использовать это. Это произведет новейший возможный файл:
ls -lcR --full-time | grep '^-' | sort -k 6 -r | head -n 1
Объяснение:
ls -lcR
-l
используйте длинный формат списка
-c
покажите ctime (время последнего изменения информации о статусе файла)
-R
подкаталоги списка рекурсивно
grep
для файлов, запускающихся с a -
(тире), означая 'регулярные файлы'.
sort -k 6 -r
-k
Вид столбцом n (6, поскольку это содержит поле даты),
-r
Обратный
head -n1
-n
количество строк для отображения (от вершины вниз. 1)
find -maxdepth 1 -type ['d' for directory or 'f'for file] | ls -t | head -1 ..
Это должно сработать.