Aller au contenu

Mon Premier Script => Supprimer Fichier Vieux De 3 Jours


ideassa

Messages recommandés

Bonjour à tous,

nous avons un NAS DS211 installé dans notre petite entreprise. J'aimerais utiliser un script afin de supprimer le contenu d'un répertoire lorsque le fichier est vieux de 3 jours (dans un premier temps).

Je ne sais pas du tout comment configurer ce script. Si vous pouviez me donner un coup de main :)

Merci !

Lien vers le commentaire
Partager sur d’autres sites

find /path/ -type f -mtime +3 -exec rm -f {} ;

Commande a tester sans la partie -exec pour vérifier

Je vais essayer. Je crée un nouveau fichier txt , je change l extension en .sh. Je copie cette ligne de commande en remplacant le path par le chemin d'accès du répertoire et je l’exécute comment?

Merci a toi.

Lien vers le commentaire
Partager sur d’autres sites

Voila j'ai testé la commande directement en SSH et ca fonctionne bien.

Par contre lorsqu'il est dans le fichier SH, lorsque je veux l'executer après avoir fait chmod +x, il me dit :

'bin/sh: can't open '
J'ai ca dans mon fichier :
#!/bin/sh
find /volume1/Users/9-Numerisations_Ricoh/TEST_suppression_auto/ -type f -mtime +3 -exec rm -f {} ;
Le fichier sh se trouve dans : /volume1/scripts/
Modifié par ideassa
Lien vers le commentaire
Partager sur d’autres sites

Personne?

J'ai mis la commande dans un fichier .sh mais après que faire pour qu'il s'auto execute dans synology??

Quand j'execute le fichier que j'ai crée j'ai un message d'erreur dans ssh

'bin/sh: can't open '
Que dois je faire svp
Modifié par ideassa
Lien vers le commentaire
Partager sur d’autres sites

Quand j'execute le fichier que j'ai crée j'ai un message d'erreur dans ssh

'bin/sh: can't open '

Probable qu'il manque le "/" initial avant le "bin" dans la 1ere ligne du script. Vérifier qu'elle respecte bien la syntaxe ci dessous:

#! /bin/sh

D'autre part, le find/delete sera plus efficace si écrit comme ceci:

find "/volume1/Users/9-Numerisations_Ricoh/TEST_suppression_auto/" -type f -mtime +3 -delete

Attention: les fichiers effacés de cette manière ne passent pas dans la corbeille. On n'a pas droit à l'erreur (enfin j'espère qu'il y a des sauvegardes quand même).

Dans un 2ème temps, il serait plus propre de faire un script générique ou les arguments "chemin" et "nombre de jours" seraient passés en paramètre.

Quelque chose dans le genre de:

#! /bin/sh
chemin="/volume1/users/${1}"
nbjours="${2:-3}"  # 2eme argument, "3" si absent
find "$chemin"  -type f -mtime +$nbjours -delete

qu'on pourra invoquer comme suit:

<chemin>/monscript.sh "9-Numerisations_Ricoh/TEST_suppression_auto" 3

Important: pour éditer le fichier script, utiliser un éditeur de texte capable d'enregistrer avec les fin de ligne au format unix. Sous Windows, par exemple Notepad++ (dans ce cas avec l'option "format des sauts de ligne -> unix")

Un petit avis perso pour terminer: en tant que débutant, débuter des exercices de scripting unix par des outils qui font des suppressions de fichiers me semble un peu aventureux, une erreur est vite arrivée.

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.