The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как можно записать историю открытия и закрытия программы?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 17-Авг-06, 15:19 
Возможно ли Linux настороить так, чтобы записывалось в некий файл история: дата и время открытия программы и дата и время ее закрытия?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от DEC (??) on 17-Авг-06, 16:12 
Накатай для проги обёртку которая будет это делать.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 17-Авг-06, 17:45 
>Накатай для проги обёртку которая будет это делать.

Если можете напишите, пожалуйста, пошаговый алгоритм как это сделать. К сожалению, всегда работал раньше с Windows и понимаю в Linux щчень мало. У меня FedoraCore 5 - Gnome. Нужно мониторить Firefox.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от DEC (ok) on 17-Авг-06, 19:06 
>>Накатай для проги обёртку которая будет это делать.
>
>Если можете напишите, пожалуйста, пошаговый алгоритм как это сделать. К сожалению, всегда
>работал раньше с Windows и понимаю в Linux щчень мало. У
>меня FedoraCore 5 - Gnome. Нужно мониторить Firefox.


переименовываешь прогу, пишешь скрипт который в начале сохраняет дату/время в нужный файл, потом стартуешь переименованную прогу из скрипта, после окончания работы она вернёт управление скрипту, потом опять скидываешь нужные данные в файл.

Фокс и так скриптом пускается - правь его под свои нужды

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 18-Авг-06, 14:43 
>Фокс и так скриптом пускается - правь его под свои нужды

Что это за скрипт? Где он лежит? Как его можно посмотреть?


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от kvk email on 18-Авг-06, 16:27 
>>Фокс и так скриптом пускается - правь его под свои нужды
>
>Что это за скрипт? Где он лежит? Как его можно посмотреть?

1. which firefox (ответ напр. /usr/bin/firefox)
2. mv /usr/bin/firefox /usr/bin/firefox.orig
3. mc -e /usr/bin/firefox (открываешь на редактирование)
пишешь
#!/bin/sh
LOG_FILE=/usr/local/log/firefox.log
echo "$USER" >> $LOG_FILE
echo "start:  " >> $LOG_FILE
date >> $LOG_FILE
/usr/bin/firefox.orig
echo "finish: " >> $LOG_FILE
date >> $LOG_FILE
echo "--------";
####################
+ команды
chmod a+rx /usr/bin/firefox
mkdir /usr/local/log/
chmod a+rw /usr/local/log/
####################

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от kvk email on 18-Авг-06, 16:31 
небольшая поправочка:
############### этот текст должен быть в файле firefox ###
>#!/bin/sh
>LOG_FILE=/usr/local/log/firefox.log
>echo "$USER" >> $LOG_FILE
>echo "start:  " >> $LOG_FILE
echo -n "start:  " >> $LOG_FILE
>date >> $LOG_FILE
>/usr/bin/firefox.orig
>echo "finish: " >> $LOG_FILE
echo -n "finish: " >> $LOG_FILE
>date >> $LOG_FILE
>echo "--------";
################################## end of file ###
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 19-Авг-06, 18:22 
Спасибо за хооший ответ. Особенно за комментарии к коду. Это помогает разобраться - очень.
Все работает.
Одна проблема, правда, появилась. Стали некорректно работать ярлыки с рабочего стола не ресурсы в интернете - браузер открывается не на той странице на которую ссылается ярлык, а на домашней странице самого брайзера.
Почему так? Как можно это исправить?


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 19-Авг-06, 20:20 
>Спасибо за хооший ответ. Особенно за комментарии к коду. Это помогает разобраться
>- очень.
>Все работает.
>Одна проблема, правда, появилась. Стали некорректно работать ярлыки с рабочего стола не
>ресурсы в интернете - браузер открывается не на той странице на
>которую ссылается ярлык, а на домашней странице самого брайзера.
>Почему так? Как можно это исправить?
судя по всему ярлыки имеют вид: firefox http://www.сайт.ru
стало быть надо передать параметры в скрипт...
>/usr/bin/firefox.orig
/usr/bin/firefox.orig $1 $2 $3 $4
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 20-Авг-06, 18:24 
>судя по всему ярлыки имеют вид: firefox http://www.сайт.ru
>стало быть надо передать параметры в скрипт...
>>/usr/bin/firefox.orig
>/usr/bin/firefox.orig $1 $2 $3 $4

Действительно это помогло - ссылки открываются корректно. Спасибо.
Пожалуйста, объясните еще, что означают эти все параметры.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

10. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 20-Авг-06, 20:27 
>>судя по всему ярлыки имеют вид: firefox http://www.сайт.ru
>>стало быть надо передать параметры в скрипт...
>>>/usr/bin/firefox.orig
>>/usr/bin/firefox.orig $1 $2 $3 $4
>
>Действительно это помогло - ссылки открываются корректно. Спасибо.
>Пожалуйста, объясните еще, что означают эти все параметры.

