[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: