Aller au contenu
  • 0

Suppression Automatique


JJD

Question

15 réponses à cette question

Messages recommandés

  • 0

Bonjour,

Je suis aussi intéressé par le vidage automatique d'un répertoire (celui de ma caméra). Je souhaiterais supprimer les images tous les 7 jours. 

Je connais un peu la manipulation de fichier à l'aide du shell sous linux mais j'aimerais plus d'informations sur cette crontab. Pouvez-vous me dire ce qu'il faut faire exactement si je souhaite effacer tous les 7 jours le dossier ../Camera? ... Comment relancer le cron?

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

 

Le système "cron" utilise une tache tournant en arrière plan qui lit des ordres (au lancement) dans un fichier ...

ces ordres sont la fréquence d’exécution et ce qu'il faut exécuter ...

 

On change une ligne dans le fichier, on relance crond et c'est tout ... il sera conservé entre les boot

 

Il faut donc ouvrir une console ssh ou telnet, modifiez le fichier avec votre éditeur préféré .. (ici vi)

vi /etc/config/crontab

relancez crond 

/etc/init.d/crond.sh restart

 

format des "cron" : (copie de Wikipedia ... )

Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et doit respecter cette notation :

mm hh jj MMM JJJ tâche
  • mm représente les minutes (de 0 à 59)

  • hh représente l'heure (de 0 à 23)

  • jj représente le numéro du jour du mois (de 1 à 31)

  • MMM représente l'abréviation du nom du mois (jan, feb, ...) ou bien le numéro du mois (de 1 à 12)

  • JJJ représente l'abréviation du nom du jour ou bien le numéro du jour dans la semaine :

    • 0 = Dimanche

    • 1 = Lundi

    • 2 = Mardi

    • ...

    • 6 = Samedi

    • 7 = Dimanche (représenté deux fois pour les 2 modes ISO de normalisation des jours)

Pour chaque valeur numérique (mm, hh, jj, MMM, JJJ) les notations possibles sont :

  • * : à chaque unité (0, 1, 2, 3, 4...)

  • 5,8 : les unités 5 et 8

  • 2-5 : les unités de 2 à 5 (2, 3, 4, 5)

  • */3 : toutes les 3 unités (0, 3, 6, 9...)

  • 10-20/3 : toutes les 3 unités, entre la dixième et la vingtième (10, 13, 16, 19)

Si, sur la même ligne, le « numéro du jour du mois » et le « jour de la semaine » sont renseignés, alors cron exécutera la tâche quand l'un des champs correspond. Par exemple, la ligne suivante indique que la tâche doit être exécutée les vendredis ainsi que le 13 de chaque mois, à 00:00 du matin :

0 0 13 * 5 tâche

 

 

Philippe.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci Philippe pour les commandes,

 

Je me suis connecté en SSH et j'ai éditer la crontab avec : vi /etc/config/crontab

J'ai rajouté la ligne 30 * * * * rm -rf /share/MD0_DATA/Camera/* pour qu'il me supprime toutes les heures à la demi les images contenues dans ce dossier mais elles y sont encore. 

Pourtant j'ai bien relancer le crond avec /etc/init.d/crond.sh restart

 

Une idée???

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'ai aussi essayé ceci (0-59 * * * * /bin/rm -rf /share/MD0_DATA/Camera/*) mais ça ne fonctionne pas.

 

Petite précision: lorsque je me suis connecté à la session SSH, j'étais en utilisateur admin mais les images qui sont écrites dans le dossier /Camera sont écrites par l'utilisateur Camera. Est-ce que ca change quelque chose?

 

Lorsque je tape:

crontab -l

Il n'y a pas la ligne que j'ai écrit précédemment mais lorsque je fais à nouveau un 

vi /etc/config/crontab

elle s'y trouve.

 

 

J'ai installé Optware IPKG via l'interface graphique de mon TS-419P+ pour installer nano avec lequel je suis un peu plus à l'aise. 

Comment éditer la crontab avec nano.

Il se peut que la crontab que j'ai édité ne soit pas celle de l'utilisateur voulu vu qu'il y a une crontab pour chaque utilisateur. Comment éditer la crontab d'un utilisateur spécifique?

 

Merci encore pour ton aide Philippe. 

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

 

admin est le "root" du QNAP donc a les droits de super utilisateur ...

 

crond.sh ...

utilise lorsqu'on le lance (ou relance) le fichier /etc/config/crontab

... il le modifie en fonction des applications présentes (ex. Surveillance Station, etc.)

... il le recopie dans /tmp/crontabs/admin

et lance le daemon ...

 

le fichier crontab s'utilise normalement via via crontab -e ... mais ceci ne fait qu'ajouter une vérification de syntaxe ...

 

Donc, en modifiant le fichier /etc/config/crontab puis en relançant , la modification devrait être prise en compte et donc listé par crontab -l qui liste /tmp/crontabs/admin

 

essayez un stop, vérifiez que crond est bien arrêté ... ( ps -eaf | grep crond ... pas de réponse) puis démarrez (start)

 

Philippe.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Voila j'ai réussi.

Avant je n'arrivais pas à éditer la crontab avec nano mais étrangement maintenant ça marche.

 

Voici un exemple pour les prochains intéressés:

Exemple:

