Tag Archives: cron

Nombres de Archivos con Espacios a la Salida de find

Uso un script para ir eliminando viejos archivos de forma periódica a través de una tarea de Cron pero había empezado a fallar porque empezaban a aparecer nombres de ficheros con espacios. Al ocurrir esto, la salida que le pasaba a xargs y a su vez a rm fallaba. La solución viene en la página de manual.

$ man xargs
--null
-0     Input  items  are terminated by a null character instead of by whitespace, and the quotes and backslash are not special (every character is taken literally).
       Disables the end of file string, which is treated like any other argument.  Useful when input items might contain white space, quote marks,  or  backslashes.
       The GNU find -print0 option produces input suitable for this mode.

Perfectamente nos explica que debemos incluir el parámetro -print0 para que find genere una salida en la que por cada nombre de fichero se añada un carácter nulo, esto lo entenderá xargs que tomará el nombre del fichero completo incluyendo los espacios y caracteres especiales y se los pasará a rm que los borrará sin problema.

Así ha quedado el comando

TARGET="/path/to/files"
find $TARGET -maxdepth 1 -type f -name "*" -mtime +60 -print0 | xargs -0 rm;

Ejecutar Comandos con un Usuario sin Shell Válida

Si tenemos en el sistema usuarios sin shell válida como por ejemplo los usuarios que acceden por FTP o que lanzan demonios y queremos ejecutar algún comando con ellos como por ejemplo actualizar su tabla de tareas de Cron, podemos hacerlo de la siguiente manera:

# su $USER -c comando -s /bin/bash

En este caso, ejecutara el comando bajo la shell bash.

Como hemos dicho, para alterar la tabla de Cron hacemos.

# su $USER -c "crontab -e" -s /bin/bash

Backup de Clientes Windows en Servidores Linux

Estaba yo dándole vueltas a como arreglar la historia de hacer copias de seguridad de las máquinas de los usuarios. Hasta ahora había probado Unison y una versión de RSync para Windows, pero no estaba satisfecho. El problema se producía al intentar copiar ficheros que estaban fuera del directorio de usuario, en windows es %USER% o algo así, de vez en cuando, había que hacer una modificación a esos archivos para darles “Control total”. Hay que sumar, que mis usuarios son los de contraseñas basadas en gruesos algoritmos de cifrado, efectivamente, 1234 es la más común, así que no pueden iniciar sesión en el servidor, sólo transferencia por sftp con chroot a su $HOME.

Read more »