Пожалуйста, поделитесь командой, чтобы найти любой скрипт, который выполняется более 30 минут. в системе Linux
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 - если это так, вы знаете, что это скрипт.