![]() |
Скрипт: найти пользователя просидевшего больше всего времени.
Здравствуйте, задача заключается в том, что необходимо определить кто из пользователей сидел больше всего времени в сети. В скрипт передается значения дня (Сегодня, вчера или позавчера). Проблема в правильной вырезки и проверки значений. У меня получилось сделать раскидывания с параметрами, застрял на самом тупом. Не могу понять каким образом можно правильно вырезать значения длительности сессии и при этом сохранить имя пользователя.
Как я делаю и думаю: Код:
last -s | grep "`date `" | cut -c 1-15,74-81 | tr -d "[(,)]" | tr -s " " Все под freebsd. |
Вырезать лучше не cut'ом, а awk '{print $1}'. Но лучше всего было бы, если бы Вы поместили кусок вывода last (я уже не помню совпадает ли он в выводом last в Linux, но ключа -s в Linux точно нет) и желаемый образец вывода сценария.
|
Сделал скрипт, тему можно удалить.
|
Цитата:
Это не чат а форум. Muro_like, В следующий раз пользуйтесь каким нибудь чатом, там сообщения не сохраняются. |
Код:
if [ $1 ] #проверка на аргумент then if [ $1 = "Today" ] #если сегодня выбрали then last -s | grep "`date`" | cut -c 1-15,74-81 | tr -d "[(,)]" >>UserTime uName="f" uTime="0" cat UserTime | while read line #line Будет переменной в которой сохраняются строка do tUser=`echo $line | awk '{print $1}'` if(( $uTime < $tUser )) 2>null then uTime=$tUser # или обнулением и заносим uName=`echo $list | awk '{print $1}'` fi done rm UserTime echo $uName elif [ $1="Yesterday"] ... elif [ $1="DayBeforeOne"] ... fi fi |
Время: 18:59. |
Время: 18:59.
© OSzone.net 2001-