2022年5月

编译gcc,连着服务器放那跑,过几个小时看见编译停了,再一看有个报错

client_loop: send disconnect: Broken pipe

一查是因为长时间无操作ssh连接自动关闭,于是乎make进程跟着这个被关掉的shell一块寄了

解决方案:

vi  ~/.ssh/config
TCPKeepAlive yes
ServerAliveInterval 10
ServerAliveCountMax 10
重启服务
如果把电脑合上也会导致掉线.....

或把进程丢在后台跑

nohup command &

或只保持当前ssh不关闭(一次性)

ssh -o ServerAliveInterval=60 user@sshserver

文件属性日寄

跟着老司机上路第一天,整了个配测试环境的活,本以为装个虚拟机啥的轻轻松松,没想到全程翻车连连,唉,生产环境就是不一样,怀念在自己电脑上瞎折腾的日子

升级个内核,用的是老司机给的rpm包,安装方法参考以下两篇

https://blog.csdn.net/weixin_42606075/article/details/121583730

http://www.manongjc.com/detail/24-hnvnxalxsrkoppk.html.

yum一键安装,装完awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 查看内核列表,寄了,怎么没有新装上去的内核,往上一翻记录,看到显示这么一行报错

grubby: error moving /boot/grub2/grub.cfg- to /boot/grub2/grub.cfg: Operation not permitted

惊了,我堂堂root用户,居然动个文件还会被Operation not permitted

百度了一番全是不知所云,求助老司机,排查一通,lsattr /boot/grub2/grub.cfg显示文件有个i权限,chattr -i /boot/grub2/grub.cfg去掉权限,后成功移动文件,再看列表就能看到新装的内核了,经老司机分析大概是前面某个跑的安全脚本干的好事

chattr\lsattr

chattr指令可改变linux文件系统的文件属性,这个属性得用lsattr才能看到,上面造成root都不能移动文件就是因为grub.cfg被人加上了i属性

语法:

chattr [option] +-=属性 obj

参数

-R    递归处理目录下的所有文件
-v    设置文件或目录版本
-V    显示指令执行过程
+    开启文件或目录的该项属性
--    关闭文件或目录的该项属性
=    指定文件或目录的该项属性

属性

a:让文件或目录仅供附加用途;***
i:不得任意更动文件或目录;  ***
A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
j:如果文件系统安装有“data=order”或“data=writeback”选项,则具有“j”属性的文件在写入文件本身之前将其所有数据写入ext 3日志;
s:当删除具有“s”属性集的文件时,其块将被归零并写回磁盘;
S:当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项;
u:当删除具有‘u’属性集的文件时,它的内容将被保存

示例:使得日志文件只能追加数据,不能删除或者修改

chattr +a /var/log/messages

补充:如果vi/vim修改发现无法保存文件,还有可能是文件目录不存在,得先去创建目录