StéphanH Posté(e) le 3 décembre 2018 Posté(e) le 3 décembre 2018 Ha oui, c'est mieux en tapant la ligne à la main (et sans mettre de majuscule à Volume1) ... bon, je remplace -ls par -delete et j'appelle le SAMU si ça me vide tout ? 0 Citer
unPixel Posté(e) le 3 décembre 2018 Posté(e) le 3 décembre 2018 Non, tu fais une restauration de tes données qui ont été préalablement sauvegardées 🤣 0 Citer
StéphanH Posté(e) le 3 décembre 2018 Posté(e) le 3 décembre 2018 (modifié) 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é le 3 décembre 2018 par StéphanH 0 Citer
Stephane Lang Posté(e) le 3 décembre 2018 Posté(e) le 3 décembre 2018 (modifié) 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 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é le 3 décembre 2018 par Stephane Lang 0 Citer
Stephane Lang Posté(e) le 4 décembre 2018 Posté(e) le 4 décembre 2018 Bonjour, quelqu'un saurait me donner le script adéquat pour mon cas ? Merci d'avance . 0 Citer
unPixel Posté(e) le 4 décembre 2018 Posté(e) le 4 décembre 2018 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 0 Citer
Stephane Lang Posté(e) le 4 décembre 2018 Posté(e) le 4 décembre 2018 (modifié) 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é le 4 décembre 2018 par Stephane Lang 0 Citer
CoolRaoul Posté(e) le 4 décembre 2018 Posté(e) le 4 décembre 2018 (modifié) 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é le 4 décembre 2018 par CoolRaoul 0 Citer
Stephane Lang Posté(e) le 4 décembre 2018 Posté(e) le 4 décembre 2018 (modifié) 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é le 4 décembre 2018 par Stephane Lang 0 Citer
CoolRaoul Posté(e) le 5 décembre 2018 Posté(e) le 5 décembre 2018 (modifié) 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é le 5 décembre 2018 par CoolRaoul 0 Citer
lordtaki Posté(e) le 5 décembre 2018 Posté(e) le 5 décembre 2018 Et comme d'habitude avant de faire la vraie commande avec -delete, l'éxécuter avec -ls à la place 😉 0 Citer
Stephane Lang Posté(e) le 5 décembre 2018 Posté(e) le 5 décembre 2018 Merci beaucoup à vous pour votre aide. La je pense que j'ai tout pour que ça marche. 0 Citer
StéphanH Posté(e) le 5 février 2019 Posté(e) le 5 février 2019 Bonsoir, J'ouvre de nouveau ce sujet. Je ne sais pas s'il y a une relation de cause à effet : Depuis que j'ai créé cette règle, qui fonctionne très bien, VideoStation ne "voit" pas que les fichiers sont supprimés : ils restent indexés. Une idée ? 0 Citer
CoolRaoul Posté(e) le 6 février 2019 Posté(e) le 6 février 2019 (modifié) Il y a 8 heures, StéphanH a dit : Depuis que j'ai créé cette règle, qui fonctionne très bien, VideoStation ne "voit" pas que les fichiers sont supprimés : ils restent indexés. Une idée ? Oui: toutes les modifications (ajouts et suppressions) de fichiers faites par des scripts ou en ligne de commande ne sont pas détectées par l'indexeur. Seul les modules/paquets natifs DSM (samba/ftp/webdav/... serveur, et autres filestation, cloud-bidule, etc etc ..., gèrent ce genre cette situation). Il faut donc utiliser la commande "synoindex" (/usr/syno/bin/synoindex) pour activer un rescan, total ou partiel. Son aide intégrée: Usage: synoindex [OPTIONS] Index Options: -h, --help this help text -A dirpath add a dir -a filepath add a file -D dirpath delete a dir -d filepath delete a file -N new_dirpath old_dirpath rename a dir -n new_filepath old_filepath rename a file -R [all|media|photo|music|video|thumb|dirpath] all: reindex all dirpath that registered in each package media: reindex dirpath that registered in MediaIndex package photo: reindex photo dirpath music: reindex music dirpath video: reindex video dirpath thumb: check converted video of each video file dirpath: reindex this specific dirpath -R user:{user_name} reindex personal photo dirpath -R share:{share_name} reindex share dirpath -R [type_music|type_video|type_photo] reindex dirpath that registered with specific type in MediaIndex Package Index Options: -P [MediaIndex|{package_name}] {index_option} index operation only apply on this package -p [MediaIndex|{package_name}] {index_option} index operation apply all packages except for this package File Index Options: -f {index_option} index operation apply on file index -U photo update photo images Dans le cas présent je pense qu'in "synoindex -R /chemin/du/dossier/modifié" devrait faire l'affaire NB: la commande rend la main immédiatement, c'est normal, ça envoie juste un message à gestionnaire d'indexation qui fait le boulot en tache de fond. Modifié le 6 février 2019 par CoolRaoul 0 Citer
StéphanH Posté(e) le 6 février 2019 Posté(e) le 6 février 2019 Génial merci CoolRaoul. ça marche ... 0 Citer
Domodial Posté(e) le 2 janvier 2020 Posté(e) le 2 janvier 2020 find "/volume1/video/netatmo welcome" -type f -mtime +60 -delete En fait ça ne fonctionne pas à cause de guillements " " 0 Citer
FabioDM Posté(e) le 19 mai 2021 Posté(e) le 19 mai 2021 Bonjour à tous, Je me permets d'up ce message car ce post répond à mon attente car je suis un gros newbie. Pour la famille j'utilise mon nas pour Plex et souhaiterai mettre en place une règle pour chaque dossier (séries/Dessins animés/Films, etc...), afin de supprimer définitivement les vidéos de plus de 4 mois par exemple. Est-ce que ça donnerait ça (pour les films) ? : find/volume1/video/FILMS-type f -mtime +240 -delete Merci pour votre aide 0 Citer
oracle7 Posté(e) le 19 mai 2021 Posté(e) le 19 mai 2021 (modifié) @FabioDM Bonjour, Tu n'étais pas loin MAIS, cette commande sera sûrement plus efficace : find /volume1/video/FILMS -type f -mtime +240 -exec /usr/bin/rm -f {} \; ATTENTION à la syntaxe !!! : les espaces notamment ... Tu lances cette commande soit directement dans un terminal sous SSH ou bien soit tu crées une tache programmée dans le planificateur de tâches telle que : bash find /volume1/video/FILMS -type f -mtime +240 -exec /usr/bin/rm -f {} \; Fais quand même AVANT de la mettre en production, un essai sur un répertoire spécifique avec des fichiers sans importance. Maintenant ce que j'en dis ... Edit : en ajoutant l'option "v" (par ex : -vf) à la commande "rm" tu auras un mode plus parlant si besoin. Cordialement oracle7😉 Modifié le 19 mai 2021 par oracle7 0 Citer
MilesTEG1 Posté(e) le 19 mai 2021 Posté(e) le 19 mai 2021 (modifié) Hello, ayant récemment fait un script de sauvegarde pour mes données Gitea, j'ai aussi du chercher un moyen de supprimer des fichiers plus vieux que XX jours. Voilà la solution que j'ai trouvée : BACKUP_DIR=/chemin/vers/les/fichiers/backup/ NB_JOURS_A_GARDER=10 # C'est le nombre de jours à garder # On liste les fichiers, pour tester la commande # Data-Backup* étant le début du nom du fichier de sauvegarde qui contient la date, et l'heure du backup find $BACKUP_DIR/* -name 'Data-Backup*' -mtime +"$((NB_JOURS_A_GARDER - 1))" -exec ls -lat --color {} \; # Commande qui fait la même chose mais en supprimant les fichiers de plus de NB_JOURS_A_GARDER find $BACKUP_DIR/* -name 'Data-Backup*' -mtime +"$((NB_JOURS_A_GARDER - 1))" -exec rm -v {} \; edit : je viens de voir que ma commande ressemble beaucoup à celle de @oracle7 😄 j'ai juste variabiliser certaines choses 😉 Et mis le mode verbose. Je pourrais peut-être mettre le mode -f, c'est pour forcer la suppression n'est-ce pas ? Modifié le 19 mai 2021 par MilesTEG1 0 Citer
oracle7 Posté(e) le 19 mai 2021 Posté(e) le 19 mai 2021 @MilesTEG1 Bonjour, il y a 5 minutes, MilesTEG1 a dit : je viens de voir que ma commande ressemble beaucoup à celle de @oracle7 c'est le moins qu'on puisse dire ... 😜🤣 Cordialement oracle7😉 1 Citer
CoolRaoul Posté(e) le 20 mai 2021 Posté(e) le 20 mai 2021 [mention=80481]FabioDM[/mention]Tu n'étais pas loin MAIS, cette commande sera sûrement plus efficace :find /volume1/video/FILMS -type f -mtime +240 -exec /usr/bin/rm -f {} \; Je ne comprends pas ce qui fait dire que "-exec /usr/bin/rm -f {} \;" serait plus efficace que "-delete."Au contraire la première forme lance un process pour chaque suppression alors que l'autre n'en lance aucun (c'est built-in dans find).Même si j'imagine que l'impact reste minime bien entendu. 0 Citer
MilesTEG1 Posté(e) le 20 mai 2021 Posté(e) le 20 mai 2021 il y a 4 minutes, CoolRaoul a dit : Je ne comprends pas ce qui fait dire que "-exec /usr/bin/rm -f {} \;" serait plus efficace que "-delete." Au contraire la première forme lance un process pour chaque suppression alors que l'autre n'en lance aucun (c'est built-in dans find). Même si j'imagine que l'impact reste minime bien entendu. Ha je savais pas que le find avant un flag -delete... Du coup je suis curieux de savoir s'il y a une différence entre les méthodes et une préférence à avoir. Il y a 11 heures, oracle7 a dit : @MilesTEG1 Bonjour, c'est le moins qu'on puisse dire ... 😜🤣 Cordialement oracle7😉 Par contre je viens de voir que ta commandes va supprimer tous les fichiers de plus de XX jours sans distinction de nom. À voir si c'est ce qu'il lui faut. La mienne va supprimer tous les fichiers qui ont un nom qui débute par 'Data-Backup' , et là il n'y a pas besoin du flag -type f. 0 Citer
FabioDM Posté(e) le 21 mai 2021 Posté(e) le 21 mai 2021 (modifié) Bonjour à tous et merci pour vos réponses 🙂 Je vais donc tester dans un repertoire test comme suggéré qui s'appelle video avec le planificateur de taches Ca donnerait donc ça ? bash /find /volume1/video-type f -mtime +240 -exec /usr/bin/rm -vf {} \; Je viens de tester et j'ai un message d'erreur que voici. État actuel : 127 (Interrompu) Sortie standard/erreur : bash: /find: No such file or directory Merci pour votre aide Modifié le 21 mai 2021 par FabioDM MAJ Erreur 0 Citer
CoolRaoul Posté(e) le 21 mai 2021 Posté(e) le 21 mai 2021 il y a 4 minutes, FabioDM a dit : Ca donnerait donc ça ? bash find /volume1/video-type f -mtime +240 -exec /usr/bin/rm -vf {} \; le "bash" en début est à supprimer il manque un espace avant "-type" -delete serait quand meme plus lisible et concis que -exec .... \; (mais ça ne change rien fonctionnellement) 0 Citer
MilesTEG1 Posté(e) le 21 mai 2021 Posté(e) le 21 mai 2021 Tu as deux erreurs dans ta commande. bash /find il ne faut pas le / ensuite le -type f il doit y avoir un espace avant Grillé 🤣 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.