This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

 

Si nous utilisons des cookies et retenons des données anonymes, c’est pour nous aider à mieux gérer notre mesure d’audience, aider nos partenaires commerciaux à nous rémunérer et nos partenaires publicitaires à proposer des annonces qui vous correspondent.

 

Grâce à ces cookies, le forum est en mesure de savoir qui écrit un message et utile pour le système d'authentification.

 

En cliquant sur « J'accepte », vous acceptez l'utilisation par NAS-Forum de cookies publicitaires et de mesure d'audience fine.

ddjaff

Script pour supprimer des fichiers de plus de X jours

Messages recommandés

elles le sont ... en voiture ... en baladant un disque dur portable entre deux NAS ...
Quand on n'a qu'un abonnement 3G comme seul moyen de connexion, on limite le volume de data (en tous cas pour le dossier video)

bon, ça marche (finalement ...)

Modifié par StéphanH

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis au bon endroit lol, je vois deux connaisseurs qui sauront me rendre cette fonction opérationnelle et sans erreurs...

je suis donc de retour, j'ai vérifié mon dossier ou sont stockés les videos de ma camera, et effectivement , en regardant de près, les videos de plus de 60 jours ne sont plus la. Ceci avec mon premier script:

find /volume1/video/netatmo welcome -type f -mtime +60 -delete

Sauf que, tous les dossiers qui sont créés lors des enregistrements sont encore la, vides. Les dossiers sont crées automatiquement comme suit: Année , mois, jours, par leurs chiffres. Comment supprimer automatiquement les dossiers vides aussi à chaque fois que la tache est exécutée ?

Dans les paramètres du planificateur de taches j'avais activé "enregistrer les résultats de sortie" . Je constate qu'un dossier synosheduler est crée, dedans un fichier script.log et un output.log sont crées. Dans output.log cependant quelque chose de bizarre: 

find: `/volume1/video/netatmo': No such file or directory
find: `welcome': No such file or directory

gqLA8rT.png

Comment ça se fait ? sachant que le chemin est: /volume1/video/netatmo welcome 

(avec un espace entre)

Est-ce que c'est normal ? comment éviter cette erreur ?

Bref , encore quelques points à éclaircir pour un peu mieux cerner cette prog en script ou je suis totalement novice (je suis juste les "tutos" lus ici et la)

 

Modifié par Stephane Lang

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 44 minutes, Zeus a dit :

Pour supprimer mes dossiers vides qui sont nommés par date de création, voici ma commande :


find /volumeX/etc... -type d -name "*.*.20*_*" -empty -type d -delete

 

est-ce que je pourrais écrire aussi plus simple : sans le premier -type d -name "*.*.20*_*" ? c'est à dire juste la commande -empty -type d -delete , pour supprimer sans distinction tous les dossiers vides ? Voir même y mettre le -mtime +60 pour ne cibler que les dossiers de plus de 60 jours ?

Autrement, une idée pour cette erreur sur ma capture d'écran ? no such file or directory 

Modifié par Stephane Lang

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, Stephane Lang a dit :

est-ce que je pourrais écrire aussi plus simple : sans le premier -type d -name "*.*.20*_*" ? c'est à dire juste la commande -empty -type d -delete , pour supprimer sans distinction tous les dossiers vides ? Voir même y mettre le -mtime +60 pour ne cibler que les dossiers de plus de 60 jours ?

Tu peux aller au plus simple en effet:

find /le/chemin/de/ton/dossier/video -depth -type d -empty -delete

Note: le "-depth" est une astuce qui permet de supprimer les dossiers éventuellement pas vides mais qui ne contiennent que des sous-dossiers vides: supposons un chemin "a/b/c" où a , b et c ne contiennent rien d'autre que ces mêmes dossiers, sans le "-depth", seul "c" serait supprimé, alors qu'avec "a" et "a/b" sont également supprimés.

Il y a 1 heure, Stephane Lang a dit :

Autrement, une idée pour cette erreur sur ma capture d'écran ? no such file or directory 

Tu as écrit que "le chemin est: /volume1/video/netatmo welcome"

Si il n'y pas d'erreur ici (c'est à dire qu'il y bien un un blanc entre "netatmo" et "welcome", autrement dit que le dossier cible se nomme "netatmo<espace>welcome"), alors, pour que ça marche, il faut entourer le tout de quotes, comme ceci:

find "/volume1/video/netatmo welcome" etc ...

 

Modifié par CoolRaoul

Partager ce message


Lien à poster
Partager sur d’autres sites

Super merci beaucoup Raoul , je vais tester tout ça maintenant . Je vous laisserai un mot pour dire si ça fonctionne...ou pas 🙂

edit: du coup , peut on tout mettre dans une ligne de script ? C'est à dire , supprimer les fichiers et les dossiers de plus de 60 jours?

Si c'est possible, je mets quoi et dans quel ordre alors derrière

find "/volume1/video/netatmo welcome"
Modifié par Stephane Lang

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 13 heures, Stephane Lang a dit :

du coup , peut on tout mettre dans une ligne de script ? C'est à dire , supprimer les fichiers et les dossiers de plus de 60 jours?

Oui mais ça risque de devenir un peu compliqué à lire pour gérer fichiers et dossiers, faudrait falloir jongler avec des clauses "ou" ("-o") et des parenthèses dans le find (le "-empty" ne doit s'appliquer qu'aux dossiers, pas aux fichiers)

Ca ne mange pas de pain et est plus lisible de faire ça en deux lignes. Les fichiers en premier et les dossiers vides ensuite :

# purge des fichiers de plus de 2 mois
find "/volume1/video/netatmo welcome" -type f -mtime +60 -delete
# purges des dossiers vides 
find "/volume1/video/netatmo welcome" -mindepth 1 -depth -type d -empty -delete

NB: le -mindepth 1 que j'ai ajouté a pour effet pour ne traiter que les dossier de niveau 1 et plus et donc pas "netatmo welcome" lui même pour ne pas l'effacer au cas ou si il se retrouve vide.

Modifié par CoolRaoul

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant