位置: 编程技术 - 正文
推荐整理分享设置自动清理Linux系统中n天前的文件的方法(设置自动清理缓存电脑),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:设置自动清理垃圾会不会卡,设置自动清理,设置自动清理缓存,设置自动清理桌面,设置自动清理,设置自动清理桌面,设置自动清理缓存,设置自动清理缓存,内容如对您有帮助,希望把文章链接给更多的朋友!
服务器每周会产生一次全局备份文件,大小约G左右,需要定期清理。
工作时间网站访问大,服务器I/O高的时候删除大数据会对服务器状态产生不好的影响。于是想利用计划任务自动执行。
在我的备份目录/bakcup下,每次备份文件均以日期形式命名目录名:复制代码代码如下:# ls -- -- -- -- -- -- -- -- 删除部分备份同时保留部分,可以使用find命令,如我要保留最近四周备份的文件,每次备份间隔七天:复制代码代码如下:# find /bakcup/ -maxdepth 1 -type d -mtime + /bakcup/-- /bakcup/-- /bakcup/-- /bakcup/-- -maxdepth 1:设置查找目录深度为1,只在/backup目录下查找,如不加此参数会将下级目录中的文件都列出
-type d:设置查找类型为目录
-mtime +:查找天前的目录
查找结束后可用-exec参数连接删除命令复制代码代码如下:rsync --delete-before -d /data/test/ {} ; 所以,整个命令就是:
复制代码代码如下:# find /bakcup/ -maxdepth 1 -type d -mtime + -exec rsync --delete-before -d /data/test/ {} ;
最后可以把命令放入脚本,设置crontab自动执行。
提醒:
使用命令前,应先在服务器上试用查找部分的命令,如只查找出要清理的目录,则可以继续。
不排除某些系统会将./目录查找出来,一定要看清楚,防止出现意外情况。
另外可将-exec替换为-ok,效果相同,在删除前提醒用户确认。
PS:rm命令与rsync命令的效率比较rmrm命令大量调用了lstat和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。lstat的次数低于文件总数,还有另外的原因,之后会在另一篇文章中说明。getdirentries这个调用比较关键。过程:正式删除工作的第一阶段,需要通过getdirentries调用,分批读取目录(每次大约为4K),在内存中建立rm的文件列表;第二阶段,lstat确定所有文件的状态;第三阶段,通过unlink执行实际删除。这三个阶段都有比较多的系统调用和文件系统操作。rsyncrsync所做的系统调用很少。没有针对单个文件做lstat和unlink操作。命令执行前期,rsync开启了一片共享内存,通过mmap方式加载目录信息。只做目录同步,不需要针对单个文件做unlink。另外,在其他人的评测里,rm的上下文切换比较多,会造成System CPU占用较多——对于文件系统的操作,简单增加并发数并不总能提升操作速度。
Linux下自动清理大量文件的方案探究 定期清理过期文件和垃圾文件,维持文件系统合理的空间使用率,是一个系统管理员的日常工作。对于中小规模文件系统而言,简单的系统命令或者脚
Linux系统中的screen命令基本使用教程 作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作。也许你遇到过使用telnet或SSH远程登录linux,运行一些程序。如果这些程序需
深入解析Linux下的磁盘缓存机制与SSD的写入放大问题 前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时
标签: 设置自动清理缓存电脑
本文链接地址:https://www.jiuchutong.com/biancheng/353400.html 转载请保留说明!友情链接: 武汉网站建设