关于 Centos 7.5.1804 下的那些逼事
摘要
老版本的系统一堆破事,又不能升级,只能使用老系统一致将就着用着。
什么 NFS 出问题连带着 Gnome 卡住,什么动不动就抽风…
本文包含了我从开始做运维到现在的所有经验,想到啥就写啥,能帮到你更好,帮不到也别放弃。很多东西中文互联网也搜不到,英文好的朋友倒还好,但是英文不好的也会比较吃瘪。
本次环境为:
- Centos 7.5.1804
- 内核为 ISO 自带的内核(就不能做升级,就得用旧的,别问,问就是开发需要)
- NFS 为官方源 Centos 7.5.1804 能用的最新版
- NFS 服务器为 HDD 硬盘
- user home 目录在 nfs 上
- 纯内网环境
Gnome 桌面卡死
这套系统运行起来,你将可能会遇到以下场景:
- NFS 服务器卡死,所有用户的 Gnome 桌面都会卡死
- 你用着用着,整个桌面卡死,运气好的时候他会自己重启,不会丢掉其他窗口和运行的进程(反之你只能重启VNC了
第一种情况
遇到 NFS 服务器卡死,所有用户的 Gnome 桌面都会卡死,使用以下方法重启桌面即可恢复
1 | su - <user> |
应该就可以了
第二种情况
忍着,他自己会恢复的,我也没辙
Yum 相关
跟 yum 包管理相关的,有很多其他的方法也能办到这事。我就用这个方法辣~
RPM强制安装
1 | rpm -ivh --replacefiles --force --nodeps *.rpm |
yum 仅下载软件包
1 | yum install --downloadonly --downloaddir=/tmp/yumlocal <package> |
Cdrom
- 挂载CDROM
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
- 创建cdrom.repo文件
1 | cat >> /etc/yum.repos.d/cdrom.repo < EOF |
- 测试查看cdrom的软件包列表
yum --disablerepo=* --enablerepo=cdrom list
- 使用本地源安装
yum --disablerepo=* --enablerepo=cdrom install -y httpd
curl#60 peer’s Certificate issuer is not recognized
1 | 下载证书: |
Authentication is required to set the network proxy
这个是使用 gnome 桌面隔三差五会弹出来的一个框,直接卸了他就好了,反之不升级系统留他没用
1 | rpm -e gnome-packagekit |
system
系统配置或系统服务相关
dmesg 无输出
1 | systemctl restart systemd-journald |
与时间服务器同步
1 | ntpdate -u 192.168.1.10 |
解决PyQt: undefined symbol:FT_Get_Font_Format Error
下载最新的freetype并安装
1 | tar -xf freetype-**.tar.gz |
最后将此目录下的libfreetype.so.6 替换掉原先的libfreetype.so.6
然后运行程序,在UI上点击右键,不闪退啦。
原文地址:https://blog.csdn.net/weixin_38418878/article/details/89946512
使用 pssh 或其他运维工具关闭所有服务器的上报服务
因为 Centos 7.5 长时间运行在内网中,没办法访问互联网,这俩服务长时间运行会让 Centos 7.5 死机
1 | pssh -l root -h ~/hosts 'systemctl disable abrtd.service' |
Shell
常用shell命令
手动崩溃
就是为了生成 coredump 文件
1 | kill -6 <pid> |
清理内存
清理前可以使用 sync
同步内存
/proc/sys/vm/drop_caches
1 | echo 3 > /proc/sys/vm/drop_caches |
要使用 /proc/sys/vm/drop_caches,你需要根据需要写入不同的值:
- 写入 1:释放页缓存。
- 写入 2:释放 slab 对象,包括目录项和索引节点。
- 写入 3:同时释放 slab 对象和页缓存。
- 写入 4:手动还原释放。(有些系统是写入 0 ,但 Centos 7 是写入 4)
禁用 Centos 7 系统自动更新
1 | 查询状态 |
磁盘空间
保存遍历结果
1 | /usr/bin/ncdu -q -e --exclude-kernfs -o /nfs/home-nfs/lzh/logs/ncdu_`date +%Y%m%d.txt` --exclude /nfs/home-nfs/lzh/logs/ncdu_`date +%Y%m%d`.txt /nfs & |
读取遍历结果
1 | ncdu -f ncdu.txt |
VMware
解决VMWare - Could not connect ‘Ethernet0‘ to virtual network ‘/dev/vmnet0‘.
1 | sudo modprobe vmnet && sudo vmware-networks --start |
1 | sudo touch /etc/vmware/x |
software install
- clang-format
clang-format
centos 的yum仓库中并没有clang-format的安装包,需要更新repo源:
1 | sudo yum install centos-release-scl-rh |
之后下载clang-format:
1 | sudo yum install llvm-toolset-7-git-clang-format |
默认安装目录为:/opt/rh/llvm-toolset-7/root/usr/bin/
1 | cat > /etc/profile.d/clang.sh << "EOF" |
为已打开终端立即生效:
1 | source /etc/profile |
监控类
系统监控类工具
sysdig
#监控/磁盘 查看磁盘使用率最多的应用:
1 | sysdig -c topfiles_bytes |
#监控/网速
1 | sysdig -c topprocs_net |
TOOLS
工具类
pssh 运维工具
1 | pssh [ -i ] -l <user> -h <hosts_list> <command> |
能用上的基本就这种命令,有域名也可以使用域名,最好是做免密再操作,想查看返回的消息,可以加 -i
。
hosts_list 文件里基本上就是 ip 列表:
1 | node01 |
伪装时间
https://github.com/wolfcw/libfaketime/
1 | LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 |