我想获取特定目录中所有目录的大小。我在想像
find . -type d -exec du -sh {} \;
Run Code Online (Sandbox Code Playgroud)
但这会递归地返回所有目录。如何限制深度?
我在 DigitalOcean 上运行的 Ubuntu Web 服务器上的磁盘空间似乎已满。我已经找到并删除了大日志文件并重新启动了 Nginx。不过,看起来还是有问题。
df显示它仍然是满的:
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 47G 22M 100% /
Run Code Online (Sandbox Code Playgroud)
但du显示它尚未满:
$ du -shx /
3.2G /
Run Code Online (Sandbox Code Playgroud)
我需要做什么来解决这个问题?
这是我尝试过的:
[demo@ ~]# ll /usr/local/apache2/logs/|xargs |du -hm -
du: cannot access `-': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我想查看每个文件在m单元中占用的空间量。
如何以正确的方式做到这一点?
df 的输出是:
[root@backup log]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGro 1889811408 1861658948 0 100% /
/dev/sda1 101086 16235 79632 17% /boot
tmpfs 1815760 0 1815760 0% /dev/shm
Run Code Online (Sandbox Code Playgroud)
所以可用块应该是 28.152.460,但它是 0。我一直在删除一堆垃圾文件,并且使用的块正在下降,但可用块仍然为 0。
df -i 的输出是:
[root@backup log]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGro 487751680 238360803 249390877 49% /
/dev/sda1 26104 37 26067 1% /boot
tmpfs 219784 1 219783 1% /dev/shm
Run Code Online (Sandbox Code Playgroud)
所以它不是缺乏inode。
lsof +L1 的输出是:
[root@backup log]# /usr/sbin/lsof +L1
COMMAND PID USER FD TYPE DEVICE …Run Code Online (Sandbox Code Playgroud) 当服务器硬盘 (Linux) 被大量小文件迅速填满时,我有时会遇到问题。发生这种情况时,我必须尝试弄清楚占用了多少空间以及占用空间的文件在哪里。这可能是一项令人惊讶的令人沮丧的任务,因为:
我想快速而准确地知道我的所有空间都在硬盘上的哪里,那里可能有数以百万计的小文件占用数 TB 的空间。
传统文件系统似乎不可能做到这一点(如果没有,我想听听)
我的问题是 Linux 上可用的任何新文件系统(btrfs、zfs、reiserfs 等)是否具有任何可能有助于解决此问题的超级智能功能。例如,我可以想象某种日志——每次写入时都会不断更新——它包含文件系统中每个分支占用的空间量的记录。然后问我的问题只是阅读日志的问题。
这只是可能有帮助的功能类型的一个示例,但我要求提供任何可能有助于回答问题的任何类型功能的示例:快速准确地告诉我,我的硬盘上正在使用空间的确切位置磁盘。
谢谢,汤姆
如何一次性输出所有按大小排序的文件/目录,包括隐藏的
\n(名称以点开头的文件/目录)?
目录的大小是指目录及其所有子目录树中所有文件大小的总和。
\n与如何按大小对输出进行排序的du -h区别?是我请求的输出包括当前目录 \xe2\x80\x93 中的所有文件和目录,无论是否隐藏。
可能的重复:
Linux 的 df 和 du 的根分区大小不同
在 Ubuntu 12.04 服务器上,普通用户无法再在 中创建或添加文件/home,遇到“设备上没有剩余空间”错误。
该/home目录的容量为 1.7 TB,据我所知,在存储的实际数据或使用的 inode 方面还远远不够。
df -h 显示:
Filesystem Size Used Avail Use% Mounted on
/dev/md2 1.0T 18G 955G 2% /
udev 7.7G 4.0K 7.7G 1% /dev
tmpfs 3.1G 320K 3.1G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 7.7G 0 7.7G 0% /run/shm
cgroup 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/md3 1.7T 1.7T 0 100% /home
/dev/md1 496M 45M 426M 10% /boot
Run Code Online (Sandbox Code Playgroud)
/home …
当我运行 bash 命令时du -hs .,输出是
1.2G .
当我运行 bash 命令时du -hs *,输出是
108K action
4.0K activate.php
8.0K browse.php
584K captcha
164K class
4.0K clearcache
388K cms
4.0K comment.complete.php
4.0K contact.php
530M docs
116K documentation
24K DONE.txt
21M em
4.0K footer.php
4.0K forgot.php
4.0K header.php
196K images
264K includes
8.0K index.php
168K js
4.0K login.php
4.0K logout.php
4.0K mail.confirmation.php
4.0K mail.php
4.0K news.item.php
4.0K news.php
4.0K profile.edit.php
4.0K profile.php
4.0K reset.confirmation.php
4.0K robots.txt
4.0K signup.confirmation.php
4.0K signup.php …Run Code Online (Sandbox Code Playgroud) 我的一台客户端服务器的磁盘空间不足时遇到问题。
的命令的输出ls -lah在/var/lib/mysql所示:
drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
Run Code Online (Sandbox Code Playgroud)
但是当我使用命令检查同一目录中的文件大小时du -sh *,输出显示:
22G database_xyz
Run Code Online (Sandbox Code Playgroud)
为什么这些命令的输出显示两个完全不同的结果?
我的驱动器上只剩下 2.2GB。
root@jon-cust-lifeincity:/var/lib/mysql# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg-root 49G 44G 2.2G 96% /
tmpfs 1007M 0 1007M 0% /lib/init/rw
udev 1002M 108K 1002M 1% /dev
tmpfs 1007M 0 1007M 0% /dev/shm
/dev/sda1 228M 16M 200M 8% /boot
Run Code Online (Sandbox Code Playgroud)
编辑:
原来那database_xyz实际上是一个目录,而不是一个文件。所以混乱是由我的大脑弥补的。
我想做这样的事情
du -a | sort -rn | head
Run Code Online (Sandbox Code Playgroud)
但我只想提取文件,忽略目录。
明确地说,我想遍历所有子目录,但我不想找到目录大小。只是文件大小。
更新
我也想返回文件的完整路径
我有一个空磁盘挂载为 /data
df -h 显示使用了 188M,而 du -h 显示了 4,0K。
root@marc:~# du -h --max-depth=1 /data
4,0K /data
root@marc:~# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sdb1 910G 117G 747G 14% /
udev 3,9G 8,0K 3,9G 1% /dev
tmpfs 1,6G 808K 1,6G 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 3,9G 164K 3,9G 1% /run/shm
AFS 8,6G 0 8,6G 0% /afs
/dev/sdc1 230G 197G 21G 91% /backup
/dev/sda1 230G 188M 218G 1% /data
Run Code Online (Sandbox Code Playgroud)
我打算重新格式化磁盘以便在其上安装新系统,但我想知道这些 188M 是什么。 …
每当我运行du -sh或rsync我的磁盘利用率达到 100% 时。这会导致出现 mysql 慢查询,这通常会导致我的网站出现故障。
以某种方式运行这些命令的任何提示或技巧,因此磁盘访问的优先级与 Mysql 和其他核心服务保持一致?