我遇到了以下问题:我正在使用远程 Ubuntu 服务器运行生成许多临时文件的应用程序/脚本。只有当我重新启动系统时才会删除这些文件,这很不方便。我希望每天自动清除系统中的临时文件,以尽可能释放磁盘空间,但仅限于那些对于运行当前应用程序/脚本来说不是立即需要的临时文件。
有没有办法做到这一点?
理想情况下,我希望使用具有以下形式的 shell 脚本(我没有测试过此代码,这只是为了显示我想要的方向):
#!/bin/bash
sudo rm -rf /tmp/*
但是上述代码会删除所有临时文件,包括脚本当前使用的文件。我该如何解决这个问题?
注意:这个问题以前已经以多种形式被问过...但并不完全是以允许我解决这个问题的方式(如果有人问过而我错过了,我深表歉意)。
答案1
您可以根据需要使用find
命令和每天运行一次或两次的命令。cronjob
每日执行的 cronjob 将是0 0 * * *
,您可以使用 find 命令说`
find /tmp/* -ctime 0 -delete
但当然您应该根据服务器的需要调整删除文件的时间。
请参见:
man find
- https://www.gnu.org/software/findutils/manual/html_node/find_html/Age-Ranges.html
- 使用这个来帮助你设置 cronjob:https://crontab.guru