Foro QNAP en español
Borrado Programado - Versión para impresión

+- Foro QNAP en español (https://www.qnapclub.es)
+-- Foro: GENERAL (https://www.qnapclub.es/forumdisplay.php?fid=3)
+--- Foro: Cuestiones técnicas (https://www.qnapclub.es/forumdisplay.php?fid=35)
+--- Tema: Borrado Programado (/showthread.php?tid=3073)



Borrado Programado - pabloclave - 09-09-2019

Hola, me presento soy Pablo de Argentina, y hace poco que adquirí un qnap ts431.
Lo estoy utilizando con apps de back up, y carpetas compartidas en red y de sincronización. 
LO que me falta (no encontré un app que lo haga) es programar un trabajo de borrado de archivos en una determinada carpeta que tienen la misma extensión pero necesito hacerlo con aquellos que tengan una antiguedad de por ejemplo 10 días.
QUe sugerencia me dan? 
Desde ya gracias por adelantado!
Saludos.


Borrado Programado - Ganekogorta - 09-09-2019

Hola

Eso se debería hacer con un script de Linux.
Entiendo que podría ser útil para una carpeta de escaneados pdf de una máquina multifuncional y la extensión será algo del tipo *.pdf

Si puedo te intento poner un ejemplo del script que deberás incorporar al crontab de la Qnap.
Estoy buscando si se puede hacer sólo con una línea. 
Básicamente nos basaremos en el comando "find /share/carpetaScanner/*.pdf -mtime +9" que nos encuentra los archivos pdf de la carpeta compartida "carpetaScanner" que tienen 10 o mas días. Pero estoy mirando a ver si con -exec rm puedo concatenar la salida. En Qnap no me lo permite aunque en otros linux si Sad 
A lo mejor tenemos que apoyarnos en un fichero de texto  temporal a modo de auxiliar que contenga lo que vamos a borrar.


Borrado Programado - Ganekogorta - 10-09-2019

Hola

Ya he dado con una línea de comando que lo hace todo (filtra y elimina)


find /share/carpeta1 -name "*.pdf" -type f -mtime +9 | while read temp; do rm "$temp" ; done

"carpeta1" es la carpeta compartida donde están los archivos a filtrar
"*.pdf* es la extensión de los archivos a eliminar
+9 indica que selecciona los archivos de 10 o más días de antigüedad

Ahora creamos un archivo llamada "eliminarPDF.sh" para poder agregarlo al programador. El contenido será el siguiente:
Código:
#! /bin/bash
find /share/carpeta1 -name "*.pdf" -type f -mtime +9 | while read temp; do rm "$temp" ; done


Ahora quedan un par de cosas a tener en cuenta. 

Puedes agregar manualmente el fichero de crontab y aplicarlo con la cadencia que quieras.

Si por ejemplo quieres que se ejecute a las 2:00AM todos los días debes agregar en el archivo /etc/config/crontab una línea como esta:
"* 2 * * * /share/Scripts/eliminarPDF.sh"
Aplicamos los cambios del crontab con "crontab /etc/config/crontab && /etc/init.d/crond.sh restart"

Recuerda que el archivo "/share/Scripts/eliminarPDF.sh" tienen que tener el atributo de ejecutable. Esto se hace con "chmod +x /share/Scripts/eliminarPDF.sh"

Pero si reinicias la nas perdemos la programación  Angry

Yo recomiendo las siguientes cosas, que te servirán para este script y para más cosas:

-crear un carpeta compartida llamada por ejemplo "scripts", donde dejaremos nuestros archivos de extensión .sh

-hacer que al inicio de la qnap se agregue la línea adecuada para que se ejecute el script que nos interesa. Yo esto lo estoy consiguiendo con una app ficticia llamada "autoinicio" , pero también se puede mediante un autorun.sh que se describe como hacerlo en este enlace.

La diferencia entre ambas es que cuando activo la de autoinicio se insertan líneas en el crontab, y cuando la desactivo desde el app center, se eliminan esas líneas insertadas.

Para hacer todo lo anterior, no podemos hacerlo si no tenemos acceso a la línea de comandos o consola. Yo suelo recomendar el uso de WinSCP que lo facilita bastante en PC


RE: Borrado Programado - pabloclave - 10-09-2019

Ganekogorta sos un CRACK!!!!!
Te agradezco un montón! Hoy mismo pongo tus líneas en práctica, muy claro lo tuyo, y en mi caso te cuento que lo voy a utilizar para borrar archivos de backup (.bak) que son de varias bd sql que se hacen completos y 2 veces por día, por eso mismo necesito ir liberando espacio por la cantidad de copias que hay. Abrazo!

Zorte on eta eskerrik asko zure laguntzagatik.


Borrado Programado - Ganekogorta - 10-09-2019

Hola
Me alegro que te sirva.
Lo que he enviado es genérico y aplicable a diversos usos.

Si no es indiscreción ¿qué tipo de base de datos es y en qué sistema operativo funcionan? Lo digo porque a lo mejor a la hora de hacer la copia, podemos indicar que elimine las más viejas...yo lo hago con una postgreSQL.


Un saludo

Agur eta ondo ibilli

Mon (TS-469Pro, TVS-673, QBoat Sunny y TS-453Be)


RE: Borrado Programado - pabloclave - 10-09-2019

Para nada es indiscreción, te cuento:
Son bases de datos de sqlserver 2008, los backups son programados con planes de mantenimeinto y los ejecuta el SQLAgent.
Dentro de dicho trabajo programado está la limpieza(borrado) de backups con más de 5 días de antigüedad pero no lo ejecuta si no está la copia dentro de un disco local(ya renegué un montón con eso). De ahí que tenga que hacerlo desde el qnap.
Saludos!


RE: Borrado Programado - Ganekogorta - 10-09-2019

(10-09-2019, 06:31 PM)pabloclave escribió: Para nada es indiscreción, te cuento:
Son bases de datos de sqlserver 2008, los backups son programados con planes de mantenimeinto y los ejecuta el SQLAgent.
Dentro de dicho trabajo programado está la limpieza(borrado) de backups con más de 5 días de antigüedad pero no lo ejecuta si no está la copia dentro de un disco local(ya renegué un montón con eso). De ahí que tenga que hacerlo desde el qnap.
Saludos!
Prueba lo siguiente, Pon la ruta como en el formato de la imagen siguiente

[attachment=736]

Y prueba a ver porque a mi me funciona. Da un aviso de que no accede bien, pero luego si lo hace.

Yo en mi caso tengo la nas integrada en el AD, supongo que ese también será tu caso.

Y si no te va bien... a hacer el script en Linux