1

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

4 ответа4

1

Bash записывает историю всех команд, которые вы запускаете, и вы также можете записать временную метку - см. Http://larsmichelsen.com/open-source/bash-timestamp-in-bash-history/ для получения дополнительной информации.

Но история bash не вечна, и она по-прежнему записывает только то, что вы запускаете из командной строки.

1

Ваше собственное предложение совсем не плохо. Такой сценарий может иметь вид

#!/bin/bash

# Get the program you wish to launch from arguments
PROGNAME="$1"
# Shift script arguments to use the remaining ones later
shift

# Check that a PROGNAME was provided
if [ -z "$PROGNAME" ]; then
   echo "Usage: $0 <program> [program options]"
   exit 1
fi

# Log in your home directory, one directory per program
LOGDIR="$HOME/logs/$PROGNAME"

# Create log directory if it doesn't exist yet
if [ ! -d "$LOGDIR" ]; then
   mkdir -p "$LOGDIR"
fi

# Get the date now
DATE=$(date +'%Y%m%d%H%M%S')

# Start program with it's options and log into the logdir
eval "$PROGNAME" $@ >"${LOGDIR}/${PROGNAME}_${DATE}.log" 2>"${LOGDIR}/${PROGNAME}_${DATE}.err"

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

Другой вариант - использовать sudo, который автоматически регистрируется в auth.log, но использует его таким образом, чтобы он не запускал программы как root, то есть:

sudo -u $USER firefox

который запустит Firefox от себя, используя sudo.

Например:

$ sudo -u $USER ksnapshot
# I kill the program
$ tail -1 /var/log/auth.log
   Dec 28 08:20:07 jonah sudo:  raphink : TTY=pts/1 ; PWD=/home/raphink ; USER=raphink ; COMMAND=/usr/bin/ksnapshot
0

Одной из возможностей было бы написать небольшой bash-скрипт вида

$ myLogging firefox

в этом примере регистрируется время запуска Firefox, а затем просто запускается Firefox.

Однако для этого потребуется, чтобы я выполнял все свои действия, такие как запуск приложения, из командной строки. Кроме того, что если я захочу запустить firefox с некоторыми собственными аргументами?

0

Я не знаю, доступен ли 'snoopy' для Ubuntu, но в Debian каждая команда, которую вы запускаете, регистрирует в /var/log/auth.log.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .