GrandOB

问题解析

查看内存总量

[root@localhost ~]# free -h ----人性化显示内存使用情况
              total        used        free      shared  buff/cache   available
Mem:           1.8G        329M        270M        9.1M        1.2G        1.2G
Swap:          4.0G          0B        4.0G
[root@localhost ~]# free -h |awk '/Mem/{print $2}' ----单独显示包含Mem这一行第二个数字
1.8G

如何解决中毒

  1. 利用top、ps aux等命令查看异常文件
  2. 通过进程号在/porc文件夹下对应文件夹中的exe软链接找到对应程序的位置
  3. 确认是否可以结束,可以则删除并建立同名文件,锁定文件

确定单线程,多线程

pstree (不准,分不清是线程还是子程序)
[root@localhost ~]# pstree -p |grep nginx ----查看进程树,过滤出需要的程序
           |-nginx(745)---nginx(746)


grep -i threads /proc/进程的PID/status
[root@localhost ~]# grep -i threads /proc/745/status ----过滤出/proc文件夹中对应进程号的文件夹里的status文件中线程那行
Threads:	1

prtstat    进程pid号
[root@localhost ~]# prtstat 1033 |grep -i threads ----过滤出进程信息里的有线程的行
  CPU#:  0  		TTY: 0:0	Threads: 5

过滤僵尸进程

[root@localhost ~]# ps aux |grep -v grep |grep Z ----查看系统所有进程,排除grep进程,过滤出带Z的行
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      15273  0.1  0.0      0     0 pts/2    Z    13:48   0:00 [bash] <defunct>

[root@localhost ~]# ps aux |awk '$8~/Z/'  ----查看系统所有进程,筛选第8列包含Z的行
root      15273  0.1  0.0      0     0 pts/2    Z    13:48   0:00 [bash] <defunct>

统计进程总数

1.top命令
[root@localhost proc]# top
top - 13:42:14 up  5:20,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 162 total,   2 running, 160 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1867048 total,   889420 free,   349012 used,   628616 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  1285816 avail Mem 

Tasks: 162 total ----162个进程


2.ps aux |wc -l
[root@localhost proc]# ps aux |wc -l
164

统计某用户的进程总数
pgrep -u用户名|wc -l或者ps aux |grep 用户名 |wc -l
[root@localhost proc]# pgrep -u saber  |wc -l
1

根据pid号能找到进程的具体位置

[root@localhost ~]# ps aux k -%cpu ----查看运行的所有进程
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        736  0.1  0.3 305304  6312 ?        Ssl  08:22   0:32 /usr/bin/vmtoolsd ----找出需要查找的进程
root          1  0.0  0.3 128164  6824 ?        Ss   08:21   0:10 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2  0.0  0.0      0     0 ?        S    08:21   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    08:21   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   08:21   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    08:21   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    08:21   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    08:21   0:12 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S    08:21   0:00 [watchdog/0]
...

[root@localhost ~]# ll /proc/736/exe 在/proc文件夹中有对应进程号的文件夹查看其中的exe软链接可以查看对应的进程位置
lrwxrwxrwx. 1 root root 0 4月  18 08:22 /proc/736/exe -> /usr/bin/vmtoolsd

[root@localhost ~]#touch a;chattr +i  a

删除了大文件但空间没有被释放

有用户在使用这个文件,rm -rf尽量避免使用

echo   ' '  > 需清理的文件 ----在文件中输入空格可以替换原有内容从而释放空间

误删恢复

只在有人还在使用这个文件时可以恢复

bash1
[root@localhost ~]# tail -f 123
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha


bash2
[root@localhost ~]# rm -rf 123

[root@localhost ~]# lsof |grep delete |grep 123
tail      10883                 root    3r      REG              253,0       272   17487132 /root/123 (deleted)

[root@localhost ~]# cd /proc/10883/fd

[root@localhost fd]# ll
总用量 0
lrwx------. 1 root root 64 4月  18 18:54 0 -> /dev/pts/0
lrwx------. 1 root root 64 4月  18 18:54 1 -> /dev/pts/0
lrwx------. 1 root root 64 4月  18 18:54 2 -> /dev/pts/0
lr-x------. 1 root root 64 4月  18 18:54 3 -> /root/123 (deleted)
lr-x------. 1 root root 64 4月  18 18:54 4 -> anon_inode:inotify

[root@localhost fd]# cat 3 > /data/123

[root@localhost fd]# cat /data/123 
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha
asuhfiuahsgilha

清理服务器缓存

[root@localhost vm]# cat drop_caches
0 ----不清理缓存
[root@localhost vm]# echo 3 >/proc/sys/vm/drop_caches
[root@localhost vm]# cat drop_caches
3 ----清理缓存

生成一个长度为8的随机密码

[root@localhost ~]# cat /dev/urandom |tr -dc 'A-Za-z0-9' | head -c 8
AwJ4RHgA[root@localhost ~]#

#/dev/urandom:提供了一个无需阻塞的随机数据流。

#tr -dc 'A-Za-z0-9':通过tr命令删除(-d)所有非目标字符(-c),只保留大小写字母和数字。

#head -c 8:取前8位字符作为随机密码。

posted on 2024-04-18 19:02  OB书写  阅读(9)  评论(0编辑  收藏  举报

导航