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

[OT] Comparar listado de ficheros en dos sitios



Hola. Para un servidor he realizado un script con rsync que al finalizar 
compara los ficheros en original y en backup con un "sdiff".

El servidor es un Red Hat Enterprise 4 (kernel 2.6) y el backup un Red Hat 7 
(kernel 2.4). Si pensase que es un problema  relacionado con Red Hat no lo 
preguntaría aquí, por supuesto, pero es posible que el problema dependa de la 
versión del comando "ls" o de otros factores sólo relacionados con la fecha 
de los comandos básicos de Linux (supongo que comunes a todas las distros).

El problema ocurre en el equipo backup (Red Hat 7):

- Si desde consola hago un "ls -R | more" de un directorio me sale esto:

1
2
a
A
A.dir
b
B
B.dir 

- Pero si meto ese comando en cron y redirecciono la salida a un fichero sale:

A.dir
B.dir
1
2
a
A
b
B

Es posible que no sea exactamente así, no lo recuerdo, pero lo importante es 
que desde cron se ordenan primero LOS DIRECTORIOS y luego los archivos.

Esto NO ocurre si ejecuto ese comando desde el cron del Red Hat Enterprise 
(kernel 2.6), y tampoco ocurre en todas las debian y derivadas que he 
probado, aunque por desgracia no he podido probarlo en ninguna más antigua 
que Sarge, de ahí mi duda a la lista.

Este problema lleva al traste mi script ya que se ejecuta desde cron e 
incluye:
  sdiff -s ficheros_original.txt ficheros_backup.txt
donde el primer fichero es un "ls -R" en el servidor y el segundo en el backup 
(el problemático). Al ordenarse diferente la salida del sdiff es monstruosa 
en vez de nula (como debería ser).


He mirado el manual de ls de todas las versiones que he encontrado y no veo 
ninguna forma de indicar que anteponga o no los directorios a los archivos.

Pero lo que más me intriga es: ¿por qué demonios desde cron se ejecuta de una 
forma y desde consola de otra? He revisado el tema del "alias ls" pero sólo 
incluye color, nada más.

En caso de tener que optar por otra solución, ¿alguien sabe otra forma de 
comparar el listado de archivos de dos directorios y que la salida diga qué 
archivos están sólo en uno y cuáles sólo en la otro?


Gracias por cualquier sugerencia, es un tema que debo resolver bastante 
urgente y no me esperaba ni de lejos encontrarme con semejante problema 
tan "tonto".

Saludos.

-- 
Iñaki



Reply to: