Problema CRON y AT en Debian

Iniciado por rusogumo, 21 Noviembre 2014, 12:48 PM

0 Miembros y 1 Visitante están viendo este tema.

rusogumo

Esta es la salida de los comandos... mis variables de entorno son las siguientes:

env > ~/root.txt
cat ~/root.txt

HOME=/root
LOGNAME=root
PATH=/usr/bin:/bin
LANG=es_ES.UTF-8
SHELL=/bin/sh
PWD=/root

En cuanto a la ubicacion de mis programas estas son:

whereis grep awk date

grep: /bin/grep /usr/share/man/man1/grep.1.gz
awk: /usr/bin/awk /usr/bin/X11/awk /usr/share/man/man1/awk.1.gz
date: /bin/date /usr/share/man/man1/date.1.gz

La variable $today esta correcta... no me da ningun problema y los archivos se crean correctamente. Aunque las variables ${var:pos} esten vacias, el archivo se crea y se rellena con los datos de los que dispone. Descartaria la opcion de que $today funcione mal

Espero que os ayude esta información mas que a mi... singo sin saber por donde solucionar esto  =(

MinusFour

Cita de: rusogumo en 24 Noviembre 2014, 11:56 AM
Esta es la salida de los comandos... mis variables de entorno son las siguientes:

env > ~/root.txt
cat ~/root.txt

HOME=/root
LOGNAME=root
PATH=/usr/bin:/bin
LANG=es_ES.UTF-8
SHELL=/bin/sh
PWD=/root

En cuanto a la ubicacion de mis programas estas son:

whereis grep awk date

grep: /bin/grep /usr/share/man/man1/grep.1.gz
awk: /usr/bin/awk /usr/bin/X11/awk /usr/share/man/man1/awk.1.gz
date: /bin/date /usr/share/man/man1/date.1.gz

La variable $today esta correcta... no me da ningun problema y los archivos se crean correctamente. Aunque las variables ${var:pos} esten vacias, el archivo se crea y se rellena con los datos de los que dispone. Descartaria la opcion de que $today funcione mal

Espero que os ayude esta información mas que a mi... singo sin saber por donde solucionar esto  =(

Puedes imprimir las variables

¿$line1,$userPos,$objectPos a un archivo de texto?

Código (bash) [Seleccionar]

echo $line >> ~/log.txt
echo $userPos >> ~/log.txt
echo $objectPos >> ~/log.txt


Mi bash me permite expander asi ${variable:variable2} sin el $. Prueba así. Aunque no creo que haga mucha diferencia.

rusogumo

Mi bash no me deja usar la variables ${var1:var2} sin el $... se encuentran vacias...
Cuando quito el dolar el programa se comporta por linea de comandos como cuando lo ejecuto por cron, es decir, las variables se quedan vacias

Esta es la salida de $line1, $userPos, $objectPos y alguna variable mas:

#####################################################
line1: Nov 25 00:01:48 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748668
userpos: 200 user: SRVIMG$ objectpos: 345 object: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv
Nov 25 00:01:48 4663 Success Audit SRVIMG$ R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv
line1: Nov 25 00:02:29 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_1.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748727
userpos: 200 user: SRVIMG$ objectpos: 345 object: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_1.csv
Nov 25 00:02:29 4663 Success Audit SRVIMG$ R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_1.csv
line1: Nov 25 00:03:09 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_2.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748815
userpos: 200 user: SRVIMG$ objectpos: 345 object: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_2.csv
Nov 25 00:03:09 4663 Success Audit SRVIMG$ R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_2.csv
####################################################

rusogumo

#13
Esta es la salida cuando lo ejecuto automaticamente (cron o at):

#####################################################
line1: Nov 25 00:01:48 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet^Hastion1_url_2014_11_25_last_calendar_day_0.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748668
userpos: 200 user: objectpos: 345 object:
line1: Nov 25 00:02:29 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet^Hastion1_url_2014_11_25_last_calendar_day_1.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748727
userpos: 200 user: objectpos: 345 object:
line1: Nov 25 00:03:09 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet^Hastion1_url_2014_11_25_last_calendar_day_2.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748815
userpos: 200 user: objectpos: 345 object:
line1: Nov 25 00:03:48 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet^Hastion1_url_2014_11_25_last_calendar_day_3.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748930
#####################################################

MinusFour

#14
Parece ser que bash esta haciendo algo raro con los strings desde cron:

Tienes:

CitarR:\LOGS\Paloalto\Internet^Hastion1_url_2014_11_25_last_calendar_day_0.csv

En lugar de:

Citar
R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv

¿Estás usando el mismo log file?

Por cierto... me doy cuenta apenas que tienes otro archivo aqui:

Código (text) [Seleccionar]
/usr/local/nagios/libexec/accessBackup.sh

¿Que hace?

PD: Si corro esto desde CRON si funciona:

Código (bash) [Seleccionar]

line1=' Nov 25 00:01:48 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748668'

objectPos=345
userPos=200

user2=`echo ${line1:$userPos} | awk '{print $5}'`
echo $user2


Aunque me regresa "Dominio" en lugar de SRVIMG$.

PD2: Pon todo tu output de texto entre:

Código (text) [Seleccionar]
[ code=text ][ code ]

rusogumo

#####################################################
Parece ser que bash esta haciendo algo raro con los strings desde cron:

Tienes:

Citar
R:\LOGS\Paloalto\Internet^Hastion1_url_2014_11_25_last_calendar_day_0.csv

En lugar de:

Citar
R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv

¿Estás usando el mismo log file?

#####################################################

Si, estoy usando el mismo Log file.
Tuve unos problemas al parsear xq se comia las backslash de las rutas pero no me acuerdo como lo solucione y despues del apaño me empezaron a salir los caracteres especiales =S Yo no le daria mucha importancia...

#####################################################
Por cierto... me doy cuenta apenas que tienes otro archivo aqui:

Código
/usr/local/nagios/libexec/accessBackup.sh

¿Que hace?

#####################################################

accessBackup.sh era solo la parte del script que juntaba las bases de datos. Al principio lo ejecute mediante un script por separado hasta que me funciono y lo uní al script general. Es decir, accessBackup.sh es el codigo que sigue a la opcion --total del accessEvents.sh

#####################################################
PD: Si corro esto desde CRON si funciona:

Código
line1=' Nov 25 00:01:48 2014 4663 Microsoft-Windows-Security-Auditing N/A N/A Success Audit SRVIMG.int.tecnatom.es Sistema de archivos Se intentó tener acceso a un objeto. Sujeto: Id. de seguridad: S-1-5-18 Nombre de cuenta: SRVIMG$ Dominio de cuenta: TECNATOM Id. de inicio de sesión: 0x3e7 Objeto: Servidor del objeto: Security Tipo de objeto: File Nombre del objeto: R:\LOGS\Paloalto\Internet\bastion1_url_2014_11_25_last_calendar_day_0.csv Id. de identificador: 0x31c Información de proceso: Id. de proceso: 0xac4 Nombre de proceso: C:\Program Files (x86)\Xlight\xlight.exe Información de solicitud de acceso: Accesos: WriteData (o AddFile) Máscara de acceso: 0x2 193748668'

objectPos=345
userPos=200

user2=`echo ${line1:$userPos} | awk '{print $5}'`
echo $user2

Aunque me regresa "Dominio" en lugar de SRVIMG$.

PD2: Pon todo tu output de texto entre:

Código
[ code=text ][ code ]

#####################################################

No entiendo bien lo que kieres q haga con el ultimo paso... ¿Que es lo q te ejecuta en CRON? ¿Que es lo que kieres que haga para probarlo? No se donde poner las tag que me has dicho... antes de escribir la output en el ficchero resumen??

MinusFour

Yo es que lo veo muy dificil que bash no te funcione en uno y en otro si y encima te de output diferentes. Cron no hace magia.

En tu cron en lugar de usar
Código (bash) [Seleccionar]

/ruta/alarchivo.sh
prueba con
Código (bash) [Seleccionar]
bash /ruta/alarchivo.sh para descartar que no este ejecutandose sh en lugar de bash (que lo dudo mucho por tu shebang).

Prueba el ejemplo que te pase ponlo en un cron:

Código (bash) [Seleccionar]

bash /ruta/test.sh > ~/testoutput.txt



rusogumo

CREO Q DISTE CON LA p**a CLAVE DE TODO...

Juraria que ya lo habia probado, pero al poner bash delante del comando parece que a empezado a funcionar todo correctamente.

De todas formas te confirmo mañana que todo este bien.

MIL GRACIAS POR TU AYUDA!!!

MinusFour

Bien, debi haberlo mencionado hace mucho tiempo pero crei que no era relevante. Parece ser que no esta llamando directamente al script, sino que sh lo esta parseando.

rusogumo

#19
Si, parece que era algo como lo que tu comentabas...

Ahora tengo otro problema. No se si sabes de SQL pero en la opcion --total de mi script lo que hago es volcar la tabla tb_daily_audit (temporal) a la tabla tb_audit_events (total). El problema viene xq no me inserta nuevos valores, es decir, si encuentra un valor que esta lo actualiza bien y le suma uno al valor n_times correspondiente. Pero si el valor es nuevo no lo almacena... No se si me explicado con claridad =S

####################################################
echo "UPDATE tb_audit_events SET n_times=n_times+(select n_times from tb_daily_audit where id_event=tb_audit_events.id_event AND user_event=tb_audit_events.user_event)WHERE tb_audit_events.user_event=(select user_event from tb_daily_audit where id_event=tb_audit_events.id_event AND user_event=tb_audit_events.user_event) AND tb_audit_events.id_event=(select id_event from tb_daily_audit where id_event=tb_audit_events.id_event AND user_event=tb_audit_events.user_event);"|$sql
#####################################################