если Вы из командной строки вызываете shell-скрипт с аргументами:
prog.sh arg1 arg2
то $0 - имя вызывающего скрипта
$1,$2... = arg1,arg2...
----
пример: test.sh
#!/bin/sh

echo $1
----
вызов:
[...] sh ./test.sh aaaaaa
ответ:
aaaaaa
-------

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

11. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от newser (??) on 21-Авг-06, 09:47 
>/usr/bin/firefox.orig $1 $2 $3 $4

Лучше все-таки так:

/usr/bin/firefox.orig "$@"


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

12. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 21-Авг-06, 13:43 
>>/usr/bin/firefox.orig $1 $2 $3 $4
>
>Лучше все-таки так:
>
>/usr/bin/firefox.orig "$@"

Пожалйста, дайте разъяснения почему? К сожалению не понимаю, что означают эти аргументы? В чем разница и что означают эти аргументы? Почему второй вариант лучше?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

13. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 21-Авг-06, 14:04 
>>>/usr/bin/firefox.orig $1 $2 $3 $4
>>
>>Лучше все-таки так:
>>
>>/usr/bin/firefox.orig "$@"
>
>Пожалйста, дайте разъяснения почему? К сожалению не понимаю, что означают эти аргументы?
>В чем разница и что означают эти аргументы? Почему второй вариант
>лучше?

он просто грамотнее...
$1 $2 $3 $4 - в этих переменных содержаться значения 4-х передаваемых аргументов
$@ - это сразу все аргументы
[kvk@KVK aaa]$ script a1 a2 a3
$1 == 'a1'
$2 == 'a2'...
$@ == 'a1 a2 a3'
----
грамотнее потому, что аргументов может быть более 4-х. Используя $@ не потеряешь передаваемых аргументов...

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

14. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 21-Авг-06, 14:12 
>>>>/usr/bin/firefox.orig $1 $2 $3 $4
>>>
>>>Лучше все-таки так:
>>>
>>>/usr/bin/firefox.orig "$@"
>>
>>Пожалйста, дайте разъяснения почему? К сожалению не понимаю, что означают эти аргументы?
>>В чем разница и что означают эти аргументы? Почему второй вариант
>>лучше?
>
>он просто грамотнее...
>$1 $2 $3 $4 - в этих переменных содержаться значения 4-х передаваемых
>аргументов
>$@ - это сразу все аргументы
>[kvk@KVK aaa]$ script a1 a2 a3
>$1 == 'a1'
>$2 == 'a2'...
>$@ == 'a1 a2 a3'
>----
>грамотнее потому, что аргументов может быть более 4-х. Используя $@ не потеряешь
>передаваемых аргументов...

Спасибо, большое. Я очень приятно был порадован ответами на этом форуме.
$@ - обязательно должен быть в двойных кавычках?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

15. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от newser (??) on 21-Авг-06, 14:45 
>Спасибо, большое. Я очень приятно был порадован ответами на этом форуме.
>$@ - обязательно должен быть в двойных кавычках?

В общем случае - да. За разъяснениями предлагаю обратиться к man sh, либо к странице руководства используемого Вами shell. Ну и в сети много документации, поищите.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

16. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 26-Авг-06, 13:00 
Если я правильно понимаю, то файл лога должен быть для такого скрипта доступен на запись а это в свою очередь позволяет пользователю, который запускает веб-браузер, отредактировать файл (стереть, добавить записи). Как можно это исключить?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

17. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 26-Авг-06, 14:04 
>Если я правильно понимаю, то файл лога должен быть для такого скрипта
>доступен на запись а это в свою очередь позволяет пользователю, который
>запускает веб-браузер, отредактировать файл (стереть, добавить записи). Как можно это исключить?
>
Напр.использовать sudo

echo "$USER" >> $LOG_FILE
echo "start:  " >> $LOG_FILE
date >> $LOG_FILE
# это перенести в отдельный скрипт (/usr/local/bin/log1.sh)

echo "finish: " >> $LOG_FILE
date >> $LOG_FILE
# это перенести в отдельный скрипт (/usr/local/bin/log2.sh)

тогда текст будет:
sudo /usr/local/bin/log1.sh
/usr/bin/firefox.orig
sudo /usr/local/bin/log2.sh

и исправить файлик sudoers (у меня /etc/sudoers) на выполнение этих 2-х скриптов для группы, в которую поместить всех пользователей...
----
права на LOG_FILE сделать chmod 600, chown root

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

18. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 26-Авг-06, 14:50 
>и исправить файлик sudoers (у меня /etc/sudoers) на выполнение этих 2-х скриптов
>для группы, в которую поместить всех пользователей...

Как должна приблизительно выглядить строка в этом файле?

>права на LOG_FILE сделать chmod 600, chown root

chown root - это владелиц файла?
chmod 600 - ?
Владелец -  rwx
Группа - rwx
Прочие - rwx
Как должны быть эти права расставлены?

Извините, за элементарные вопросы. Но они  меня возникают. Спасибо за помощь.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

19. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 26-Авг-06, 15:32 
>>и исправить файлик sudoers (у меня /etc/sudoers) на выполнение этих 2-х скриптов
>>для группы, в которую поместить всех пользователей...
>
>Как должна приблизительно выглядить строка в этом файле?
там есть образец:
%yourgroup ALL=/usr/local/bin/log1.sh,/usr/local/bin/log2.sh

см. также:
https://www.opennet.ru/man.shtml?topic=sudo&category=8&russian=0
https://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=sudoers&category=5

причем дайте нормальные права на /usr/local/bin/log1.sh,/usr/local/bin/log2.sh, чтобы user'ы могли читать-исполнять, но не писать (chmod 755)
>>права на LOG_FILE сделать chmod 600, chown root
>
>chown root - это владелиц файла?
>chmod 600 - ?
>Владелец -  rwx
>Группа - rwx
>Прочие - rwx
>Как должны быть эти права расставлены?
сделайте
chown root <LOG_FILE>
chmod 600 <LOG_FILE>
ls -l <LOG_FILE>
-rw---- root <LOG_FILE>

>Извините, за элементарные вопросы. Но они  меня возникают. Спасибо за помощь.
>


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

20. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 26-Авг-06, 16:15 
Тепрь идентификация пользователя потеряна, т.к. он, если я правильно понимаю выполняет скрипт не от своего имени - пишется в лог root - как значение переменной $USER


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

21. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 26-Авг-06, 16:18 
>Тепрь идентификация пользователя потеряна, т.к. он, если я правильно понимаю выполняет скрипт
>не от своего имени - пишется в лог root - как
>значение переменной $USER

проверить это можно вставив в прогу:
echo $USER
---
если действительно "потерян" user, то это решается так:
в firefox в начало

export REAL_USER=$USER

потом оперировать не $USER, а $REAL_USER

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

22. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 26-Авг-06, 17:07 
>проверить это можно вставив в прогу:
>echo $USER

При запуске скрипта firefox значение переменной $USER - реальный пользователь

>если действительно "потерян" user, то это решается так:
>в firefox в начало
>
>export REAL_USER=$USER

REAL_USER присваивается значение рельного пользователя, но оно не передается в скрипт log1.sh
пробовал добавить после вызыва скрипта $REAL_USER или $1 $2 - ничего не помогает.

Как передать значение переменной REAL_USER в скрипт log1.sh?

>потом оперировать не $USER, а $REAL_USER


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

23. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 26-Авг-06, 17:13 
>>проверить это можно вставив в прогу:
>>echo $USER
>
>При запуске скрипта firefox значение переменной $USER - реальный пользователь
>
>>если действительно "потерян" user, то это решается так:
>>в firefox в начало
>>
>>export REAL_USER=$USER
>
>REAL_USER присваивается значение рельного пользователя, но оно не передается в скрипт log1.sh
>
>пробовал добавить после вызыва скрипта $REAL_USER или $1 $2 - ничего не
>помогает.
>
>Как передать значение переменной REAL_USER в скрипт log1.sh?
>
>>потом оперировать не $USER, а $REAL_USER

даже export не помагает?
тогда:
/usr/local/bin/log1.sh =>
/usr/local/bin/log1.sh $REAL_USER
В файл:
/usr/local/bin/log1.sh
USER=$1
или
USER2=$1 и далее оперировать не $USER, а $USER2

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

25. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от bpa email(ok) on 26-Авг-06, 18:58 
Все заработало! Спасибо.

Есть еще один вопрос. Запуск веб-браузера через такой скрипт приводит почему-то к тому, что во время загрузки веб-браузера курсор мыши не меняется на символ "процесса выполнения некой работы". Пользователь начинает думать, что он не задал команду запуска программы и снова запускает программу.
Почему так и стало и можно ли это исправить?


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

26. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 26-Авг-06, 19:01 
>Все заработало! Спасибо.
>
>Есть еще один вопрос. Запуск веб-браузера через такой скрипт приводит почему-то к
>тому, что во время загрузки веб-браузера курсор мыши не меняется на
>символ "процесса выполнения некой работы". Пользователь начинает думать, что он не
>задал команду запуска программы и снова запускает программу.
>Почему так и стало и можно ли это исправить?


Этого  я не понял... Или поподробнее опишите проблему (начиная с того как именно user запускает броузер...) или создайте новую тему.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

24. "Как можно записать историю открытия и закрытия программы?"  
Сообщение от konst email(??) on 26-Авг-06, 18:36 
скорее всего - Вы фигней занимаетесь. Не вижу смысла в том, что Вы пытаетеь сделать...
Но: с точки зрения умения писать элементарные shell-скрипты - это весьма полезно. так что тренируйтесь-разбирайтесь...
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

27. "Спасибо большое! Ваши цены действительно обрадовали!"  
Сообщение от max7811 email on 31-Авг-06, 01:10 
Отличные цены. Все четко. Большое спасибо. Обязательно если что-то появится отпишусь. http://www.russok.ru это тоже Ваш проект?


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру