如何增加根目录下的磁盘空间?

如何增加根目录下的磁盘空间?

因此,我检查了我的服务器df -h,发现我的 centos-root 容量已达到 99%。

就在几天前,根数还只有87%。由于某种原因,它增加得如此之快。关于如何减少使用空间有什么建议吗?

[root@host ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G  713M  99% /
devtmpfs                 3.8G     0  3.8G   0% /dev
tmpfs                    3.8G     0  3.8G   0% /dev/shm
tmpfs                    3.8G  401M  3.4G  11% /run
tmpfs                    3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mapper/centos-home  873G  136G  738G  16% /home
/dev/sda1                494M  172M  323M  35% /boot
[root@host ~]# du -csh /*
0       /bin
146M    /boot
0       /dev
23M     /etc
136G    /home
0       /lib
0       /lib64
0       /media
0       /mnt
24K     /nginxweblog
990M    /opt
du: cannot access `/proc/61778/task/61778/fd/4': No such file or directory
du: cannot access `/proc/61778/task/61778/fdinfo/4': No such file of directory
du: cannot access `/proc/61778/fd/4': No such file of directory
du: cannot access `/proc/61778/fdinfo/4': No such file of directory
0       /proc
41M     /root
401M    /run
0       /sbin
0       /srv
0       /sys
376K    /tmp
2.6G    /usr
14G     /var
153G    total
[root@host ~]# cd /; du -sh * 2> /dev/null
0       bin
146M    boot
0       dev
23M     etc
136G    home
0       lib
0       lib64
0       media
0       mnt
24K     nginxweblog
990M    opt
0       proc
41M     root
401M    run
0       sbin
0       srv
0       sys
376K    tmp
2.6G    usr
14G     var
[root@host ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   3   0 wz--n- 931.02g    0
[root@host ~]# cd /var/log
[root@host log]# ls
anaconda       cron           dmseg      lastlog           maillog-20160201   messages-20160124  ppp              secure-20160124   spooler-20160124  yum.log
audit          cron-20160111  dmesg.old  maillog           mariadb            messages-20160201  samba            secure-20160201   spooler-20160201  yum.log-20150101
boot.log       cron-20160117  firewalld  maillog-20160111  messages           nginx              secure           spooler           tallylog          yum.log-20160101
btmp           cron-20160124  grubby     maillog-20160117  messages-20160111  ntpstats           secure-20160111  spooler-20160111  tuned
btmp-20160201  cron-20160201  httpd      maillog-20160124  messages-20160117  php-fpm            secure-20160117  spooler-20160117  wtmp
[root@host ~]# du -csh /var/*
0       /var/adm
1.3M    /var/cache
0       /var/crash
36K     /var/db
0       /var/empty
0       /var/games
0       /var/gopher
0       /var/kerberos
13G     /var/lib
0       /var/local
0       /var/lock 
90M     /var/log
0       /var/mail
0       /var/nis
0       /var/opt
0       /var/preserve
0       /var/run
51M     /var/spool
4.0K    /var/tmp
0       /var/var
4.0K    /var/www
0       /var/yp
14G     total
[root@host andi]# du -csh /var/lib/*
64K     /var/lib/alternatives
8.0K    /var/lib/authconfig
0       /var/lib/cs
0       /var/lib/dav
0       /var/lib/dbus
0       /var/lib/dhclient
0       /var/lib/dnsmasq
0       /var/lib/games
0       /var/lib/initial-setup
0       /var/lib/initramfs
4.0K    /var/lib/logrotate.status
0       /var/lib/misc
13G     /var/lib/mysql
8.0K    /var/lib/NetworkManager
40K     /var/lib/nginx
0       /var/lib/ntp
0       /var/lib/os-prober
320K    /var/lib/pear
64K     /var/lib/php
0       /var/lib/phpMyAdmin
4.0K    /var/lib/plymouth
0       /var/lib/polkit-1
4.0K    /var/lib/postfix
4.0K    /var/lib/rhsm
58M     /var/lib/rpm
0       /var/lib/rpm-state
4.0K    /var/lib/rsyslog
0       /var/lib/samba
0       /var/lib/stateless
16K     /var/lib/systemd
0       /var/lib/tpm
0       /var/lib/udisks2
0       /var/lib/upower
0       /var/lib/virtuoso
13M     /var/lib/yum
13G     total

答案1

的输出df不要按照已用磁盘排列;搜索正在写入的已删除文件。停止(重新启动)写入文件的进程,或重新启动盒子。

 lsof | awk '/deleted/ && $5 ~ /w/'

实施日志轮换并找出日志持续以如此惊人的速度增长的原因(并纠正根本原因)。

答案2

简短回答;通过删除数据或增加根文件系统的实际大小来增加空间。

长答案;

当您拥有这么大的磁盘并且您也在使用 lvm 时,建议您为 /var、/tmp、/var/log、/opt 等创建单独的文件系统。

首先,以 root 身份运行以下命令,找出正在占用磁盘空间的内容 cd /; du -sh * 2> /dev/null

看起来您已经运行了该命令。

我可以看到 /var 占用了太多空间,将其放在单独的文件系统上可能是个好主意。您可以分享“vgs”命令的输出吗?

以下是您需要采取的步骤;详细步骤看这里

  • 重新启动系统,在 grub 菜单中按任意键并将以下内容附加到内核行systemd.unit=rescue.target
  • 它会要求输入 root 密码,输入 root 密码
  • lvchange --activate y
  • lvreduce -r -L 800G /dev/mapper/centos-home您可以指定新尺寸700G、800G
  • lvextend -r -L 100G /dev/mapper/centos-root假设你想将 root 设置为 100G 文件系统,不要忘记 -r 选项,否则你将不得不运行 resize2fs /dev/mapper/centos-root

答案3

问题的作者提供了以下解决方案:

最终编辑:找到解决方案(至少是临时的)。执行了一项service php-fgm restart功能,将存储空间从 99% 减少到 34%。但我想我必须对我的服务器进行日志轮换和其他操作才能获得更永久的解决方案。

答案4

看来你有大mysql数据库和一个小分区,因此您可以使用重新分区格帕特或者改变地方mysql将其数据保存到 /home,这有时不安全(黑客)或有错误。

要改变的地方mysql保存其数据:

假设新目录是/home/mynewsqldir

1.足够明显了。

service stop mysql

2.将您的数据库复制到新位置

cp -R /var/lib/mysql /home/mynewsqldir

cp -R /var/lib/mysql/users /home/mynewsqldir

3.备份我的cnf文件

cp /etc/mysql/my.cnf /home/my.cnf.backup

4.编辑原文我的cnf文件并查找数据目录插座行然后将其替换为

datadir=/home/mynewsqldir

socket=/home/mynewsqldir

5.为了安全更新目录权限

chown -R mysql:mysql /home/mynewsqldir

6.改名mysql目录在/var/lib/以防万一出现问题,但如果一切按预期进行,您可以将其删除。

7.安全问题要更新阿帕莫尔

ln -s /home/mynewsqldir/ /var/lib/mysql

echo "alias /var/lib/mysql/ -> /home/mynewsqldir/," >> /etc/apparmor.d/tunables/alias

8.重新加载阿帕莫尔配置文件并开始mysql

sudo /etc/init.d/apparmor reload

start mysql

相关内容