В данный момент есть следующее:
Код: Выделить всё
#!/bin/sh
# vars
src_dir="/mnt/srv-fs01/"
dst_dir="/data/backup/srv-fs01/full"
name=`date +%d%m%y`
# delete old backups
if [ -d $dst_dir ]
then
cd $dst_dir/
find -type f -mtime +3 -exec rm -rf {} \;
find -type d -empty -exec rm -rf {} \;
fi
#backup
if [ -d $src_dir/files ];
then
# archiving folders
mkdir $dst_dir/$name
cd $dst_dir/$name
tar czvf files.tar.gz $src_dir/files
.................
tar czvf data.tar.gz $src_dir/data
else
echo -e "\e[1;31msrv-fs01 server unavailable!\e[0m"
echo ""
fi
Но мне нужно добавить условие, чтобы не удалялись два последние архива, даже если они старше 3-х дней.
На случай, если файловый сервер-источник станет не доступен по любой причине, а т.к скрипт выполняется ежедневно, то через пару-тройку дней от бекапов не останется и следа.
Также у меня почему то не удаляются папки командой:
Код: Выделить всё
find -type d -mtime +3 -exec rm -rf {} \;
Может есть более грамотное решение?
Заранее благодарю