Сценарий счетчика входа в систему Ruby CSV - PullRequest
0 голосов
/ 25 апреля 2011

Я ищу скрипт ruby, который будет использовать что-то вроде last для подсчета частоты входа каждого пользователя и вывода его в файл csv, чтобы я мог создать гистограмму с наиболее частыми входами в систему.

Я хочу сохранить вывод CSV следующим образом:

user2,19
user6,20
user3,18 

Обычно последний выглядит так:

user3     :1001        192.1.20.17   Sun Nov 30 15:01   still logged in
user8    :1000        192.1.20.15   Sun Nov 30 10:00 - 11:52  (01:52)    
user2     tty7         :0               Tue Nov 25 19:43 - 21:09  (01:25)    
user0   tty7         :0               Tue Nov 25 16:46 - 18:06  (01:19) 

Есть ли что-то, что уже делает это, или как я могу это сделать?

1 Ответ

1 голос
/ 25 апреля 2011

может быть так:

file = `last`
hash = {}
file.each_line { |x| hash[x.split("     ")[0].split("    ")[0]] = 0 unless hash[x.split("     ")[0].split("    ")[0]]; hash[x.split("     ")[0].split("    ")[0]] += 1 }
output = ""
hash.each_pair { |key, value| output += "#{key},#{value}\n" }
File.open('last.csv', 'w') {|f| f.write(output) }

Вы должны проверить содержание "" в разбиении на правильность. также вы должны проверить точный вывод вашей последней команды - вам может понадобиться вынести часть мусора перед записью в файл;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...