Ala*_*ari 1 linux ubuntu cron date
我的 crontab 中有这个
0 3 * * * mysqldump --host=10.100.100.3 --user=username --password=mypass --routines DBName | gzip > /tmp/mysqldumps/mydb.`date +"\%Y-\%m-\%d"`.gz
现在我需要创建另一个 cron 作业来执行此场景,假设我们在 2011 年 5 月 3 日我想删除一个月前创建的文件,即。rm mydb.2011-04-03.gz
知道如何生成这个 cron 作业(如何生成要删除的文件的名称)?
您有多种选择;我推荐其中两个:
按日期删除文件(每天都会在目标目录中搜索超过一个月的文件并删除匹配项):
10 3 * * * find /tmp/mysqldumps/ -maxdepth 1 -ctime +30 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
按名称删除文件:
10 3 * * * rm /tmp/mysqldumps/mydb.`date -d "last month" +'%Y-%m-%d.gz'`
Run Code Online (Sandbox Code Playgroud)
我更喜欢前一种,因为它更健壮。此外,如果某一天由于某种原因删除 cron 作业没有运行,那么第二天前一个命令就会起作用。在我的第二个例子中,文件不会被删除。