我正在编写一个与cron一起使用的小型bash脚本来备份数据库。 当我搜索旧备份(超过180天)时,find命令将删除它们。
它会删除它们,但是当它确实删除时,它都会返回0。
echo $?
{{1}}总是返回0,即使它没有删除任何内容(应该只在前几个月发生)。 有什么我做错了吗?
答案 0 :(得分:1)
好吧..这是我现在能想到的最好的解决方案:
# Delete db backup older than 180+ days
find ${BDIR} -maxdepth 1 -type f -mtime +180 -printf "%f\n" > $FDEL
if [[ $? -eq 0 && $(wc -l <"$FDEL") -gt 0 ]]; then
cd $BDIR
xargs -d '\n' -a $FDEL rm
LOG+=" - Old DB backup deleted"
else
LOG+=" - No Old DB backup to delete"
fi
rm $FDEL
我将结果打印到文件,然后移动到备份文件夹并删除列表中的每个文件。 创建的文件必须大于0字节,这意味着它不是空的,应该删除里面的内容。