Я скопировал это из записи в блоге, изучил, немного подправил и более или менее работает:
#!/bin/bash
GZ_DATE=`date +%Y%m%d`
GZ_TIME=`date +%H`
BK_PATH=/mnt/usbbk/sql
BK_FILE=$BK_PATH/$GZ_DATE-$GZ_TIME.gz
#
# Find all files older than 7 days (10080 minutes) and remove them
#
find BK_PATH* -type f -mmin +10080 -exec rm {} \;
#
# Dump and gzip export of SQL data
#
mysqldump --lock-all-tables --all-databases -u backup -p backup | gzip > $BK_FILE
Однако, похоже, он не удаляет резервные копии, которые
Вы хотели это опубликовать? Выглядит незаконченным.
Это не удаление файлов, потому что строка, которую вы ожидаете удалить, - это find
команда, которая выполняет rm
в найденных файлах - закомментирован (начинается с #
). Это игнорируется.
Раскомментировать find BK_PATH* -type f -mmin +10080 -exec rm {} \;
Я предполагаю, что в действующей версии этого скрипта находка не закомментирована (на самом деле хорошая идея - комментировать структуру find -exec rm во вставленном скрипте)?