Zhang21 / Plans

My personal plans.
Creative Commons Zero v1.0 Universal
1 stars 0 forks source link

系统管理员知识(test your sysadmin skills) #5

Open Zhang21 opened 2 years ago

Zhang21 commented 2 years ago

参考:


系统管理员相关知识技能。记录一些自己还不太熟悉的内容。

Zhang21 commented 2 years ago
# pushd, popd命令用于多个目录之间切换
# cd主要是两个目录之间切换
pushd/popd/dirs/cd
Zhang21 commented 2 years ago
# linux中!(叹号)的用法
# !和历史命令有关

# 执行某个历史命令
!history-id
# 上一个命令
!!
# 上一个命令的所有参数
!*
# 上一个命令的第一个参数
!^
# 上一个命令的最后一个参数
!$
# 去掉最后一个参数执行上一个命令
!:-
Zhang21 commented 2 years ago
# 强大的分屏工具
tmux/screen
Zhang21 commented 2 years ago

vlan和subnet的区别:

Zhang21 commented 2 years ago

localhost127.0.0.1的区别:

localhost还需要查找和解析

Zhang21 commented 2 years ago

版本控制提交信息的一个规则:

Zhang21 commented 2 years ago

Linux系统的启动流程:

power -> bios -> bootloader -> kernel -> init/deamon
Zhang21 commented 2 years ago

系统负载大于1.0应该注意,大于5.0就更得处理了。

Zhang21 commented 2 years ago

真实用户和有效用户:

例如让普通用户以root执行的/usr/bin/passwd来修改/etc/passwd/etc/shadow文件。

# s 设置了setuid, 更改了普通用户执行passwd进程的euid,让普通用户有权限修改/etc/passwd或/etc/shadow
-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd


# setuid: 只对可执行文件有效, 4---
chmod u+s binA
# setgid: 只对目录有效,2---
chmod g+s dirB
# sticky bit: 防删除,other有w也无法删除,1---
chmod o+t file1

# 如
0644  rw-r--r--
2644  rwSr--r--
2744  rwsr--r--
Zhang21 commented 2 years ago

strace:查看系统调用和信号。别在生产环境对正在运行的进程使用strace,因为它的每次系统调用都会暂停进程。会对应用性能造成影响。 ltrace:system calls和library calls

Zhang21 commented 2 years ago

ulimit: 系统资源限制和控制

# 文件
/etc/security/limits.conf

# hard limits
# sort limits

# 命令
ulimit
Zhang21 commented 2 years ago

ldd命令找出可执行程序运行需要的动态库。

Zhang21 commented 2 years ago

tcp三次握手和四次挥手

Zhang21 commented 2 years ago

数据结构基础知识:

Zhang21 commented 2 years ago

为程序运行提供动态运行库:

# LD_LIBRARY_PATH环境变量
export LD_LIBRARY_PATH="/list/of/library/paths:/another/path" ./program
Zhang21 commented 2 years ago

Linux系统调用:

Zhang21 commented 2 years ago

中断(interrupt)和中断处理程序(interrupt handler)。

Linux内核使用中断来管理硬件设备。中断本质上是一种电信号。中断是异步的。当接收到一个中断时,内核会执行中断处理程序,每个可以产生中断的设备都有一个对应的中断处理程序。中断处理程序是设备驱动的一部分。

可通过/proc/interrupts查看系统的中断的状态。


image

Zhang21 commented 2 years ago

inode上存储的字段:

Zhang21 commented 2 years ago

chroot的优点:

Zhang21 commented 2 years ago

segfault(segmentation fault),是导致程序奔溃的常见条件,通常由于程序尝试读/写非法内存位置引起。也有可能是内存限制太低。

程序内存空间被分为不同的段:

使用ulimit查看和设置相关限制项。程序奔溃生成core file。使用gdb调试core file。


1 2

Zhang21 commented 2 years ago

这几个的区别:

Zhang21 commented 2 years ago

文件描述符(fd, file descriptor):Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件,所有执行I/O操作的系统调用都会通过文件描述符。

可通过ulimit -n命令查看用户打开文件数限制,通过/proc/pid/limits查看进程的限制,通过/proc/pid/fd查看进程的fd。

特殊的三个文件描述符:


Zhang21 commented 2 years ago

系统负载高,cpu使用率不高:最有可能的原因是磁盘IO问题。查看哪个进程或哪个磁盘有异常。

以下几个工具:

Zhang21 commented 2 years ago

nice, renice设定进程优先级(-20到19,越小越优先,默认0)。

ionice设定或获取程序IO调度类和优先级(0到7,越小越优先)。


nice -n 10 bin/xxx
renice -n 5 -p pid

ionice -c3 dd if=/dev/zero of=/tmp/ddfile


通过fd可以查看使用该文件的进程,命令 fuser filename通过查找/proc/pid/fd来找出使用该文件的进程。

Zhang21 commented 2 years ago

限制进程的cpu使用:

Zhang21 commented 2 years ago

挂载一个临时ram分区,tmpfs是一种虚拟内存文件系统。

mount -t tmpfs tmpfs /mnt/haha -o size=64M
Zhang21 commented 2 years ago

是否可以有IP地址的SSL证书?

只要它是公网IP就可以,但用的很少。

Zhang21 commented 2 years ago

bash的一个特殊功能:

根据$?为0还是1,判断连接是否正常。

timeout 2 bash -c "</dev/tcp/host/port"; echo $?
Zhang21 commented 2 years ago

使用nc创建tcp/udp代理:

### TCP -> TCP
nc -l -p 2000 -c "nc [ip|hostname] 3000"

### TCP -> UDP
nc -l -p 2000 -c "nc -u [ip|hostname] 3000"

### UDP -> UDP
nc -l -u -p 2000 -c "nc -u [ip|hostname] 3000"

### UDP -> TCP
nc -l -u -p 2000 -c "nc [ip|hostname] 3000"