我想到使用 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
呢?