watch 命令每 N 秒删除目录中的文件

watch 命令每 N 秒删除目录中的文件

我想到使用 watch 命令每 N 秒删除一个目录中的文件,并且该命令在后台运行。

这就是我打算使用的:

nohup watch -n1200 rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013* &

它有效,但是当我看到正在运行的进程时,它会显示以下输出 -

[root@Free-Radius 8.44.25.17]# ps -aef | grep watch
root     27326 10649  0 15:23 pts/0    00:00:00 watch -n1200 rm -rf /var/log/radius/radacct/8.44.25.17/detail-20130816
root     27404 10649  0 15:24 pts/0    00:00:00 grep watch

现在明天会有一个新文件detail-20130817,不会被删除。有没有办法使用 watch 命令来实现它。我知道使用简单的 bash 脚本或 cron 作业可以轻松完成,但只是想知道是否可以使用 watch 来完成。

答案1

如果使用watch命令 from procps(启动 shell 来解释由其参数串联而成的命令行),请使用:

nohup watch -n1200 'rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013*' &

对于其他一些实现,您可能必须手动调用 shell:

nohup watch -n1200 sh -c 'rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013*' &

为什么不使用cron呢?

相关内容