Команда find
удалит любой обычный файл в каталоге или под ним /home/_backups/pokebrawl
, возраст которого более семи дней (или, точнее, не изменен в течение последней недели).
Стоит наверное прочитать
find "$DESDIR" -mtime +6 -type f -delete
или
find "${DESDIR:?Not set correctly}" -mtime +6 -type f -delete
так как есть отличная переменная, уже содержащая это имя каталога. Второй вариант вызвал бы ошибку, если DESDIR
по какой-либо причине был пуст или не установлен.
Я предполагаю, что это способ сохранить резервные копии только на прошлой неделе. Я бы предложил использовать что-то вроде borgbackup
или restic
вместо этого, так как они могли бы хранить резервные копии намного дольше, не занимая гораздо больше места (даже ежечасное резервное копирование в течение года не заняло бы много места вообще, если данные не сильно изменились) , Они делают дедупликацию данных и borgbackup
дополнительно поддерживают сжатие (оба поддерживают удаленное резервное копирование и шифрование тоже).
Чтобы запускать скрипт каждые 24 часа (в полночь), используйте задание cron.
Сначала выполните команду crontab -e
. Это откроет редактор с текущим crontab для активного пользователя (это может быть или не быть пустым файлом).
Затем добавьте
@daily /path/to/the/script.sh
(где path/to/the/script.sh
путь к скрипту).
Сохраните и выйдите из редактора.
Сценарий теперь будет вызываться в полночь, даже ночью.
Если вы хотите запускать скрипт, скажем, в 13:30 каждый день, добавьте в качестве записи crontab следующее:
30 13 * * * /path/to/the/script.sh
См. Руководство crontab в вашей системе для получения подробной информации о том, как написать расписание crontab ( man 5 crontab
).