1 查看一个进程的线程数

egrep -i threads /proc/进程ID/status
pstree -p #查看{},里面就是一个线程

2.找到未知进程的执行程序文件路径

ls -l  /proc/1007/exe
/proc/1007/exe 是一个符号链接,指向这个进程的执行程序

4.利用 lsof 恢复正在使用中的误删除的文件

lsof |grep /var/log/messages
rm -f /var/log/messages
lsof |grep /var/log/messages
cat /proc/653/fd/6
cat /proc/653/fd/6 > /var/log/messages

5.利用 0 信号实现进程的健康性检查

[root@rocky8-3 ~]# killall -0 bash
[root@rocky8-3 ~]# echo $?
0
#此方式有局限性,即使进程处于停止或僵尸状态,此方式仍然认为是进程是健康的

6.关掉指定端口的进程

[root@rocky8 ~]#fuser -k -9 80/tcp
ss -np | egrep :22

kill -15 pid

7.如何在秒级别运行任务?

#!/bin/bash

while true; do
    CMD
    sleep 1
done

8 如何实现每7分钟运行一次任务?

*/7  *  * * *  root  CMD

9.每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-ddHH.tar.xz”,其中日期是前一天的时间

etc_backup.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin

[ ! -e /backup ] && mkdir /backup
tar -Jcf  /backup/etcbak-`date -d '-1day' +%F%H`.tar.xz   /etc   &>/dev/null

create_cron_task.sh

#!/bin/bash

cat > /etc/cron.d/etc_backup_cron <<EOF
SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin
MAILTO=root

30 1 * * 1-5 root bash /root/bin/etc_backup.sh

EOF

12 解释top命令每一行的意义

14 说明cron计划任务的格式