问题
今天网站证书失效了,想着更新一下,使用yum
命令,结果就遇到了错误One of the configured repositories failed (Unknown), and yum doesn't have
。
过程
通过一番搜索,大部分人都在说是Network的问题,如果是这方面的问题,可以见博客。但我在尝试过程中发现错误E297: Write error in swap file
,无法写入文件,原来是内存问题。
于是我使用df -h
,显示:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 40G 0G 100% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 292K 920M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0
果不其然,/dev/vda1
磁盘已经被占满了,继续使用sudo du / -h --max-depth=1
命令查看各个目录的占用空间:
4.0K /home
292K /run
32G /tmp
40M /opt
3.5G /usr
16K /lost+found
4.0K /srv
du: cannot access ‘/proc/2287/task/2287/fd/4’: No such file or directory
du: cannot access ‘/proc/2287/task/2287/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/2287/fd/4’: No such file or directory
du: cannot access ‘/proc/2287/fdinfo/4’: No such file or directory
0 /proc
4.0K /mnt
138M /boot
0 /dev
0 /sys
156K /root
37M /letsencrypt
4.0K /media
102M /etc
1.5G /var
5.2G /
发现tmp
文件夹竟然占用了32G!,可能是服务器太久没用了,日志这些东西把它写满了^_^。
于是我就把这占了32G的文件删掉了,再次使用df -h
命令,查看,发现/dev/vda1
磁盘依旧是满的!百度了解到:
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。
原来还要把这个进程结束掉,磁盘空间才会释放,使用lsof |grep deleted
命令,lsof
看到异常的delete状态的文件,这些文件已经被删除了,但是进程中仍在使用它。最后kill掉对应的进程即可,具体见博客
衰的是我Centos并没有安装lsof
命令,而我又不能yum
,于是我干脆就直接把服务器重启了哈哈。一切恢复正常~~
总结
目前我知道的报错的原因有两点:
- 网络原因,解决方法见博客
- 磁盘空间不够
2.1 使用df -h
命令,查看是否存在磁盘内存不足的情况。
2.2 可以使用sudo du / -h --max-depth=1
查看各个目录的占用空间情况,删除相应的占用内存大的文件
2.3 删除后如果发现磁盘空间并没有释放,说明仍有进程在使用刚刚删除的文件,可以使用lsof |grep deleted
命令查看相关进程,并kill
掉它。如果是像我这种学习用的服务器,没有什么重要脚本在运行的话,干脆就直接重启服务器吧^_^
Reference
1.https://blog.csdn.net/weiyongle1996/article/details/75128239
2.https://blog.csdn.net/wohu1104/article/details/85269841
3. https://www.cnblogs.com/mfryf/p/3334451.html
4. https://www.cnblogs.com/mfryf/p/3334451.html
5. https://www.cnblogs.com/xiaodai12138/p/9039753.html