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, то он сначала переименовывает, а затем это же файл и удаляет.

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

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

А разве в это удаление не входит $DATE.tar.gz?!
find /backup -iname "*.tar.gz" -mtime +14 -exec rm -fv {} \;

LifeWins ()

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

>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 ★★★★★ ()

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

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

loformat ()

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

Попробуй в кроне так:
* * * * * su -l root -c твоя_команда

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