wicd не работает на файловой системе только для чтения

Я обычно делаю такое резервное копирование с помощью tar. Вот пример для вашей ситуации:

tar -czf /backup/vault-$(date -I).tar.gz vaults/*
find backup/ -type f -iname "*.tar.gz" -mtime +5 -delete

Здесь с помощью команды tar мы получаем сжатый архив резервных копий с меткой времени. Затем с помощью find мы ищем только файлы, заканчивающиеся на tar .gz в каталоге резервных копий, затем удалите их, если они старше пяти дней.

Но если вы не можете использовать tar и хотите использовать cp и find. Тогда вы уже сделали это почти правильно, но ваша находка должна быть такой:

find backup/ -mindepth 1 -maxdepth 1 -type d -iname "vaults-*" -mtime +5 -exec rm -rf {} \;

Обратите внимание на переключатели mindepth и maxdepth, со значением 1, find выводит только список каталогов резервных копий. Без них find попытается спуститься в каталог после того, как выполнит команду rm , что приведет к ошибке, как и у вас, или может также попытаться удалить родительский каталог. Также команда rm должна выполняться с опцией «-rf», чтобы она удаляла также каталоги, которые не пустые, и не пыталась при этом ничего спрашивать.

Вам также следует рассмотреть возможность использования rsnapshot для такого рода резервного копирования. Это сэкономит вам место для хранения, а также обрабатывает удаление на основе политики хранения, которую вы можете настроить самостоятельно.

1
09.09.2015, 15:53
0 ответов

Теги

Похожие вопросы