文章目录
一、查看当前目录当前目录剩余空间以及目录文件大小和个数(pg清理大数据量表)
- linux当前目录剩余空间怎么查看
- 只查看当前目录下文件大小
- 查看当前目录下及子目录文件大小
二、查看当前目录下及子目录文件个数 - 只查看文件夹下的文件个数(当前目录的文件数)
- 查看文件夹下的文件个数(当前目录的文件和子文件夹的文件数)
三、 linux查看磁盘空间
linux看目录容量定位,linux查看目录的大小(占用量)
四、linux ps命令查询进程启动和存活时间
五、工作常见的一些占用空间大排查
pg数据库数据量很小但是data目录很大的排查
pg清理大数据量表
一、查看当前目录当前目录剩余空间以及目录文件大小和个数(pg清理大数据量表) - linux当前目录剩余空间怎么查看
要查看当前目录剩余空间,您可以使用以下命令:
df -h .
1
该命令会显示当前目录所在的文件系统的磁盘空间信息,包括已使用空间、可用空间和文件系统挂载点。选项"-h"可以以人类可读的方式显示磁盘空间大小。点号"."表示当前目录。
- 只查看当前目录下文件大小
可以将当前目录下所有文件的大小给列出来。按照从大到小的方式排序:
du -sh * | sort -nr
1
注意,该命令只是当前目录下文件大小排序,并不会显示子目录下具体文件的排序
结果示例如下,并没有显示出 目录 Python27 下具体文件排名
du -sh * | sort -nr
19M Python27
4.0K test
0 aaa
1
2
3
4
du -sh
1
du -sh 查询当前目录下所有子目录总大小 , 指所有目录,如果只要查询某个目录 替换掉*即可
du -s | sort -nr | head 选出排在前面的10个。
du -s | sort -nr | tail 选出排在后面的10个。
查看当前目录下一级子文件和子目录占用的磁盘容量:
du -lh --max-depth=1
1
改变“–max-depth=1”中的数值大小就可以指定查看该目录下多少级子目录
du参数解释
-h或–human-readable 以K,M,G为单位,提高信息的可读性
-s或–summarize 仅显示总计,即当前目录的大小。
常用:
查询当前目录下所有子目录总大小 并按大小排序
du -sh * | sort -nr
1
- 查看当前目录下及子目录文件大小
按照文件从大到小排序查看当前目录下(包括子目录文件大小)前5个文件
du -ah | sort -rn | head -5
1
按照文件从大到小排序查看当前目录下(包括子目录文件大小)倒数5个文件
du -ah | sort -rn | tail -5
1
二、查看当前目录下及子目录文件个数
- 只查看文件夹下的文件个数(当前目录的文件数)
ls -l |grep "^-" | wc -l
1
注意:该命令只查看到当前目录下文件的个数,不包含子目录、以及子目录下的文件。
说明:
ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep ^- 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
- 查看文件夹下的文件个数(当前目录的文件和子文件夹的文件数)
find ./ -type f | wc -l
1
三、 linux查看磁盘空间
df -h命令来查看磁盘信息, -h 选项为根据大小适当显示
df -h
1
2
linux看目录容量定位,linux查看目录的大小(占用量)
du -lh --max-depth=1 /path
先在/path目录下找出最大的目录path1,然后再在path1下找出最大的目录,这样一级一级就可以找出占用空间最大的目录了
du -lh --max-depth=1 /path/path1
1
2
3
4
5
四、linux ps命令查询进程启动和存活时间
linux ps命令查询进程启动和存活时间
ps -eo pid,lstart,etime,cmd | grep xxx
1
inux查看某个进程的启动时间
ps -p PID -o lstart
1
五、工作常见的一些占用空间大排查
pg数据库数据量很小但是data目录很大的排查
PostgreSQL的数据目录,其中保存着配置文件、数据文件、事务日志和WAL日志等重要文件,所有客户创建的数据文件和初始配置文件都可以在数据目录中找到,因此数据目录是重要的客户价值所在。
进入到pg的data目录下执行
du -sh * | sort -nr
1
排查data目录下的base文件占用大小
base目录存储用户创建的数据库文件,及隶属于用户数据库的所有关系,比如表、索引等。
base目录下存放的是数据文件,不能删~ 这个如果大,就只能扩容了。
排查data目录下的pg_wal目录占用大小。
du -sh {pg_wal,pg_xlog}
1
该目录下存放数据库的在线重做日志,可以通过max_wal_size和wal_keep_segments参数对wal日志保留上限进行限制。
排查data目录下的审计日志目录占用大小。
du -sh audit
1
排查data目录下的运行日志目录占用大小。
此类目录下存放数据库的审计日志,可以通过审计参数进行限制。
$ du -sh {pglog,log,postgresql_log}
1
排查data目录下的core文件占用大小。
du -sh core*
1
当data目录下存在core文件,说明数据库进程存在过崩溃,可通过core文件进行分析。
pg清理大数据量表
查看所有数据库的大小
select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;
1
查看表的总大小,包括索引大小
select pg_size_pretty(pg_total_relation_size('test'));
1
查看所有表所占磁盘空间大小
SELECT table_schema || '.' || table_name AS table_full_name, pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')AS size
FROM information_schema.tables
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC;
1
2
3
4
清空某个表数据:
一般情况下,我们使用delete删除表中数据,但是delete是一条数据一条数据来删除表中的数据,直至表清空(保留表结构),但是当数据量很大时,它耗时较久。
其实,删除表数据但保留表结构使用truncate更快速安全!
TRUNCATE TABLE xxx;