我试图删除超过六天的文件,然后记录被删除的文件。
迄今为止。
在一个sh
文件中,我得到了关注;
find /home/pi/ftp/upload -type f -mtime +6 -exec rm {} +
Run Code Online (Sandbox Code Playgroud)
然后在 sudo crontab
59 23 * * * /home/pi/scripts/cullftp.sh > /var/log/ftp/`date +\%Y-\%m-\%d-\%H\%M\%S`-cull.log 2>&1
Run Code Online (Sandbox Code Playgroud)
但是当它在午夜运行时,它只会创建一个空文件,并且没有任何文件被删除。
虽然这段代码有效:
find /home/pi/ftp/upload -type f -mtime +6
Run Code Online (Sandbox Code Playgroud)
解决这个问题的最佳方法是什么。
1)确保脚本文件是可执行的,并具有适当的hashbang线(#!/bin/sh
或#!/bin/bash
或这样),但你应该得到一个错误,如果它是不可执行的。
2)find ... -exec rm
不会打印任何内容,您需要明确告诉find
也打印文件名,例如, find ... -exec rm + -print
或者find ... -delete -print
如果您find
支持-delete
.
3) 至少在 GNU find 上,-mtime +6
有一些有趣的四舍五入。它首先将时间向下舍入到全天(24 小时周期),然后查看结果时间是否严格大于 6。结果是它只匹配至少 7*24 小时前的文件。使用类似的东西-mmin +8640
会减少影响。(6 天 * 24 小时/天 * 60 分钟/小时 = 8640 分钟)
归档时间: |
|
查看次数: |
1203 次 |
最近记录: |