linux磁盘相关命令

一、查看文件夹大小du

du -h -d1 2>/dev/null

解释:

  • h表示以可读性较好的方式显示,即带单位显示
  • d表示深度depth,为1表示只显示当前目录下文件的大小
  • 2>/dev/null,表示跳过那些不可读的文件

使用find命令也能够查看文件大小,但是比较复杂
find / -size +100M |xargs ls -lh 列出系统内大于100M的文件,这个命令比较耗时

du -h --max-depth=1 查看当前目录内文件夹的大小。这种方式最好了。在最近做出更改的目录下使用此命令可以快速定位大文件的位置。

二、查看磁盘大小df

df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block)
df -i 查看索引节点的占用(Inodes)
磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满。
所以请注意,查看磁盘还有空间,但是创建文件提示空间满,可能是inodes节点已满

三、查看内存使用情况free

watch free:查看每时每刻内存变化情况

三、创建交换区makeswap

问题:virtual memory exhausted: Cannot allocate memory
内存太小的解决办法:使用硬盘替代内存,交换区的存在使得内存空间可以和硬盘空间一样大。

free先查看一下,可以发现交换区大小为0

~$free
             total       used       free     shared    buffers     cached
Mem:       1017832     784328     233504        356      12844      14692
-/+ buffers/cache:     756792     261040
Swap:            0          0          0

使用dd命令从/dev/zero中读取全0初始化一个文件,这个文件名可以名叫swap,相当于一个交换区的名字。使用free显示的空间大小单位都是kB,也就是block的个数,一个磁盘块的大小默认是1024B。正常情况下,4G内存才够用,所以建议减缓区大小为4096000。

~$dd if=/dev/zero of=swap bs=1024 count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 6.30189 s, 166 MB/s

查看一下swap空间的大小

~$ll swap
-rw-rw-r-- 1 ubuntu ubuntu 1048576000 Oct 18 02:48 swap

交换区已经准备好了,下一步就等着让它生效了。首先要在这块空间上建立分块。

~$mkswap swap 
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=1372d681-b265-469b-8d9d-d637cbedbef7

交换区终于可以投入使用了。

~$sudo swapon swap
~$free -h
             total       used       free     shared    buffers     cached
Mem:       1017832     947088      70744        356       1692     189112
-/+ buffers/cache:     756284     261548
Swap:      1023996          0    1023996

运行着发现交换区太小了,需要进一步扩大,一方面可以重复以上步骤重建另一个交换区,另一方面可以在当前这个交换区的基础上先shutdown然后在重复上述步骤。

~$sudo swapoff swap
~$free
             total       used       free     shared    buffers     cached
Mem:       1017832     947844      69988        356       1744     189728
-/+ buffers/cache:     756372     261460
Swap:            0          0          0

综上,创建一个名为swap的文件作为交换区。首先要设置该文件的大小,使用dd文件复制命令从if复制到of,复制count次,每次复制bs大小的空间。然后将swap文件格式化为交换区,使用"mkswap 文件名"命令,该命令会是swap文件腾出4*1024B(即为4页)的空间专门作为交换区头部。最后"swapon 文件名"命令打开交换区,此时查看内存就能够看见swap区的大小了。不想用交换区之后,用swapoff关闭交换区,关闭之后就可"rm swap"删除交换区了.

原文地址:https://www.cnblogs.com/weiyinfu/p/10190517.html