LINUX.ORG.RU
решено ФорумAdmin

FreeBSD 5.4 Не удаляются файлы скриптом

 , ,


0

1

Есть фряха с постфиксом, работающим по imap.

Есть скрипт, который бэкапит почту каждую ночь. Только старые бэкапы не удаляются. Пробовал разные варианты:

find /backup/*.gz -ctime +3d -delete
find /backup/*.gz -mtime +2 -exec rm {} \;

Если выполнять руками с консоли (под рутом) - естественно, выполняется, файлф грохает. А в скрипте, то ли чего-то не хватает, то ли в ДНК ошибка...

mail# cat /home/admin/backup.sh

#!/bin/sh
tar -zcf /backup/mail-`date '+%Y-%m-%d'`.tar.gz /mail/virtual
find /backup/*.gz -ctime +3d -delete
wait
ftp -n 192.168.147.68 <<END_SCRIPT
quote USER baka
quote PASS xxxx
quote CWD /pools/A/A0/Backups
binary
delete mailback3.tar.gz
rename mailback2.tar.gz mailback3.tar.gz
rename mailback1.tar.gz mailback2.tar.gz
rename mailback.tar.gz mailback1.tar.gz
send /backup/mail-`date '+%Y-%m-%d'`.tar.gz mailback.tar.gz
quit
#zdes ne rabotaet, perestavil v nachalo
#find /backup/*.gz -mtime +2 -exec rm {} \;
#
#vtoroy variant udaleniya, toze rabotaet v konsoli, ne rabotaet v scripte
#find /backup/*.gz -ctime +3d -delete
END_SCRIPT
exit 0

Некрофил, пишите полные пути до бинарников или нормальную PATH в cron экспортируйте.

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

Оно проклятое?
mail# cat /var/cron/tabs/root

SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/:usr/bin:/usr/sbin:/usr/local/bin
HOME=/var/logs
@daily /usr/home/admin/backup.sh

autarch
() автор топика

Лучше так:

find /backup/ -type f -name "*.gz" -ctime +3d -exec rm {} \;

или так:

find /backup/ -type f -name "*.gz" -ctime +3d | xargs rm -f

ИМХО.

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

Или так:

tar -zcf /backup/mail-`date '+%Y-%m-%d'`.tar.gz /mail/virtual
wait
cd /backup
find *.gz -mindepth 0 -ctime +3d -delete
Чтобы не ругалось «relative path potentially not safe». Так, кажись, удаляется, ночью проверю.

autarch
() автор топика

Фряха 5.4 ... от это раритет :) Завидую ... А если просто из консоли запустить?

find /backup -name "*.gz" -mindepth 0 -ctime +3d

Или может так

find /backup -name "*.gz" -mindepth 0 -ctime +3d -print0

Находит файлики?

black_13
()
Последнее исправление: black_13 (всего исправлений: 1)
Ответ на: комментарий от black_13

Дык, досталось в наследство, года с 2007-го стоит жужжит постфиксом. В том и шляпа была, что с консоли находились, а со скрипта нет. Со скрипта получилось в итоге так:

cd /backup
find *.gz -mindepth 0 -ctime +3d -delete
Там много ещё забавных приколов, sendmail отчёты крона не отправлял, postgres ругается...

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