OpsDaiLou 发布的文章
Nginx 502 no live upstreams while connecting to upstream 问题
Nginx转发两个后端服务,请求返回502,没有进入到后端服务,排查Nginx日志发现:
no live upstreams while connecting to upstream造成该问题的原因:
转发到upstream两个节点的请求都出现了超时(upstream timed out (110: Connection timed out) while reading response header from upstream),Nginx认为upstream中的两个节点都挂掉了,无法使用,所以拒绝新请求的连接,返回502。
需要等待fail_timeout时间后,才能继续尝试转发,这是属于Nginx的被动健康检查机制。
Clash透明代理机器scp传输时网卡hang住问题
按照 基于Linux+Clash实现透明代理(TProxy)详细教程 搭建的透明代理主机,当作为网关使用的时候,进行scp时,出现网络中断,无法正常传输的问题。
现象
$ scp 1Gb.file admin@192.168.10.10:/tmp/
admin@192.168.10.10's password:
1Gb.file 0% 0 0.0KB/s --:-- ETAConnection to 192.168.10.10 closed by remote host.
lost connection
$ scp 1Gb.file admin@192.168.10.10:/tmp/
admin@192.168.10.10's password:
1Gb.file 1% 14MB 13.3MB/s 01:12 ETA
Timeout, server 192.168.10.10 not responding.
lost connectionssh连接,作为透明代理,没有问题,一切正常。当进行scp的时候,就会中断。
Ubuntu 14.04 无系统日志文件
摘要
有台 Ubuntu 14.04 的机器,想要查看sshd登录日志,发现没有 /var/log/auth.log 日志文件,同时连 /var/log/syslog 日志文件都不存在,遂排查并处理该问题。
基本情况:
1.rsyslog服务正常启动
2.rsyslog配置了记录日志文件
3./var/log目录中,没有相关日志文件
原因:
/var/log 目录权限是root:root 0755,rsyslog服务配置的用户和组是 syslog:adm,导致无权限在/var/log目录创建相关日志文件。
解决方法:
更改目录所有者和组
sudo chown syslog.adm /var/log/ Shell命令tab自动补全的实现
一.Shell命令自动补全的实现
1.ip 命令的自动补全是如何实现的?
1.ip命令相关补全文件
/usr/share/bash-completion/completions/ip
2.加载流程
- 用户进入交互式bash(终端)
~/.bashrc中加载/usr/share/bash-completion/bash_completion/usr/share/bash-completion/bash_completion中定义了_completion_loader函数- 当对一个命令按
TAB时,如果这个命令没有补全定义,会触发_completion_loader函数,然后从/usr/share/bash-completion/completions/<command>查找对应的补全脚本并加载。 - 脚本只加载一次,一旦某个命令的补全脚本被加载,它就在当前 Shell 会话里生效,不会每次 TAB 都重新加载。