JJD Posté(e) 11 avril 2013 Signaler Share Posté(e) 11 avril 2013 Bonjour , je voulais savoir si il y avait une solution pour programmer la vidange quotidienne de un ou plusieurs répertoires ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 11 avril 2013 Signaler Share Posté(e) 11 avril 2013 Bonjour, Pas en standard ... mais vous pouvez programmer un "cron" (tache programmée à une date / heur) ... en ajoutant une ligne dans le fichier /etc/config/crontab et en relançant le crond ... Philippe. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 JJD Posté(e) 12 avril 2013 Auteur Signaler Share Posté(e) 12 avril 2013 Effectivement je n'y avais pas pensé, un petit coup de Winscp pour l'édition du fichier crontab et c'est fait. Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 8 février 2014 Signaler Share Posté(e) 8 février 2014 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 9 février 2014 Signaler Share Posté(e) 9 février 2014 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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??? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 Bonjour, Utilisez toujours des chemins complets ... essayez avec /bin/rm vérifiez avec : crontab -l que c'est bien pris en compte ... Philippe. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 11 février 2014 Signaler Share Posté(e) 11 février 2014 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 ) 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 smike2809 Posté(e) 13 février 2014 Signaler Share Posté(e) 13 février 2014 Ç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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
0 father_mande Posté(e) 13 février 2014 Signaler Share Posté(e) 13 février 2014 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Question
JJD
Bonjour , je voulais savoir si il y avait une solution pour programmer la vidange quotidienne de un ou plusieurs répertoires ?
Lien vers le commentaire
Partager sur d’autres sites
15 réponses à cette question
Messages recommandés
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.