Unix Cron作业-删除旧文件,但保留当月第一个月的文件
我目前正在成功运行mysql备份,并且在某些站点上,我正在使用此命令删除7天以前的文件Unix Cron作业-删除旧文件,但保留当月第一个月的文件,unix,cron,Unix,Cron,我目前正在成功运行mysql备份,并且在某些站点上,我正在使用此命令删除7天以前的文件 find /path/to/file -mtime +7 -exec rm -f {} \; 我想做的是,因为我有妄想症,仍然想要一些存档信息,删除超过31天的文件,但每个月至少维护一个文件,可能会保留在本月1日创建的任何文件 有什么想法吗?有点难看,但是您可以尝试解析ls-l rm `find /path/to/file -type f -mtime +7 -exec ls -l {} + | grep
find /path/to/file -mtime +7 -exec rm -f {} \;
我想做的是,因为我有妄想症,仍然想要一些存档信息,删除超过31天的文件,但每个月至少维护一个文件,可能会保留在本月1日创建的任何文件
有什么想法吗?有点难看,但是您可以尝试解析
ls-l
rm `find /path/to/file -type f -mtime +7 -exec ls -l {} + | grep -v ' [A-S][a-z][a-z] 1 ' | sed -e 's:.* /path/to/file:/path/to/file:g'`
或者编写一个脚本来获取列表,然后对它们一次运行一个。有点难看,但是您可以尝试解析
ls-l的输出
rm `find /path/to/file -type f -mtime +7 -exec ls -l {} + | grep -v ' [A-S][a-z][a-z] 1 ' | sed -e 's:.* /path/to/file:/path/to/file:g'`
或者编写一个脚本来获取列表,然后对它们一次运行一个。您也可以使用xargs编写一个脚本来包含如下内容:
find/path/to/files-mtime+7 | xargs-irm{}
然后将脚本添加到cron作业中您还可以使用xargs编写一个包含如下内容的脚本:
find/path/to/files-mtime+7 | xargs-irm{}
然后将脚本添加到cron作业中grep几乎是正确的,它只多了一个空间。这是可行的(至少对我来说,我使用Debian):
grep几乎是对的,它只多了一个空格。这是可行的(至少对我来说,我使用Debian):
可以使用以下命令创建文件:
SRC_DIR=/home/USB-Drive
DATE=$(/bin/date "+%4Y%2m%2d%2H%2M")
TIME_STAMP=$(/bin/date --date 'now' +%s)
TIME_CAL=$[$TIME_STAMP-2592000+25200] #last day, 25200 is my GMT+7hour
TIME_LAST=$(/bin/date --date "1970-01-01 $TIME_CAL sec" "+%4Y%2m%2d%2H%2M")
/bin/touch -t ${TIME_LAST} /tmp/lastmonth
/usr/bin/find -P -H ${SRC_DIR} ! -newer /tmp/lastmonth -type d -exec rm -r {} \;
您可以根据要删除的内容修改最后一个命令,在本例中,我要删除SRC_DIR中的子文件夹。一个多月前使用“时间属性”创建文件。您可以使用以下命令创建文件:
SRC_DIR=/home/USB-Drive
DATE=$(/bin/date "+%4Y%2m%2d%2H%2M")
TIME_STAMP=$(/bin/date --date 'now' +%s)
TIME_CAL=$[$TIME_STAMP-2592000+25200] #last day, 25200 is my GMT+7hour
TIME_LAST=$(/bin/date --date "1970-01-01 $TIME_CAL sec" "+%4Y%2m%2d%2H%2M")
/bin/touch -t ${TIME_LAST} /tmp/lastmonth
/usr/bin/find -P -H ${SRC_DIR} ! -newer /tmp/lastmonth -type d -exec rm -r {} \;
您可以根据要删除的内容修改最后一个命令,在本例中,我要删除SRC_DIR中的子文件夹。一个多月前使用了“时间属性”。似乎不起作用。它只是删除了所有超过31天的文件。似乎不起作用。它刚刚删除了所有超过31天的文件。