2023年10月

linux中有两个重要的进程权限id:

reaal user id(ruid):执行进程者的 user id,一般情况下就是用户登录时的 user id
effective user id(euid):决定进程是否对某个文件有操作权限,默认为ruid

决定某个进程是否拥有某个文件的使用权限的,是euid,比如某文件需要root才能操作,那么euid得是0才行
sudo的原理就是利用了特殊权限s来达到修改euid的效果

如果一个文件拥有x权限,表示这个文件可以被执行。shell执行命令或程序的时候,先fork一个进程,再通过exec函数族执行这个命令或程序,这样的话,执行这个文件的进程的ruid和euid就是当前登入shell的用户id。
当这个文件拥有x权限和s权限时,在shell进行fork后调动exec函数族执行这个文件的时候,这个进程的euid将被系统更改为这个文件的拥有者id。

https://zhuanlan.zhihu.com/p/100404099

last\w确定重启时间
/var/log/messages
dmesg -d -T
journalctl -k --list
journalctl -k -l 重启前的日志号
如果以上都看不出任何问题的话,可能是别的一些棘手的情况,比如这次遇到的就是内核上的bug,messages日志无异常且journalctl丢失重启前的所有日志

某应用的两台机器8088不通,8080通,检查情况
登上这两台机器,互telnet,不通,这两台机器在同一网段,说明不是外部防火墙权限问题。lsof -i查看,8080有应用在监听,iptables --list -n | grep 8080未找到规则,8088的有,vi /etc/sysconfig/iptables ,把8088的规则复制一份给8080加上,重启iptables,问题解决

systemd是linux的初始进程,也是守护进程。systemd的功能十分复杂,从最初init所做的并行启动系统所需进程,到进程管理、日志等等功能都有,可以参考以下博客

https://blog.csdn.net/small_queen/article/details/115531530

使用systemctl enable/disable可以设定、取消一个程序的开机自启,其创建的指令在/lib/systemd/system/下(或者使用systemctl去看load行),如果某个软件安装的时候没有在这个目录下生成文件,那么必须得要手动配置后才能使用systemctl去控制开关,其格式以sshd.service为例

[Unit] #启动顺序与依赖顺序
Description=OpenSSH server daemon #描述
Documentation=man:sshd(8) man:sshd_config(5) #描述文档
After=network.target sshd-keygen.service #如果写在这行的服务需要启动,那么在此之前需要先启动sshd
Wants=sshd-keygen.service #表示两者之间是弱依赖关系,一个挂了不影响另外一个,另外有Requires字段表示强依赖

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd #环境参数配置文件
ExecStart=/usr/sbin/sshd -D $OPTIONS #自定义启动进程时的命令
ExecReload=/bin/kill -HUP $MAINPID #自定义reload时的命令
KillMode=process #定义 Systemd 如何停止 sshd 服务。
Restart=on-failure #Restart字段:定义了 sshd 退出后,Systemd 的重启方式。
RestartSec=42s #退出后重启前需要等待的时间

[Install] #定义以何种方式自启
WantedBy=multi-user.target #multi-user.target - 多用户命令行


#killmode字段
#control-group(默认值):当前控制组里面的所有子进程,都会被杀掉
#process:只杀主进程
#mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
#none:没有进程会被杀掉,只是执行服务的 stop 命令。


#restart字段
#no(默认值):退出后不会重启
#on-success:只有正常退出时(退出状态码为0),才会重启
#on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启
#on-abnormal:只有被信号终止和超时,才会重启
#on-abort:只有在收到没有捕捉到的信号终止时,才会重启
#on-watchdog:超时退出,才会重启
#always:不管是什么退出原因,总是重启

http://t.zoukankan.com/hukey-p-11031157.html

cpu、内存、进程

top
ps -aux

硬盘

df -h
du -h --max-depth
lsblk
snmpwalk

网络

ip查询

mtr

mtr xxx.com :用来检测发出数据包的主机到目标主机之间经过的网关数量,及网络质量、丢包、延时.主要看loss值,只有在目标那一跳丢包才是真的丢包,中间有丢包很正常不用管(首选)

ping

ping xxxx.com :探测到对端网络质量有无丢包,可以获取域名解析的 IP 地址

traceroute

traceroute :用来检测发出数据包的主机到目标主机之间经过的网关数量,及网络质量

traceroute -n xxx.cn
traceroute -n -T -p [$Port] [$Host]
traceroute -n -T -p 443 xxx.com (探测端口)

  • -n:直接使用IP地址而非主机名称(禁用DNS反查)。
  • -T:通过TCP探测。
  • -p:设置探测的端口号。
  • [$Port]:需要探测的端口号,比如"80"。
  • [$Host]:需要探测的目标服务器地址,比如“10.10.1.1”。

curl

请求耗时长可以使用此工具判断一个请求每个歩聚的时间


curl -so /dev/null -w '   
namelookup: %{time_namelookup}
connect: %{time_connect}
appconnect: %{time_appconnect}
pretransfer: %{time_pretransfer}
redirect: %{time_redirect}
starttransfer: %{time_starttransfer}
-------
total: %{time_total}
' baidu.com -d 'a=b'

   namelookup: 0.004 //dns解析
      connect: 0.036 //建立链接时间
   appconnect: 0.000 //ssl建立时间
  pretransfer: 0.036 //准备传输时间
     redirect: 0.000 //重定向时间
starttransfer: 0.070 //传输时间
               -------
        total: 0.070  //共计

tcpdump

https://blog.csdn.net/qq_51574197/article/details/116171604

嗅探80端口

日志

dmesg
journalctl
/var/log/