3

Пожалуйста, поделитесь командой, чтобы найти любой скрипт, который выполняется более 30 минут. в системе Linux

2 ответа2

1

Команда ps имеет поле etimes , которое дает вам время с момента запуска данного процесса, в секундах.

следующий скрипт bash выведет PID процессов, которые выполнялись более 30 минут.

#!/bin/sh
MIN=30
SEC=$((MIN*60))
ps -eo etimes=,pid= | while read sec pid; do
 if [ ${sec} -gt ${SEC} ]; then
   echo ${pid}
 fi
done
1

Предполагая дату GNU + ps, вы получите список пидов старше 30 минут:

# weird format to match ps -o lstart
cutoff=$(date -d '30 minutes ago' +'%a %b %e %T %Y')
ps -e -o lstart,pid |
awk '$0 < "'"$cutoff"'" {print NF}'

В Linux вы можете проверить, преобразуется ли /proc /$ pid /exe в известный интерпретатор, такой как /bin /sh, /bin /bash или /usr /bin /python - если это так, вы знаете, что это скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .