Shell процедура

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

NJL
Сообщения: 2

Shell процедура

Сообщение NJL »

Нужна помощь в написании Shell процедуры,
дали такое задание на лабораторной (все время изучали Win) про linux и Shell ничего не знаю :(

- введите терминалу целое число
- всем пользователям вывести сообщение про среднее количество запущеных процессов
- если число процессов больше среднего количества процессов + введенное целое число, то вывести сообщение о предупреждении
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Shell процедура

Сообщение BlackStar »

Решать за тебя лабу не буду, подскажу лишь куда копать

Ввод с терминала: read val, в результате в переменной val будет содержаться введеное число.
Послать сообщение всем пользовател: wall.
Получить список процессов: ps
Вывести сообщение: echo сообщение

По всем командам читать man!
LightLang Team
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Shell процедура

Сообщение polachok »

ниче не понял что требуется... особенно про "среднее количество запущеных процессов"

#!/bin/sh
read int
UN=`ps -o ruser='' ax|sort -u|wc -l`
PN=`ps -o ruser='' ax|wc -l`
AV=$(($PN/$UN))
AV=$((AV+$int))
for user in `ps -o ruser='' ax|sort -u|tr '\n' ' '`
do
PRN=`ps -o ruser='' ax|sort|grep -c $user`
echo "N of p: $PRN" | write $user
if [ $AV -lt $PRN ]
then
echo "warning $PRN > $AV" | write $user
fi
done
И немедленно выпил.
Спасибо сказали:
NJL
Сообщения: 2

Re: Shell процедура

Сообщение NJL »

polachok, спасибо.
На сколько я понял - под средним числом процессов надо понимать число всех процессов деленное на число всех пользователей.

BlackStar, буду копать - выбора нет :)
Спасибо сказали: