dassouki Asked: 2010-11-02 07:00:21 +0800 CST2010-11-02 07:00:21 +0800 CST 2010-11-02 07:00:21 +0800 CST 设置一个自动从文件夹中删除特定文件的服务 772 我有一个连接到硬件天气记录器的文件夹。数据非常庞大,我只希望保留最后 5 小时的数据。这个文件夹;但是,也有一些配置文件,例如 myconfig.ini。 如何设置自动删除文件夹中所有文件的自动服务,只保留几个? automation bash 5 个回答 Voted Best Answer Oli 2010-11-02T07:36:09+08:002010-11-02T07:36:09+08:00 将find命令添加到 cron 对您有用吗? find /path/ -type f -mtime +5 -name '*.log' 您可以叠加额外的东西来找到您想要的文件。-mtype是日期限制部分,用于查找最后一次修改时间超过 5 天的文件。您可以将其更改为仅查看创建时间甚至访问时间(如果您没有noatime在 fs 上使用) 当您获得正确的文件时,请坚持-exec rm {} \;到底。您可以使用-delete,但如果您一次删除太多文件,那将会崩溃。只有在确定后才这样做! 当您要安排它时,su进入正确的用户帐户(拥有文件的人),然后运行crontab -e. 然后你可以写出命令,当你退出时,它会按照你设置的时间表运行。您可以在此处阅读有关 cron 的更多信息: https://help.ubuntu.com/community/CronHowto mgunes 2010-11-02T07:25:53+08:002010-11-02T07:25:53+08:00 您可以使用logrotate. 它是默认安装的;检查手册页以获取说明。 nathwill 2010-11-02T07:27:48+08:002010-11-02T07:27:48+08:00 这应该删除在最后一天内修改的任何内容。我建议将它放在每日 cronjob 中。请务必在实施之前进行测试......并记住,由于它在修改日期之前对文件起作用,因此它不是特定于文件的(即,如果您修改 myconfig.ini,下次运行它可能会杀死您的 myconfig.ini . find /directory_path -type f -mtime -1 -exec rm{} \; 这显然有一些缺点,但它至少可能是一个好的开始。 C.J. Steele 2010-11-02T07:45:20+08:002010-11-02T07:45:20+08:00 Red Hat/Fedora/Cent 有一个漂亮的小脚本tmpwatch,你可以很容易地把它拉到 Ubuntu。 outofstep 2010-11-02T09:15:26+08:002010-11-02T09:15:26+08:00 采取稍微不同的策略:为什么不设置一个 5 小时频率的作业来重命名当前集合目录并创建一个新的当前集合目录?您可以手动或自动处理/归档/删除各个 5 小时目录。
将
find
命令添加到 cron 对您有用吗?您可以叠加额外的东西来找到您想要的文件。
-mtype
是日期限制部分,用于查找最后一次修改时间超过 5 天的文件。您可以将其更改为仅查看创建时间甚至访问时间(如果您没有noatime
在 fs 上使用)当您获得正确的文件时,请坚持
-exec rm {} \;
到底。您可以使用-delete
,但如果您一次删除太多文件,那将会崩溃。只有在确定后才这样做!当您要安排它时,
su
进入正确的用户帐户(拥有文件的人),然后运行crontab -e
. 然后你可以写出命令,当你退出时,它会按照你设置的时间表运行。您可以在此处阅读有关 cron 的更多信息:https://help.ubuntu.com/community/CronHowto
您可以使用
logrotate
. 它是默认安装的;检查手册页以获取说明。这应该删除在最后一天内修改的任何内容。我建议将它放在每日 cronjob 中。请务必在实施之前进行测试......并记住,由于它在修改日期之前对文件起作用,因此它不是特定于文件的(即,如果您修改 myconfig.ini,下次运行它可能会杀死您的 myconfig.ini .
这显然有一些缺点,但它至少可能是一个好的开始。
Red Hat/Fedora/Cent 有一个漂亮的小脚本
tmpwatch
,你可以很容易地把它拉到 Ubuntu。采取稍微不同的策略:为什么不设置一个 5 小时频率的作业来重命名当前集合目录并创建一个新的当前集合目录?您可以手动或自动处理/归档/删除各个 5 小时目录。