我想存档所有比Xdays更早的文件。 文件在/ home / user1 /中,我想将归档文件移动到/ home / user1 / folder_backup /
我正在运行Ubuntu的服务器12
你的朋友可能是logrotate
。 创build一个my_config_file
configuration文件,其指令如下:
/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