因为程序需要的原因,服务器上的 A 文件夹下有过百万的小文件(绝大多数 50KB 以下)
1.inode 满了,如何在数据不变动的情况下,加 inode ?
2.A 目录下有 100 万小文件(没有子文件夹),如何编写命令,删除最后使用过的 50 万文件(不是根据文件创建日期)
1
OSDI 2020-04-19 11:01:27 +08:00 via Android 1
1. 什么文件系统
2. 如果开了访问时间元数据记录,根据它来删 |
2
unixeno 2020-04-19 11:19:24 +08:00 via Android 1
1. 把文件复制一份,然后格式化分区的时候增加 inode,最后把文件复制回来。目前没有方法动态的增加 inode 数量
2. 你要知道访问时间的话,可以直接用 find 删,不知道的话估计得先列出来,然后按访问时间排序再删 |
4
hideinbush 2020-04-19 11:45:55 +08:00 1
-newermt -mtime 分别跟具体时间和修改时间,你 Google 下呗,都有例子的
|
5
MajorAdam 2020-04-19 11:53:21 +08:00 1
2 很简单
|
6
love 2020-04-19 12:42:22 +08:00 via Android 1
这种海量小文件就不要用 ext 了,这个 fs 的文件数量是固定的,你可以用一个不限制文件数量的,比如 reisferfs
|
8
MoccaCafe 2020-04-19 14:15:44 +08:00 1
@cydian 需求 2 的命令如下:
``` find . -type f | xargs ls -ta | head -n 500000 | xargs -I {} rm {} -rf \; ``` 建议提前备份一遍,或者把上面的 rm 改成 mv |
11
hideinbush 2020-04-20 23:14:18 +08:00 via Android 1
|