Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cron 使用“查找”删除超过24小时的文件和空目录_Cron_Find_Crontab - Fatal编程技术网

Cron 使用“查找”删除超过24小时的文件和空目录

Cron 使用“查找”删除超过24小时的文件和空目录,cron,find,crontab,Cron,Find,Crontab,我有这些cron任务来管理24小时后自动删除备份 0 0 * * * cd /home/foo/backups && mkdir -p $(date +\%Y-\%m-\%d) 0,30 * * * * find /home/foo/backups -name "foo.*.sql.gz" -mmin +1440 -exec rm {} \; 0,30 * * * * find /home/foo/backups -mindepth 1 -type d -empty -delet

我有这些cron任务来管理24小时后自动删除备份

0 0 * * * cd /home/foo/backups && mkdir -p $(date +\%Y-\%m-\%d)
0,30 * * * * find /home/foo/backups -name "foo.*.sql.gz" -mmin +1440 -exec rm {} \;
0,30 * * * * find /home/foo/backups -mindepth 1 -type d -empty -delete
0,30 * * * * mysqldump -ufoo -pbar foo | gzip > /home/foo/backups/$(date +\%Y-\%m-\%d)/foo.$(date +\%Y-\%m-\%d.\%H\%M).sql.gz
我看到的是,24小时后,我会看到一个没有任何内容的/home/foo/backups文件夹,而我希望看到前一天有备份的文件夹,例如/home/backups/2013-11-20


上面的语法有什么问题?

三行中的任何一行都没有创建备份。也许你漏了一行

让我们详细分析每个命令:

0 0 * * * cd /home/foo/backups && mkdir -p $(date +\%Y-\%m-\%d)
每天0.0时,它转到
/home/foo/backups
,并以
2013-11-20
格式创建一个目录。(您也可以说
mkdir-p/home/foo/backups/$(date+\%Y-\%m-\%d)

每天0.30时,它在
/home/foo/backups
中查找早于24小时的文件
foo.*.sql.gz
。它们将被删除

0,30 * * * * find /home/foo/backups -mindepth 1 -type d -empty -delete

每天0.30时,它查找
/home/foo/backups
的空子目录。它们将被删除。

删除文件查找/您的路径-mtime-1–打印| xargs rm-f

编辑问题以添加所有cron任务,并意识到问题是按任务顺序出现的

0,30 * * * * find /home/foo/backups -mindepth 1 -type d -empty -delete

需要在删除任务运行之前创建备份,否则文件夹将为空并将被删除,备份将无法创建。哦

很抱歉,另一个cron任务创建了备份,备份已成功创建。请使用完整信息更新您的问题,否则没有必要寻求帮助。确切的问题是什么?你没有提供完整的信息是在浪费别人的时间。