Script linux URGENTE

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Tinker08
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Dom Jul 15, 2012 1:42 am

Script linux URGENTE

Mensaje por Tinker08 » Dom Jul 15, 2012 3:21 am

Buenas, soy nueva aqui y este es mi primer post!!! espero estar en el tema indicado!!! :D

Quisiera saber como crear programa de shell que devuelva los usuarios conectados en el sistema e indique hace cuanto tiempo fue ejecutado y la fecha y hora de la última ejecución.

El script debe de llevar un archivo de log con el registro de todas las salidas ejecutadas por el script por ejemplo en el archivo de texto /tmp/users.log


Ya tengo lo de la parte que devuelve los usuarios conectados en el sistema, pero no se como realizar la parte que debe imprimir cuando fue ejecutado la fehca y hora de la ultima ejecucion del script!!! Espero que me puedan ayudar!!! :?
Última edición por Deckon el Dom Jul 15, 2012 3:21 am, editado 1 vez en total.
Razón: Mensaje editado por uso excesivo de BBCode
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: Script linux URGENTE

Mensaje por fpuga » Dom Jul 15, 2012 12:07 pm

Hola, genial que hayas escogido este foro para participar. Pero yo te diría que te leyeras las normas. Lo de usar "URGENTE" en mayúsculas en el título no es muy elegante, sobre todo cuando tu post sueno mucho, muchísimo a "hazme el ejercicio de clase".

Si quieres que te ayuden estaría bien que postearas lo que tienes hasta ahora. Además preguntas muy similares a estas han sido respondidas en posts anteriores.
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
Avatar de Usuario
hmg79
Forista Legendario
Forista Legendario
Mensajes: 2211
Registrado: Lun Mar 31, 2008 8:00 am

Re: Script linux URGENTE

Mensaje por hmg79 » Dom Jul 15, 2012 4:42 pm

Como dice fpuga pone lo que tenes hasta ahora, con date sacas la fecha, hora y con direccionamiento mandas al archivo en cuestión.-
Tinker08
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Dom Jul 15, 2012 1:42 am

Re: Script linux URGENTE

Mensaje por Tinker08 » Mar Jul 17, 2012 4:31 am

Entiendo lo de URGENTE, pero no le de "hazme el ejercicio de clase" pues veras esa no es mi situacion!!! asi que te agradeceria que no ofendas pues si quisiera que me hicieran el trabajo de clase hubiera buscando ayuda no en internet si no con algun compañero!!!

Lo que tengo hasts ahora es lo siguiente:

#! /bin/sh

who

#Cantidad de usuarios conectados
uconn=`who | wc -l | sed 's/^ *//g'`

#Cantidad de usuarios reales
ureal=`who | cut -f1 -d ' ' | sort -u | wc -l | sed 's/^ *//g'`

#Numero de conexiones por usuario
who | cut -f1 -d ' ' | uniq -c | sort | sed 's/^ *//g'

echo "Conectados: $uconn"

echo "Reales: $ureal"

Me hace falta lo de indicar hace cuanto tiempo fue ejecutado y la fecha y hora de la última ejecución.
Avatar de Usuario
hmg79
Forista Legendario
Forista Legendario
Mensajes: 2211
Registrado: Lun Mar 31, 2008 8:00 am

Re: Script linux URGENTE

Mensaje por hmg79 » Mar Jul 17, 2012 5:01 am

Bueno a eso podes agregarle lo siguiente que te va a dar la fecha y hora de ejecución del archivo:

date > /tmp/users.log
De esa manera te va a resguardar cuando fue ejecutado por ultima vez el archivo en cuestión

date >>/tmp/users.log
Con esto se va a ir agregando todas las veces que se ejecuto el archivo en cuestión
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: Script linux URGENTE

Mensaje por fpuga » Mié Jul 18, 2012 8:33 pm

Como dice hmg79 más arriba para volcar los resultados que sacas por pantalla a un fichero de texto tienes que usar un pipe. Por ejemplo quedaría algo así:

Código: Seleccionar todo

echo "Conectados: $uconn" >> /tmp/users.log
Yo en lugar de usar directamente el nombre del fichero lo pondría en una variable por si tienes que cambiarlo en el futuro, por ejemplo

Código: Seleccionar todo

LOG_FILE="/tmp/users.log"
echo "Conectados: $uconn" >> $LOG_FILE
Para obtener el tiempo que ha pasado desde la última ejecución deberías parsear el fichero de log, para encontrar la línea que hace referencia a la última vez que ha sido ejecutado y compararlo con la actual. Seguramente la opción más fácil es pasar ambas fechas a formato "timestamp", restarlas y pasarlo a horas, días o lo que te interese.
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje