Aller au contenu

Mon Premier Script => Supprimer Fichier Vieux De 3 Jours

Featured Replies

Posté(e)

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 !

Posté(e)

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

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

Modifié par Gaetan Cambier

Posté(e)
  • Auteur

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.

Posté(e)

Faut juste ajouter une ligne en premier dans ton script :

#!/bin/sh

Pour le rendre exécutable :

chmod +x /path/to/file

Pour l'exécuter :

/path/to/./file

Posté(e)
  • Auteur

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

Posté(e)
  • Auteur

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

Posté(e)

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.

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…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.