crontab -e:
Там 30 13 * * * /home/backup/delete.sh bitmirpack /home/backup >> /tmp/debug_cron 2>&1
скрипт delete.sh
#!/bin/bash
SAVE_LIMIT=2
kernel_name=$1
backup_dir=$2
# clean old backup
clean_old_backup_files(){
LIMIT_DAYS=$(date -d "$SAVE_LIMIT day ago" +%d.%m.%Y)
TAR_OLD=$(find $backup_dir -name "www_backup_${kernel_name}_${LIMIT_DAYS}.tar.gz" | wc -l)
if [[ $TAR_OLD -gt 0 ]]; then
rm -f "www_backup_${kernel_name}_${LIMIT_DAYS}.tar.gz"
fi
SQL_OLD=$(find $backup_dir -name "mysql_dump_${kernel_name}_${LIMIT_DAYS}.sql" | wc -l)
if [[ $SQL_OLD -gt 0 ]]; then
rm -f "mysql_dump_${kernel_name}_${LIMIT_DAYS}.sql"
fi
SQL_AFTER_CONNECT_OLD=$(find $backup_dir -name "mysql_dump_${kernel_name}_${LIMIT_DAYS}_after_connect.sql" | wc -l)
if [[ $SQL_AFTER_CONNECT_OLD -gt 0 ]]; then
rm -f "mysql_dump_${kernel_name}_${LIMIT_DAYS}_after_connect.sql"
fi
}
clean_old_backup_files
Содержимое папки(права, владельцы файлов):
-rw-r--r-- 1 root root 44 Sep 9 11:18 mysql_dump_bitmirpack_07.09.2019_after_connect.sql
-rw-r--r-- 1 root root 435986705 Sep 9 11:18 mysql_dump_bitmirpack_07.09.2019.sql
-rwxr--r-- 1 root root 873 Sep 9 13:21 delete.sh
-rw-r--r-- 1 root root 2180485120 Sep 9 11:21 www_backup_bitmirpack_07.09.2019.tar.gz
Сегодня 09.09.2019, а значит в результате должны быть удаленны файлы 07.09.2019, но как и описано в теме задачи, выполняется удаление только если запустить через консоль. В /tmp/debug_cron пусто.