好吧,我有一个运行CentOS的网络服务器,只在内部托管几个网站。这是我们的开发服务器,因此有很多[读吨]的旧垃圾网站和诸如此类的东西。
我正在尝试详细说明一个命令,该命令可以查找未被修改超过6个月的文件,将它们全部分组到tarball中然后删除它们。到目前为止,我已经尝试了许多不同类型的带有参数和诸如此类的查找命令。我们的结构看起来像这样
的/ var / WWW /的Joomla /用户名/ fileshere /温度 /无功/网络/用户名/ fileshere
所以我尝试了以下方面的内容:
find /var/www -mtime -900 ! -mtime -180 | xargs tar -cf test4.tar
当预期结果超过50 GB时,只产生10 MB的焦油。
我尝试使用gzip代替,但我最终拉链我的整个服务器因此使得无法使用,不得不转移整个文件系统并重新安装一个完整的新服务器和大量的麻烦和麻烦......你明白了。所以我想找到一个完美的命令,它不会炸毁我们的服务器,但会找到所有未被修改超过6个月的FILES和DIRECTORIES。
答案 0 :(得分:0)
试试这个:
find /var/www -ctime +180 | xargs tar cf test.tar
ctime参数告诉您当前时间与每个文件修改时间之间的差异,如果您使用+而不是减号,它将为您提供“在超过x天的日期中修改的文件”。
然后用xargs将它传递给tar,你应该设置它。
答案 1 :(得分:0)
小心ctime。
ctime与对inode所做的更改(更改权限,所有者等)有关
上次访问文件的时间(检查您的文件系统是否使用noatime或relatime选项,在这种情况下,atime选项可能无法按预期方式工作)
上次修改文件中数据的时间。
根据您的尝试,mtime选项可能是您的最佳选择。
此外,您应该检查print0选项。从男人那里找到:
-print0
True; print the full file name on the standard output, followed by a null character (instead of the newline character that -print uses). This allows file names that contain newlines or
other types of white space to be correctly interpreted by programs that process the find output. This option corresponds to the -0 option of xargs.
我不知道你想做什么,但这个命令对你有用:
find /var/www -mtime +180 -print0 | xargs -0 tar -czf example.tar.gz