LINUX.ORG.RU

script переименовки файлов и удаление старых


0

0

Debian Sarge, где cron каждую ночь запускает бэкап и создает файл "bkdata.tar.gz". После чего он переименовывается в формат даты "д.м.Г.tar.gz" и удаляется файл 2ух недельной давности вот этим скриптом:

#! /bin/sh

DATE=$(date +%d.%m.%Y)

find /backup -iname "bkdata.tar.gz" -exec mv -v {} $DATE.tar.gz \;

find /backup -iname "*.tar.gz" -mtime +14 -exec rm -fv {} \;

Возникла следующая проблема. Если запускать вручную - работает, но если поставить в cron, то он сначала переименовывает, а затем это же файл и удаляет.

В чём моя ошибка?

>find /backup -iname "bkdata.tar.gz" -exec mv -v {} $DATE.tar.gz \;

А зачем тут find, разве не известно где файл создается.

>find /backup -iname "*.tar.gz" -mtime +14 -exec rm -fv {} \;

А mtime файла свежий, может он по каким-либо причинам старше 14 дней?
Опять же почему -iname наводит на мысли о FAT32 :-)

sdio ★★★★★
()
Ответ на: комментарий от LifeWins

Именно! Но старше 14 дней. В данном случае удаляется файл с mdate того же дня...

loformat
() автор топика
Ответ на: комментарий от sdio

Дело в том, что этот файл(bkdata.tar.gz) создается для бэкапа с сетевых дисков. Для локального бэкапа создаётся другой файл, тоже tar.gz с другим названием.

loformat
() автор топика
Ответ на: комментарий от ksicom

блин, извините за гемор. я просто не указал полный путь переименованного файла... т.е. $DATE.tar.gz, a не /backup/$DATE.tar.gz

loformat
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.