在我的备份脚本中,我有以下命令:
find $HOME/folha1/it/backups/ -type f -mmin +15 -exec rm -rf {} ;
他工作,但我想改变这一点。我想实现下一个场景:
当我在该目录中有5个或更多的文件时,我想删除旧的。
我不知道如何改变这一点,有了这个命令,我使用了man find,但我不太理解。
有人知道如何用find命令删除旧备份吗?
!/bin/bash
DIR="/home/teste/folha1/it/backups"
if [ -d "$DIR" ]; then
echo "Diretory Exist"
else
bash -c "mkdir -p /home/teste/folha1/it/backups/"
echo "Created Diretory"
exit 1
fi
zip -rv $HOME/folha1/it/backups/scripts$(date +%Y-%m-%d_%H:%M:%S_%N).bck.zip $HOME/folha1/it/scripts
然后我想把下一个命令找
find $HOME/folha1/it/backups/ -type f -mmin +15 -exec rm -rf {} ;
这将起作用:
TARGET_DIR=$HOME/folha1/it/backups
#Lets count how many there are
COUNT=`find $TARGET_DIR -type f -mmin +15 | wc -l`
#If there are more than 5, let's delete oldest files except newest 5
if [ "$COUNT" -gt "5" ]; then
cd $TARGET_DIR; rm `ls -t $TARGET_DIR | awk 'NR>5'`
fi