cron作业归档比xyz天更旧的文件

我想存档所有比Xdays更早的文件。 文件在/ home / user1 /中,我想将归档文件移动到/ home / user1 / folder_backup /

我正在运行Ubuntu的服务器12

你的朋友可能是logrotate 。 创build一个my_config_fileconfiguration文件,其指令如下:

 /home/user1/ { olddir /home/user1/folder_backup } 

然后在你的crontab中调用logrotate my_config_file

你可能应该拿一杯咖啡做一个man logrotate 。 它可以处理压缩,旋转和厨房水槽。 这真的是这种任务的标准。

如果你真的需要对天数有精确的控制,比如10,那么你可以使用天真的find /home/user1 -mtime +10 -exec mv {} /home/user1/folder_backup/ \; 但是这不会处理所有会popup的相关问题(文件翻转,旋转等)。

如果您要编写自己的脚本,通常的做法是获取每个文件的最后修改时间(以unix时间),将该信息放在一个数组(modtime-filename)中,然后开始移动要归档的数据。

例如,如果现在的时间是1372174701,并且您想要存档超过一周的文件,那么您将移动所有修改时间满足以下条件的文件:

修改时间<1372174701 – 604800