1) nano /etc/config/crontab (ou bien remplacer le nano par vi pour l'éditer avec l'éditeur par défaut sur les QNAP)
2) 5 * * * * /bin/rm -rf /share/MD0_DATA/Camera/* (pour qu'à chaque heure, chaque jour, 5 minutes après l'heure le dossier Camera soit vidé)
3) crontab /etc/config/crontab (pour indiquer au cron que des changements ont été fait)
4) /etc/init.d/crond.sh restart (redémarrer le service)
5) crontab -l (contrôler que la tâche s'y trouve)
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Petite question supplémentaire:

 

Y a t'il le moyen de vider un dossier lorsque les fichiers sont âge de plus de 7 jours?

Parce que si je dis de supprimer les fichiers le mercredi à midi par exemple, les fichiers du mardi n'auront qu'un seul jour.

 

J'ai trouvé ceci mais où faut-il l'intégrer?

find /share/HD0_DATA/Camera/* -maxdepth 1 -ctime +7 -exec /bin/rm -rf
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

 

Il suffit de remplacer la commande rm par un shell ... vous pourrez ainsi avoir plusieurs commandes enchaînées ... avec ou sans paramètres

... même si théoriquement, cette commande unique (en ligne du crontab) doit fonctionner

 

PROBLÈME ... vous devez utiliser la version de "find" de Optware / Ipkg ... car celle fourni par défaut est trop restreinte (version limité de Busybox)

... le PATH sera /opt/bin/find

 

ci-dessous le help du find intégré ET limité :

# find -h
BusyBox v1.01 (2014.01.22-21:11+0000) multi-call binary

Usage: find [PATH...] [EXPRESSION]

Search for files in a directory hierarchy.  The default PATH is
the current directory; default EXPRESSION is '-print'

EXPRESSION may consist of:
        -follow         Dereference symbolic links.
        -name PATTERN   File name (leading directories removed) matches PATTERN.
        -print          Print (default and assumed).

        -type X         Filetype matches X (where X is one of: f,d,l,b,c,...)
        -perm PERMS     Permissions match any of (+NNN); all of (-NNN);
                        or exactly (NNN)
        -mtime TIME     Modified time is greater than (+N); less than (-N);
                        or exactly (N) days

Ci-dessous celui, plus complet, des ipkg :

# /opt/bin/find --help
Usage: /opt/bin/find [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]

actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>.

Ceci explique cela ...

 

Philippe.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

 

Voila j'ai installé "optware-devel" depuis l'interface graphique. Ça a duré bien 5-10 minutes. N'y a-t'il pas moyen d'installer ça avec une commande tel que "apt-get install..."?

Ensuite j'ai ajouter à ma crontab ceci:

0 0 * * * /opt/bin/find /share/HD0_DATA/Camera/* -ctime +7 -exec /bin/rm -rf {} \;

Donc si je comprends bien tout les jours à minuit il supprimera dans le dossier Camera tout les fichiers qui ont été créés il y a plus de 7 jours.

Je vais tester ça...Merci

 

smike

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

 

Hum! pourquoi tout ça ... un simple ipkg install findutils ... et le tour aurait été joué en 3 secondes ??? (désolé, de ne pas l'avoir précisé ... croyant à votre connaissance sur ce point)

 

Je n'ai ni vérifié la syntaxe ni la validité de votre "commande" ... juste donné les prérequis ... il faut donc tester et corriger éventuellement ...

 

Pour essayer rapidement ... créez des fichiers "bidons" et avec touch (celui des ipkg (ipkg install coreutils  :razz: ) changez la date pour leur donnez une date de plus de 7 jours ... vérification dès cette nuit ou demain ...

 

ex. : touch -t [[sS]AA]MMJJhhmm[.ss] fichier

##### fichier toto mis à la date du 1er Janvier 12H00 de la même année #####

[/share/Public] # cat /etc/inittab > toto
[/share/Public] # ll toto
-rw-r--r--    1 admin    administ      1.4k Feb 11 18:27 toto
[/share/Public] # /opt/bin/touch -t 01011200 toto
[/share/Public] # ll toto
-rw-r--r--    1 admin    administ      1.4k Jan  1 12:00 toto
[/share/Public] # 

cela devrait suffire pour le find ... T.B.C.

 

Philippe.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Ça fonctionne déjà une chose de faite : le sujet est résolu, Merci.

 

J'ai désinstaller "optware-devel" et installé "coreutils" et "findutils" + "findutils-doc".

coreutils 8.4-1 8.4-1 Bunch of heavyweight *nix core utilities 

findutils 4.2.32-1 4.2.32-1 File finding utilities 

findutils-doc 4.2.32-1 4.2.32-1 Documentation for file finding utilities 

optware-devel   6.8-10 This is a meta package that bundles all the packages required for optware native development. When fully functional, it should  

D'accord optware-devel c'est le gros paquet qui m'est pas nécessaire et coreutils c'est un paquet comprenant des programmes basiques tels que unzip, find... mais quand même plus développés que ceux installé nativement sur le NAS.

 

Alors findutils c'est quoi? commment lancer la doc que j'ai installé? j'ai fait un findutils -h --help ... mais rien ne s'affiche.

 

smike 

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

 

findutils ... donne une version à jour et complète en paramètres de :

find et de xargs (rien de plus) ...  ils ne sont pas dans le "core" ... la doc ... je ne sais même pas ce qu'il y dedans ...

 

lancez /opt/bin/find --help ... et vous aurez déjà les paramètres ... mais c'est vrai qu'ils sont un peu ésotérique pour les non Linuxiens ... donc la doc explicite certainement les REGEX et autres subtilités de la chose ...

sur Goo..e vous trouverez plus, mieux et dans la langue de Molière ... avec des exemples ... que dans les "doc" livrées.

 

Philippe.

Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à cette question…

×   Vous avez collé du contenu avec mise en forme.   Supprimer la mise en forme

  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.

Chargement
×
×
  • Créer...