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计划任务的格式