
linux_FAQ
文章平均质量分 86
记录Linux项目应用实践中的问题
羌俊恩
工学文艺IT男,10年从事IT及项目管理相关工作,业余喜欢文字,视频剪辑,电气自动化和机械维修
展开
-
Nginx server_name配置错误导致路由upstream超时问题
如果所有的server都没有配置default_server指令,就会交给。server_name可以接受多个参数,但不要在server_name中使用逗号隔开的多个域名,一个nginx配置文件中可以有多个server_name相同的虚拟主机,nginx会尝试将这些参数与请求的Host头进行匹配。listen 80 default_server: 指定该 server 配置段为 80 端口的默认主机,即对于未绑定的域名指向你的服务器时,匹配不到你配置的虚拟主机域名后,会默认使用这个虚拟主机。原创 2024-11-16 20:35:19 · 961 阅读 · 0 评论 -
nginx启动报错:worker_connections exceed open file resource limit: 1024
它殖民了nginx的worker进程可以打开最大句柄描述符的个数,修改它可更改worker进程的最大打开文件数限制,如果没有设置的话,这个值为操作系统限制。最小可以运行的:worker_rlimit_nofile = 7 + 2 * worker_proceses + 2 * user_count。当有3个worker process时,需要有三个STREAM类型的fd,最小的启动worker_rlimit_nofile是15。2)处理:我们需要打开nginx的最大文件打开数限制。原创 2024-08-31 00:22:57 · 1832 阅读 · 0 评论 -
Mysql客户端连接是报错:1045-Access denied for user
2)本案中,指向为mysql所依赖的libncurses.so版本问题,默认依赖的版本是libncurses.so.5,但是系统上libncurses.so的版本不是5导致的。综上:LD_PRELOAD > RPATH (一般没有指定,或默认指定/usr/lib64) > LD_LIBRARY_PATH > /etc/ld.so.conf 文件和 /etc/ld.so.conf.d 目录中指定的库文件 > /lib 和 /usr/lib 目录中的库文件。会读取这个文件,并按照其中列出的路径来搜索库。原创 2024-08-28 12:41:48 · 1169 阅读 · 0 评论 -
Docker容器管理之FAQ
某次,某容器服务发现无法使用了,查看状态为restaring状态,后看是云主机重启了,导致本地的nfs-server未自动启动,导致关联的集群主机,远程挂载点无法使用,影响容器服务运行。故此,本文列举了当出现docker容器宕机后排查的思路,以供参考;另外应养成定期备份容器数据和镜像的习惯。原创 2024-08-14 17:11:31 · 961 阅读 · 0 评论 -
大乌龙大无语事件---fstab弄崩系统的又一案例
发现如下报错:systemd-modules-load[426]:Error running install command '/sbin/modprobe–ignore-install n_contrack&&/sbin/sysctl --quiet --pattern ‘net[.]netfilter[.]nf_comtrack.*" --system’ for module nf_conntrack: retcode。2)因中间被其他人尝试完成恢复,这里直说结论。具体原因待进一步分析,待续!原创 2024-07-25 19:21:18 · 476 阅读 · 0 评论 -
Nginx安全扫描借助lua-nginx-module模块增加授权
它依赖LuaJIT,因此我们需要首先安装LuaJIT,对于LuaJIT,强烈推荐使用OpenResty发行版,LuaJIT 2.0 or 2.1,它自集成了 integrate Nginx, ngx_lua,有更好的兼容性,否则后期会报兼容性错误;OpenResty,它是一个基于Nginx的可扩展平台,集成了Lua和其他一些常用的模块。某次安全扫描通过Dirsearch工具发现,nginx代理访问某后端业务时,发现:Springboot未授权漏洞,存在信息泄露风险,危险等级:中危;1)Nginx打补丁。原创 2024-05-13 18:32:39 · 769 阅读 · 0 评论 -
Linux主机重启后报错:[FAILED] Failed to start Switch Root.
1)原因:加载根分区失败,导致无法读取引导区所在磁盘上的正确位置,报错root文件系统没有挂载或者系统缺少os-release文件,造成initrd-switch-root.service服务启动失败。比如:kernel启动参数,系统启动参数中没有包含“root=”,造成系统启动过程中无法挂载root文件系统;比如虽然有参数,但参数不正确或参数指向不正确,指向非根分区,依然无法读取到启动grub文件;磁盘/分区的UUID冲突,导致启动时加载了非root分区;否则,云控制台可临时卸载数据盘;原创 2024-04-29 17:39:08 · 2986 阅读 · 0 评论 -
OpenSSH 代码问题漏洞(CVE-2023-38408)升级到最新版
其中,ssh-agent是一个后台程序,可缓存用于SSH公钥身份验证的私钥,通过跟踪用户的身份密钥和密码来简化用户身份验证过程。一旦这些密钥存储在ssh-agent中,它就允许用户访问其他服务器,而无需重新输入密码或密码,从而提供流畅的单点登录(SSO)体验,从而减少常规密码输入的需要。通过Openssh配置(sshd_config)、防火墙,安全组ACL等限制来源访问IP为白名单仅可信IP地址,同时,非必要,关闭SSH代理转发功能,禁止在有关主机启用ssh隧道等。,或升级到9.4p1或9.5p1版本;原创 2023-10-16 18:59:49 · 3710 阅读 · 3 评论 -
Linux 系统死机后挽救措施
有时候服务过载,比如短时间内连接数飙升,数据量大导致内存飙升,OOM宕机;1.一种方式是进入终端界面进行操作,按ctrl+alt+f1(或者f2~f6)进入tty,使用top命令查看一下进程,把一直占用资源很大的进程kill掉,如果是在图形界面下死机的话,不要再依赖任何图形界面的工具,切换到非图形界面尝试 Alt+F7;因我们日常使用Linux系统过程中,会不时遇到系统崩溃的事,但这时系统界面除了呈现一片告警字符外,无发执行任何其他操作,留给我们的要不重启,要不就是尴尬等待指令。未必,也许可绝处逢源。原创 2023-09-25 17:43:31 · 3869 阅读 · 0 评论 -
scp tab补全报错:F-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8)
某次Linux操作过程使用功能scp命令,后面目录无法使用Tab补全,报错:-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory。2)检查执行:locale -a ,查看了系统安装的字符编码,如下所示:没有en_US.UTF-8。3)执行:find / -name locale*1)如上所示,提示是Linux字符集出了问题;原创 2023-09-12 22:04:11 · 822 阅读 · 0 评论 -
Keepalived编译安装报错处理记录
2)完成上述后,再次configure,报错:libnl/libnl-3 dev libraries to support IPv6 with IPVS,即libnl/libnl-3 dev库缺失。因国产化OS改造,对Keepalived迁移重新部署,现场版本比较老,采用2.0.6版本,本次迁移,只迁移配置文件和自启动服务;其他考虑环境依赖,在目标OS上重新编译安装。3)第3次执行configure,报错:configure: error: libnfnetlink headers missing。原创 2023-09-11 18:02:48 · 849 阅读 · 0 评论 -
记一起小意外事件引起的批量重命名文件名
3、通过gzip命令, 只会压缩,不能打包目标文件,且因为只能压缩单个文件,以".gz"为扩展名且压缩后的文件可以自动解压缩(即可正常查看读写),但不能处理目录。故对项目内目录并无影响,但注意的是,gzip压缩完目标文件,默认不加参数会删除原文件来生成gz后缀的新文件,如需保留源文件需加-c参数;:gzip是一种文件级别的数据压缩算法,用来减少文件大小;会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。原创 2023-09-09 23:27:20 · 637 阅读 · 1 评论 -
Centos 6.5 升级到Centos7指导手册
版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm)版本命名格式为 “A.B.C”:数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候才会改变,历史上有两次变化:第一次是1994年的 1.0 版,第二次是1996年的 2.0 版,第三次是2011年的 3.0 版发布,但这次在内核的概念上并没有发生大的变化数字 B 是内核主版本号:主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版。原创 2023-09-03 12:40:17 · 1865 阅读 · 0 评论 -
Kafka集群启动报错:failed authentication due to invalid credentials with SASL mechanism
完成后再次重启,执行:/data1/kafka/bin/kafka-server-start.sh -daemon /data1/kafka/config/server.properties,kafka虽然还是报错一些信息,但kafka server已能正常启动完成。2、zookeeper没有对应账号的信息,broker请求时无法正确连接zookeeper endpoint,导致授权失败,无法连接;现场环境:独立zookeeper 3.8.2,kafka:2.13-3.5.1。原创 2023-09-02 23:27:47 · 7958 阅读 · 1 评论 -
kafka启动报错:java.lang.ClassNotFoundException:kafka.security.auth.SimpleAclAuthorizer
2)修改kafka.security.auth.SimpleAclAuthorizer为kafka.security.authorizer.AclAuthorizer后,重启启动kafka后,恢复正常。某次现场启动kafka服务时报错如下:java.lang.ClassNotFoundException:kafka.security.auth.SimpleAclAuthorizer。原创 2023-08-30 18:27:04 · 2701 阅读 · 0 评论 -
云主机OOM宕机原因分析及处理
jmap -dump:format=b,file=文件名 [pid],可以把指定java进程的堆内存快照搞到一个指定的文件里去,也可以用gcore工具来导出内存快照,然后用MAT工具/Eclipse MAT的内存分析插件,来对导出的文件进行分析去分析,确定导致OOM的对象;某次服务器告警宕机故障,无法ssh连入,控制台登录后查看,发生OOM事件,OOM就是我们常说的Out of Memory内存溢出,它是指需要的内存空间大于系统分配的内存空间,导致项目程序crash,甚至主机宕机;现场环境不涉及,可排除;原创 2023-08-03 12:16:29 · 1690 阅读 · 0 评论 -
Linux近两年高危漏洞修复过程记录
另外,对于一个大规模的补丁安装,还可以使用脚本的方式,将所有的补丁文件集中到脚本中,这样可以实现大规模的补丁安装。修复措施:目前该漏洞已经修复,https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?下载地址:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/refs/,打补丁fs/overlayfs/copy_up.c。原创 2023-07-28 12:18:09 · 2794 阅读 · 0 评论 -
curl 执行报错:curl: (2) Failed initialization升级NSS到3.21
和 OpenSSL 一样,它是一个底层密码学库,包括 TLS 实现。NSS 是跨平台的,很多产品都使用了NSS 密码库,比如 Pidgin、Apache OpenOffice、LibreOffice,Red Hat Directory Server, Red Hat Certificate System, Apache 的 mod_nss模块。NSPR:一个跨平台的底层次函数库,主要作用是为了尽量多的支持各类操作系统,NSS 3.x 版本目前支持 18 个平台,提供 I/O 操作,网络操作函数等基础库。原创 2023-06-14 19:17:29 · 2347 阅读 · 0 评论 -
kafka集群报错找不到broker: Failed to find brokers to send ListGroups
现场测试验证,报错:报错:Failed to find brokers to send ListGroups……某次用户反馈,kafka消费这边消息失败,报错消费者被踢出消费组或broker状态异常无法连接,后实际验证端口确实不通。如上所示,缺失找不到broker node,查看发现多了一个意外节点,经确认为非正常配置。发现topic的授权用户和consumer.properties里配置的消费用户名不一致。broker 4 (172.18.1.198)------>下线该节点。如上图所示,没有组权限;原创 2023-06-09 19:11:47 · 3462 阅读 · 0 评论 -
集群间 ssh 互信免密码登录失败处理
单向:其基本算法有:MD5,SHA1等。某次GreePlum集群免密配置过程中,需要使用普通用户实现ssh免密登录,前方反馈root用户已可完成免密登录,但普通用户同样配置,未生效,提示需输入密码才可以。发现~/.ssh/authorized_keys默认权限为664,其他权限正常,修改authorized_keys权限为600后,重试,ssh免密通过。3.服务器接收到加密的数据,使用协商出的对称密钥进行解密,并进行相应的处理;5.客户端接收到加密的数据,使用协商出的对称密钥进行解密,并进行相应的处理。原创 2023-06-08 19:17:30 · 1837 阅读 · 0 评论 -
YUM报错No module named yum处理
正常yum是通过系统自带的python使用的,也就是它需要调用OS自带的python的lib库,yum调用python使用的是绝对路径,它强依赖此python,当yum命令找不到原先它调用的库文件时,就会报如上错误信息,所以我们要做的就是让yum继续能调用原来的python以及原来python的lib库。现场GPDB部署后,它自身带了python的2.7和3.4版本和相应库文件,一旦配置了全局环境变量,必然修改了python库或执行文件路径,导致yum调用失败报错。3、$$:表示进程的id;原创 2023-06-08 15:56:39 · 4534 阅读 · 0 评论 -
openssh kex.c拒绝服务漏洞漏洞(CVE-2016-8858)处理
该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。代码修复链接如下:http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/kex.c#rev1.127。补丁下载:http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/kex.c。更多参看:https://cve.mitre.org/cgi-bin/cvename.cgi?原创 2023-05-23 18:11:03 · 1083 阅读 · 0 评论 -
一次Linux系统密码修改失败事件:Authentication token manipulation error
6)相关经验表明:根分区满、passwd文件与shadow文件不同步(可执行pwconv命令进入密码投影模式比对,把前者投影到后者,根据passwd文件修改shadow文件)、inode耗尽(df -i查看,大多情况是产生过多的临时小文件,可执行如下命令删除无用的临时文件。某业务系统采用移动云主机,某次因误操作导致移动云内嵌密码管理相关Pga进程导致页面无法修改密码,东移动云主机web终端登录也无法修改,密码错误次数最大已无法登录,无奈只能重启主机,修改密码;原创 2023-02-22 23:14:13 · 4980 阅读 · 1 评论 -
Docker进程异常终止导致的僵尸进程处理思路
而我们一般拉起/运行一个Docker实例,会跟一个初始启动命令,这个就是docker实例里所有多进程的父进程(它也是pid=1),一旦该进程异常,提前死了,这就导致docker其内其他进程变为僵尸进程,甚至会产生大量的僵尸进程,影响宿主系统的运行,被宿主机init/systemd接管。运行(一般是调用exit、运行时发生致命错误或收到终止信号所导致)时,子进程的退出状态(返回值)会回报给操作系统,系统则以SIGCHLD信号将子进程被结束的事件告知父进程,此时子进程的进程控制块(PCB)仍驻留在内存中。原创 2023-02-07 22:38:33 · 2615 阅读 · 0 评论 -
ssh 启动失败/反复重启,状态报:activing(start),timeout exceeding
polkit 是Linux中一个应用程序级别的工具集,用于身份认证管理 (Authorization Manager ),通过定义和审核权限规则,实现不同优先级进程间的通讯:控制决策集中在统一的框架之中,决定低优先级进程是否有权访问高优先级进程。2)前一天晚上,ssh无论怎样都无法正常,启动也显示是/usr/sbin/sshd -D [listener] 0 of 10-100 startups,状态始终显示超时,有意思的是,第2天查看的时候,重新启动好了。3)附录:关于polkit,原创 2023-02-04 11:56:44 · 10238 阅读 · 3 评论 -
记一次nginx崩溃事件
3)也可以借助 tmpwatch命令加入定时任务来清理,其实,系统/tmp目录,默认情况下每日会处理一次,原理就是使用了tmpwatch。2)配置定期清理缓存,nginx缓存虽然可带来吞吐量和性能的提升,但有时候缓存过期后并不会释放,这时我们可借助nginx + ngx_cache_purge 模块,手动清理缓存;参考2:https://www.cnblogs.com/backups/p/nginx4.html。1)检查当前文件系统使用情况,未出现分区使用超限情况,应该是nginx重启后缓存释放了;原创 2023-01-28 16:21:48 · 4989 阅读 · 0 评论 -
生产环境LVM卷ext4文件系统故障修复处理
表面上,用户通过文件名,打开文件。文件数据都储存在"块"中,必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。某项目因存储视频流泪数据,数据量较大,生产环境当时已达158TB,采用LVM+Ext4存储,在某次LVM在线扩容过程中,扩容失败,报错:inode_counter 溢出,从字面看就i节点数量超过最大限制了,被lvresize命令忽略,报出警告:Invalid argument While checking for on-line resizing support。原创 2022-12-15 23:42:09 · 2318 阅读 · 0 评论 -
LVM卷在线扩容报错:resize would cause inodes_count overflow
当缓存中的数据累积时,延迟分配块允许文件系统对如何分配块做出更好的选择,降低碎片(写入,以及稍后的读)并显著提升性能。ext3 提供粒度为一秒的时间戳。由于在某些情况下,使用损坏的主超级块安装文件系统读写可能会造成进一步的损坏,即使是经验丰富的用户也无法避免,这也不是一个完美的解决方案!虽然 XFS 是稳定的且是高性能的,但它和 ext4 之间没有足够具体的最终用途差异,以值得推荐在非默认(如 RHEL7)的任何地方使用它,除非它解决了对 ext4 的特定问题,例如大于 50 TiB 容量的文件系统。原创 2022-12-12 21:33:53 · 1740 阅读 · 1 评论 -
Centos 7.1找不到/dev/loop0问题排查处理过程
loop 含义:对于第一层文件系统,它直接安装在我们计算机的物理设备之上;而对于这种被 mount 起来的镜像文件(它也包含有文件系统),它是建立在第一层文件系统之上,这样看来,它就像是在第一层文件系统之上再overlay了一层文件系统,所以称为 loop,而在Linux系统里,用块文件模拟了该接口,Centos上默认有0-7个这样的设备。在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者说是仿真设备,我们又叫它为循环接口文件,它能使我们像块设备一样访问一个文件。原创 2022-11-30 00:21:23 · 7665 阅读 · 0 评论 -
Linux安装Redis 4.0.14组建集群时报错处理
【代码】Linux安装Redis 4.0.14组建集群时报错处理。原创 2022-11-11 16:35:29 · 1675 阅读 · 0 评论 -
某次云主机启动hung死报错日志
213主机2022年10月27日夯死原创 2022-10-27 19:03:28 · 454 阅读 · 0 评论 -
Linux ssh登录小报错:Socket close
4、回忆想起内网主机ssh ip被/etc/hosts.allow白名单限制,查看果然如此,源主机ip不在授信列表里,添加后,测试恢复;2、既然是socket错误,说明已经经过网络过去了,在建立会话本地网络TCP端口通信时,出现socket错误,且时被主动断开;原创 2022-10-12 11:47:15 · 1372 阅读 · 1 评论 -
ssh登录报错:-sh: id: command not found
ssh—服务器启动login—读取/etc/shadow , /etc/passwd 核对身份信息----按顺序加载环境变量文件----/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc—切换到主目录–启动shell。b代表的是该文件是面向块的设备文件(block-oriented device file)其中,全局配置文件:/etc/profile、/etc/profile.d/原创 2022-10-11 20:59:34 · 1999 阅读 · 0 评论 -
Linux系统运维排故思路参考手册
Linux运维过程中,我们会遇到一些进程突然出现挂死的状态(即进程处于运行状态,但无法处理请求,比如会报404,但这时服务端口是通的,日志也没显示明显异常,有的会简单给出无法连接某个组件,比如数据库等),那这时我们如何定位排查问题呢,偶然间看到网上一位同学的文章,这里分享一下。原创 2022-09-18 23:29:34 · 6736 阅读 · 0 评论 -
Linux系统批量释放deleted文件占用的空间
现场某业务系统迁移到新的资源池后,后端java程序不定时遇到程序所在磁盘被占满的情况,实际有效数据并没有那么大,磁盘200G,有效数据只有42G,但磁盘使用率会报道98%,触发文件使用率告警。上述造成文件系统被占满的原因就是,该业务下的临时目录temp下存储临时上传文件,该文件呗删除后显示deleted状态,但只要程序运行,该文件所占空间并不会得到释放,日积月累,导致文件系统被爆。最简单的就是kill掉服务进程,然后重启,相关文件释放后,文件系统空间也就被释放;然后用定时任务,每4h检查一次就行。原创 2022-09-16 18:57:39 · 3773 阅读 · 0 评论 -
云主机夯死故障分析
而其父进程很可能会用到这些信息,实际内核中已经建立了从pid到task_struct查找关系,还有进程间的父子关系,父进程可以通过wait系列的系统调用(如wait4、waitid)来等待某个或某些子进程的退出,并获取它的退出信息。,一般由IO引起,同步IO在做读或写操作时,cpu不能做其它事情,只能等待,依赖于它的进程也会因为等待它而阻塞,此状态的进程不会消耗CPU。来实现的,khungtaskd监控TASK_UNINTERRUPTIBLE状态的进程,如果在120s周期内没有切换,就会打印详细信息。...原创 2022-08-26 21:45:31 · 1654 阅读 · 0 评论 -
Linux启动失败进入dracut 紧急模式处理思路
dracut(工具)通过从一个已经安装的系统复制工具和文件来创建一个initramfs镜像并且将它和dracut框架结合,通常可以在/usr/lib/dracut/modules.d找到。原创 2022-07-20 19:22:34 · 29642 阅读 · 0 评论 -
云主机内网通信ping不通问题处理过程
某次业务割接过程中,发现云主机内网出现部分能ping通,部分ping不通现场,特别像网络虚拟化里的分区或隔离,且某台主机出现ping网关和127.0.0.1回显unknownhost的情况原创 2022-07-18 19:48:19 · 3601 阅读 · 0 评论 -
关于ssh登录时卡顿30s左右的问题调试恢复过程
内网ssh一台主机时,每次总是卡顿30s左右才能跳到远程主机上,其他主机ssh均正常,对比各主机配置并无特殊不同,那我们接下来分析下如何定位主机的可能原因原创 2022-07-07 16:58:56 · 4964 阅读 · 3 评论 -
Linux系统异常夯死或宕机分析
某次某云主机访问异常,登录云主机后来发现vnc界面夯死,输入命令无反应,console界面发送重启指令也无反应,只能云平台管理页面强制重启。原创 2022-06-08 13:49:23 · 8358 阅读 · 1 评论