удаление файлов по crontab (crontab создает но неудалет созданные файлы)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

tigerSL
Сообщения: 8
ОС: Debian, Windows

удаление файлов по crontab

Сообщение tigerSL »

Всем привет!
Описание проблемы:
OS Debian
Написал скрипт на shell для дампа базы данных,
дамп производиться ежедневно по запуску из crontab.
Скрипт делает новый дамп в домашнюю папку пользователя,
условно назовем пользователя user, а затем должен удалять все старые дампы.
Файл crontab принадлежит пользователю user. группа crontab.
Файл скрипта расположен в домашнем каталоге пользователя user, владелец user, группа user.
Файлы дампа имеют имя состоящее из номера дня в году и некоторого буквенного префикса, например xxx150, владелец user, группа user.
При ручном запуске скрипт работает корректно, при запуске через crontab скрипт не удаляет старые дампы.
Права доступа назначал разные в том числе и 777, хотя по идее должен удалять при -rw-------.
Права доступа к каталогу куда делается дамп 777.
Вопрос.
Что делаю не так, почему скрипт не удаляет файлы ?

Благодарю за внимание
Спасибо сказали:
tigerSL
Сообщения: 8
ОС: Debian, Windows

Re: удаление файлов по crontab

Сообщение tigerSL »

Всем привет!
Описание проблемы:
OS Debian
Написал скрипт на shell для дампа базы данных,
дамп производиться ежедневно по запуску из crontab.
Скрипт делает новый дамп в домашнюю папку пользователя,
условно назовем пользователя user, а затем должен удалять все старые дампы.
Файл crontab принадлежит пользователю user. группа crontab.
Файл скрипта расположен в домашнем каталоге пользователя user, владелец user, группа user.
Файлы дампа имеют имя состоящее из номера дня в году и некоторого буквенного префикса, например xxx150, владелец user, группа user.
При ручном запуске скрипт работает корректно, при запуске через crontab скрипт не удаляет старые дампы.
Права доступа назначал разные в том числе и 777, хотя по идее должен удалять при -rw-------.
Права доступа к каталогу куда делается дамп 777.
Вопрос.
Что делаю не так, почему скрипт не удаляет файлы ?

Благодарю за внимание
Спасибо сказали:
alfss
Сообщения: 262

Re: удаление файлов по crontab

Сообщение alfss »

мы не телепаты- скрипт не видели
вообше в сторону env смотрите
Спасибо сказали:
tigerSL
Сообщения: 8
ОС: Debian, Windows

Re: удаление файлов по crontab

Сообщение tigerSL »

alfss писал(а):
06.08.2009 04:00
мы не телепаты- скрипт не видели
вообше в сторону env смотрите

В какую сторону смотреть, что там видно?

Вот скрипт
##########################################
## список баз данных host01_...
dbname=`echo "show databases"|mysql ${mysqlparam}|grep host01_`
echo $dbname
## день года для префикса файла дампа
day=`date "+%j"`
##day=`date "+%M"`
#echo "$day"
# полный путь к месту копирования и имя файла без префикса
fp=`echo "/home/host-01/mysqldump/"`
#echo "$fp"
fname=`echo "mysqldump.txt"`
#echo "$fname"
# полное имя файла с путем и префиксом
ffn="$fp$day$fname"
#echo "$ffn"
# пользователь и пароль
user=`echo "root"`
pass=`echo "password"`
#echo "$user $pass"
# делаем дамп
mysqldump -B $dbname --user="${user}" --password="$pass">"$ffn"
##chmod 664 "$ffn"
# список файлов к удалению (оставляем только сегодняшний)
remf=`ls ${fp}|grep -v "${day}"|grep -v "exe"`
# удаляем файлы
# echo $remf>/home/host-01/rem.txt
rm -f $remf
############################################
Спасибо сказали:
Аватара пользователя
korisk
Сообщения: 205
ОС: Xubuntu

Re: удаление файлов по crontab

Сообщение korisk »

tigerSL писал(а):
06.08.2009 03:50
Всем привет!
Описание проблемы:
OS Debian
Написал скрипт на shell для дампа базы данных,
дамп производиться ежедневно по запуску из crontab.
Скрипт делает новый дамп в домашнюю папку пользователя,
условно назовем пользователя user, а затем должен удалять все старые дампы.
Файл crontab принадлежит пользователю user. группа crontab.
Файл скрипта расположен в домашнем каталоге пользователя user, владелец user, группа user.
Файлы дампа имеют имя состоящее из номера дня в году и некоторого буквенного префикса, например xxx150, владелец user, группа user.
При ручном запуске скрипт работает корректно, при запуске через crontab скрипт не удаляет старые дампы.
Права доступа назначал разные в том числе и 777, хотя по идее должен удалять при -rw-------.
Права доступа к каталогу куда делается дамп 777.
Вопрос.
Что делаю не так, почему скрипт не удаляет файлы ?

Благодарю за внимание

в скрипте, исполняемом кроном все пути должны быть абсолютными
это?
Registerd Linux user #486684 at http://counter.li.org/
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: удаление файлов по crontab

Сообщение allez »

tigerSL, а зачем вы создали две одинаковых темы в одном форуме?
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: удаление файлов по crontab

Сообщение Ленивая Бестолочь »

tigerSL, создание одинаковых тем у нас на форуме запрещено правилами.
!Предупреждение от модератора
автор получает предупреждение за создание дублей.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Kreept
Сообщения: 107
ОС: Linux

Re: удаление файлов по crontab

Сообщение Kreept »

Не придумывайте велосипед, его до Вас придумали.
/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2|xargs rm -f $1 -- найти и удалить файлы которые созданы позднее чем 2 дня.
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: удаление файлов по crontab

Сообщение allez »

Kreept, xargs вовсе необязателен, find вполне достаточно:

Код: Выделить всё

/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2 -delete

Или так:

Код: Выделить всё

/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2 -exec rm -f {} \;
Спасибо сказали:
Kreept
Сообщения: 107
ОС: Linux

Re: удаление файлов по crontab

Сообщение Kreept »

allez спс, учту.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: удаление файлов по crontab

Сообщение watashiwa_daredeska »

allez писал(а):
06.08.2009 10:33
Или так:

Код: Выделить всё

/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2 -exec rm -f {} \;
Это хуже, чем xargs.
Спасибо сказали:
tigerSL
Сообщения: 8
ОС: Debian, Windows

Re: удаление файлов по crontab

Сообщение tigerSL »

korisk писал(а):
06.08.2009 08:33
в скрипте, исполняемом кроном все пути должны быть абсолютными
это?

Благодарю, возможно это.
Спасибо сказали:
tigerSL
Сообщения: 8
ОС: Debian, Windows

Re: удаление файлов по crontab

Сообщение tigerSL »

Kreept писал(а):
06.08.2009 10:23
Не придумывайте велосипед, его до Вас придумали.
/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2|xargs rm -f $1 -- найти и удалить файлы которые созданы позднее чем 2 дня.

Благодарю, не знал

allez писал(а):
06.08.2009 10:33
Kreept, xargs вовсе необязателен, find вполне достаточно:

Код: Выделить всё

/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2 -delete

Или так:

Код: Выделить всё

/usr/bin/find /home/host-01/mysqldump/ -type f -mtime +2 -exec rm -f {} \;


Благодарю

allez писал(а):
06.08.2009 09:26
tigerSL, а зачем вы создали две одинаковых темы в одном форуме?


Это случайно, новичок...
Спасибо сказали: