Shell‑скрипты, Ansible, deployment‑сценарии и другие подходы к автоматизации задач администрирования.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
konstantine
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2009-03-14 11:51:17
Непрочитанное сообщение
konstantine » 2009-10-13 7:17:05
Здравствуйте!
Возникла такая проблема хочу с помощью команды who на shell`e извлеч в переменные DATE и TIME дату и время уже зная при этом логин пользователя
Логин пользователся я извлекаю таким методом:
Код: Выделить всё
cd ~
LOGIN=`pwd | sed 's/\/home\///'` #- это на линуксе, на фре пришлось бы
LOGIN=`pwd | sed 's/\/usr\/home\///'`
Изучать шелл начал только вчера поэтому пока не хватает опыта самому додуматься
who | sed 'а дальше ступор' , т.к. who может выдать:
Код: Выделить всё
konstantine :0 2009-10-13 08:35
konstantine pts/0 2009-10-13 08:35 (:0.0)
а может выдать:
Код: Выделить всё
ok_mtv pts/1 2009-10-13 07:29
finknv pts/6 2009-10-13 07:30
dir_sda pts/10 2009-08-25 07:38
fin_ojm pts/11 2009-10-13 07:37
ok_znm pts/13 2009-10-13 07:39
ok_aiv pts/15 2009-10-13 07:39
omis_pmu pts/21 2009-10-05 15:37
fin_ngg pts/22 2009-10-13 07:46
fin_chaa pts/26 2009-10-13 07:47
fin_kip pts/36 2009-10-13 08:54
omts-2 pts/40 2009-10-12 08:22
finbni pts/47 2009-10-13 09:23
ok_aiv pts/16 2009-10-13 07:39
fin_don pts/42 2009-10-12 08:30
omis_piia pts/32 2009-10-13 08:39
finknv pts/3 2009-10-13 07:30
omis_oks pts/25 2009-10-06 07:31
omis_puw pts/50 2009-08-20 13:14
ok_qqq pts/28 2009-10-13 07:51
omis_toi pts/51 2009-08-27 09:24
omis_ksen pts/55 2009-10-13 09:41
ivc_sna pts/56 2009-10-12 13:19
omis_puw pts/59 2009-09-17 11:40
fin_ptn pts/18 2009-10-13 07:43
fin_kls pts/5 2009-08-19 14:34
omis_puw pts/31 2009-09-21 10:00
dir_chsp pts/60 2009-09-21 14:36
ivc_kss pts/61 2009-10-13 10:51
kos pts/64 2009-10-13 11:13 (192.168.222.32)
admin pts/63 2009-10-13 11:05
dir_kuch pts/65 2009-08-24 15:11
fin_aak pts/53 2009-10-13 09:33
а мне допустим нужно знать когда и во сколько залогинился например пользователь kos
@lissyara: Решений "искаропки" под конкретную задачу - катастрофически мало.
Любое боле-мене серьёзное решение - это кручение коробки под себя.
konstantine
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
konstantine
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2009-03-14 11:51:17
Непрочитанное сообщение
konstantine » 2009-10-13 8:38:27
Всё решил проблему вот так:
Код: Выделить всё
DATE_ON=`who -m | while read a b DATE_ON TIME_ON; do echo $DATE_ON; done`
TIME_ON=`who -m | while read a b DATE_ON TIME_ON; do echo $TIME_ON; done`
echo DATE_ON=$DATE_ON
echo TIME_ON=$TIME_ON
При работе выдаёт так:
Код: Выделить всё
konstantine@konstantine:~/bin> sh test.sh
DATE_ON=2009-10-12
TIME_ON=16:38
@lissyara: Решений "искаропки" под конкретную задачу - катастрофически мало.
Любое боле-мене серьёзное решение - это кручение коробки под себя.
konstantine
-
konstantine
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2009-03-14 11:51:17
Непрочитанное сообщение
konstantine » 2009-10-14 4:20:15
млин в некоторых ситуациях who -m ничего не отображает, поэтому пришлось чуток доработать, воть:
Код: Выделить всё
DATE_ON=`/usr/bin/who | while read a b DATE_ON TIME_ON c; do if test "$LOGIN"=$a; then /bin/echo $DATE_ON; exit; fi done`
TIME_ON=`/usr/bin/who | while read a b DATE_ON TIME_ON c; do if test "$LOGIN"=$a; then /bin/echo $TIME_ON; exit; fi done`
@lissyara: Решений "искаропки" под конкретную задачу - катастрофически мало.
Любое боле-мене серьёзное решение - это кручение коробки под себя.
konstantine