[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Personalizar fichero bash_history en Debian.



Buenas,

El día 13 de julio de 2012 14:55, jmramirez (mas_ke_na)
<mas_ke_na@hotmail.com> escribió:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>>> Buenas...
>>>
>>>         Ya me encontré. Para hacer lo que pide Ramses seria:
>>>
>>> export sship=`cat /var/log/auth.log | grep ssh | grep Accepted | head -1
>>> | gawk  '{ print $11}'`
>>>
>>> Y luego
>>>
>>> export HISTTIMEFORMAT=`echo $sship "%d/%m/%y %T "`
>>>
>>> Ahora ya sale como quería:
>>>
>>>   589  127.0.0.1 13/07/12 14:11:18 export HISTTIMEFORMAT=`echo $sship
>>> "%d/%m/%y %T "`
>>>
>>> Puede dar errores y seguro que se puede mejorar, incluyendo por ejemplo
>>> que elimine la variable sship cuando en el fichero auth.log salga el
>>> disconect.
>>
>
> Buenas....
>
>> Veo que te ha gustado la idea, yo no tengo tanta experiencia como tú,
>> pero intento aportarte otra ayuda, a ver si así puedes solucionar el
>> tema del posible error al obtener sship:
>
> Que posible error? a mi no me sale ninguno.
>
>
>> ¿Y si la obtienes a partir de las variables de entorno?
>>
>>  echo $SSH_CLIENT
>>
>> En cada sesión SSH aparece la IP correcta.
>
> Pues la verdad es que puede ser mejor idea usar esa variable XD. Por lo
> que quedaría de esta forma:
>
> export HISTTIMEFORMAT=`echo $SSH_CLIENT "%d/%m/%y %T "`
>
> Aunque mete algo de "basura" al poner los otros dos campos que da el
> $SSH_CLIENT. Puedes hacer un gawk y poner solo el primer campo:
>
> export sship=`echo $SSH_CLIENT| gawk  '{ print $1}'`
>
> export HISTTIMEFORMAT=`echo $sship  "%d/%m/%y %T "`
>

He estado probando esta solución, y es lo que quería, con una
salvedad. Os cuento:

- He metido en el fichero ".bashrc" lo siguiente:

     --------------------------------------------------------------------------------------------
     # Muestra los comandos en formato "67  10.1.1.200 16/07/12 10:23:59 ls -la"
     export sship=`echo $SSH_CLIENT| gawk  '{ print $1}'`
     export HISTTIMEFORMAT=`echo $sship "%d/%m/%y %T "`

     # En vez de esperar un "exit" para guardar el "bashrc_history",
lo guarda comando a comando.
     shopt -s histappend
     PROMPT_COMMAND='history -a'
     --------------------------------------------------------------------------------------------

- Me conecto por ssh desde 10.1.1.200, ejecuto algunos comandos y la cierro.

- Me conecto a otra sesión ssh desde 10.1.1.200, hago un cat del
".bashrc_history" y me aparece lo siguiente:

     --------------------------------------------------------------------------------------------
     # cat .bash_history
       #1342427709
       history
       #1342427763
       set
       #1342427846
       mc
       #1342428059
       exit
     --------------------------------------------------------------------------------------------

Esos números los mete en el bashrc_history al meter estas dos líneas:

     export sship=`echo $SSH_CLIENT| gawk  '{ print $1}'`
     export HISTTIMEFORMAT=`echo $sship "%d/%m/%y %T "`

Es decir, nada legible para mí.

- Sin embargo, si ejecuto el comando "history" desde esa misma sesión
ssh, me aparece lo siguiente:

     --------------------------------------------------------------------------------------------
     # cat .bash_history
        1  10.1.1.200 16/07/12 10:24:42 history
        2  10.1.1.200 16/07/12 10:25:09 mc
        3  10.1.1.200 16/07/12 10:25:53 history
        4  10.1.1.200 16/07/12 10:30:19 exit
     --------------------------------------------------------------------------------------------

Y pensé que esto era lo que quería, pero estaba equivocado...

Si ejecuto el comando "history" desde una sesión ssh hecha desde la
10.1.1.100, me aparece lo siguiente:

     --------------------------------------------------------------------------------------------
     # cat .bash_history
        1  10.1.1.100 16/07/12 10:24:42 history
        2  10.1.1.100 16/07/12 10:25:09 mc
        3  10.1.1.100 16/07/12 10:25:53 history
        4  10.1.1.100 16/07/12 10:30:19 exit
     --------------------------------------------------------------------------------------------

Es decir, que no me guarda la IP desde la que se ejecutó el comando,
sino que, para mostrar el "history", coge la de la sesión ssh de ese
momento.

¿Sabe alguien cómo cambiar esos números raros que mete en el
"bashrc_history" por lo que se muestra en el comando "history".


Gracias y saludos,

Ramses


Reply to: