Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
#!/bin/bash
ps -U user -o pid,command | tail -n +2 | sed -r "s/\s*([0-9]+)\s(.+)$/\1:\2/" > ans1.tmp
#!/bin/bash
ps -Ao pid,stime | tail -n +2 | sort -r -k2 | head -9 | sort -k2 | head -1 | awk '{print
$1}'
3. Вывести в файл список PID всех процессов, которые были запущены командами,
расположенными в /sbin/
#!/bin/bash
for i in $(ls /proc/ | grep "[0-9]\+")
do
echo $i | readlink /proc/$i/exe | grep "/sbin" | echo $i >> ans3.tmp
done
4. Для каждого процесса посчитать разность резидентной и разделяемой части памяти процесса
(в страницах). Вывести в файл строки вида PID: разность, отсортированные по убыванию этой
разности.
#!/bin/bash
ps -A -o pid | tail -n +2 | gawk '{file1="/proc/"$1"/statm"; getline f<file1; close
(file1); split(f, a); print $1, ":", a[2]-a[3]}' | tr -d " " | sort -r -n -t ":" -k2 >
ans4.tmp
5. Для всех зарегистрированных в данный момент в системе процессов выведите в один файл
строки ProcessID=PID: Parent_ProcessID=PPID: Average_Sleeping_Time=SleepAVG. Значения
PPid и SleepAVG возьмите из файлов status, которые находятся в директориях с названиями,
соответствующими PID процессов в /рrос . Отсортируйте эти строки по идентификаторам
родительских процессов.
#!/bin/bash
status=""
for pid in $(ps -A -o pid | tail -n +2)
do
file="/proc/"$pid"/status"
file1="/proc/"$pid"/sched"
ppid=$(grep -E -h -s -i "ppid:\s(.+)" $file | grep -o "[0-9]\+")
sleepavg=$(grep -E -h -s -i "avg_atom(.+)" $file1 | grep -o "[0-9.]\+")
if [[ -z $sleepavg ]]
then sleepavg=0
fi
if [[ $ppid != "" ]]
then status=$status"ProcessID="$pid" : Parent_ProcessID="$ppid" :
Average_Sleeping_Time="$sleepavg$'\n'
fi
done
echo "$status" | sort -t " " -k2 > ans5.tmp