IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Vérification et liste fichiers


Sujet :

Shell et commandes GNU

  1. #61
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saga974 Voir le message
    mais je trouve tout de même un peu imprécis les durées.
    Qu'entends-tu par "imprécis" ? Une division entière de secondes par 86400 donne une durée entière en jours (mathématiques niveau 5°). Si tu veux plus de précision, à toi d'indiquer comment la calculer. C'est toi qui dirige ton code, pas ton code qui te dirige (adaptation de la citation d'Edgar Grospiron qui a dit "c'est toi qui dirige tes skis, ce ne sont pas tes skis qui te dirigent").

    Citation Envoyé par saga974 Voir le message
    Premièrement comment éliminer la première ligne ? Elle ne me sert pas puisque c'est le répertoire 'sftpusers" de base dans lequel il y a tous les sous répertoires avec les fichiers déposés dedans.

    Deuxièmement comment seulement afficher la durée de présence des fichiers et pas leur répertoire parent ? Exemple pour le fichier "txtfile.txt" je ne souhaite pas afficher la durée de présence du répertoire "int". La ligne "durée de présence du fichier "2"" est incohérente car c'est un répertoire.
    Le find demande d'abord le ciblage, puis ensuite l'action. Donc "-type" et "-name" en premier puis "-print" ensuite.

    Citation Envoyé par saga974 Voir le message
    Enfin, comment affiner la durée de présence du fichier ? En effet, si je prends "txtfile.txt" ce fichier est présent depuis lundi 26 septembre 2022, nous sommes le vendredi 30 septembre donc cela fait au moins 4 jours
    La variable "diff" que tu affiches à chaque fois est le résultat du calcul entre ctime (date du jour) et de ftime (date du dossier "repRecherche"). Partant de là, je ne vois pas trop comment ça pourrait afficher la durée de présence du fichier "txtfile.txt"
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  2. #62
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    N_Bah,


    Malheureusement je n'ai pas les capacités pour réaliser un autre script c'est pour moi super dur sans connaissances et malgré ce que j'ai pu lire sur divers sites

  3. #63
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Svear,

    Qd je dis imprécis c'est surtout le fait que j'ai créé un fichier un lundi et un vendredi et dans le code qui calcule une différence il est impossible que ca me remonte le même nombre de jour de présence c'est pour cela que je dis "imprécis".

    Je vois demain pour essayer de switcher la commande find et regarderai les résultats produits et te tiendrai au courant.

    Pour la variable diff, il faut donc que je précise pour le fichier ? Mais quelle commande rajouter en plus de repRecherche et qui puisse prendre en compte l'ensemble des fichiers situés dans les sous répertoires ? J'ai cherché sur le net mais pas forcément tout compris à ce qui se dit.



    Citation Envoyé par Sve@r Voir le message
    Qu'entends-tu par "imprécis" ? Une division entière de secondes par 86400 donne une durée entière en jours (mathématiques niveau 5°). Si tu veux plus de précision, à toi d'indiquer comment la calculer. C'est toi qui dirige ton code, pas ton code qui te dirige (adaptation de la citation d'Edgar Grospiron qui a dit "c'est toi qui dirige tes skis, ce ne sont pas tes skis qui te dirigent").


    Le find demande d'abord le ciblage, puis ensuite l'action. Donc "-type" et "-name" en premier puis "-print" ensuite.


    La variable "diff" que tu affiches à chaque fois est le résultat du calcul entre ctime (date du jour) et de ftime (date du dossier "repRecherche"). Partant de là, je ne vois pas trop comment ça pourrait afficher la durée de présence du fichier "txtfile.txt"

  4. #64
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    L'avantage des connaissances, c'est que ça s'acquiert. Ce forum n'est pas un outil de livraison de travail gratuit. Tu ne réponds pas aux questions que les habitués du forum te posent. As-tu une liste des fichiers à vérifier ? Cette liste est-elle fixe ? Relis les messages des intervenants et applique leurs conseils (rédiger un algorithme en bon français, par exemple).

  5. #65
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Qd je dis imprécis c'est surtout le fait que j'ai créé un fichier un lundi et un vendredi et dans le code qui calcule une différence il est impossible que ca me remonte le même nombre de jour de présence c'est pour cela que je dis "imprécis".
    Ben oui mais comme tu affiches à chaque fois le même résultat, résultat qui n'est jamais recalculé, tu obtiens à chaque fois la même valeur. Que cette valeur ne te convienne pas c'est compréhensible mais là encore c'est toi qui dirige ton script. Si tu veux afficher la valeur de "truc", il te faut au préalable récupérer la valeur de "truc" et non pas la valeur de "machin".

    Citation Envoyé par saga974 Voir le message
    Pour la variable diff, il faut donc que je précise pour le fichier ? Mais quelle commande rajouter en plus de repRecherche et qui puisse prendre en compte l'ensemble des fichiers situés dans les sous répertoires ? J'ai cherché sur le net mais pas forcément tout compris à ce qui se dit.
    Normal, car encore une fois tu atteints les limites de find et ça m'étonnerait que dans ce qui se dit ailleurs il y ait une réponse concrète à ta préoccupation, c'est probablement pour ça que tu ne comprends pas ce qui s'y dit. "find" ce n'est pas la-commande-magique-qui-peut-tout-faire (et à mon avis elle en fait déjà trop par rapport à la philosophie Unix qui dit "une commande ne fait qu'une chose simple mais la fait bien").
    Tu veux traiter de façon très particulière les fichiers retournés par find, c'est possible mais à toi de programmer l'action comme j'ai montré un exemple ici. Et c'est ça la philosophie Unix, une commande ne fait qu'une chose simple mais la fait bien et si je veux une chose complexe, à moi alors d'associer les différentes commandes entre elles pour obtenir mon résultat. Et c'est faisable car toutes les commandes ont la même structure à savoir un même point d'entrée (stdin) et un même point de sortie (stdout) et on peut alors connecter la sortie de l'une à l'entrée de l'autre pour obtenir le résultat que l'on veut. Comme des legos qui ne sont au départ que carrés et cubes mais qu'on peut associer les uns avec les autres pour former des objets.

    Citation Envoyé par saga974 Voir le message
    Malheureusement je n'ai pas les capacités pour réaliser un autre script c'est pour moi super dur sans connaissances et malgré ce que j'ai pu lire sur divers sites
    Il n'y a pas de honte à manquer de connaissance. La honte c'est d'en manquer et de ne rien faire pour y remédier. Il y a plein de tutos de shell sur le net, ainsi que l'un d'entre eux mentionné dans ma signature (ok il est vieux donc ne contient pas toutes les dernières technologies mais tout ce qui y est écrit est utilisable). En as-tu téléchargé un seul ? En plus tu es enseignant franchement!!! Comment réagirais-tu si tes élèves te disaient "ouais je sais pas faire mais c'est normal car je manque de connaissances" ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #66
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Je vous sollicite pour avoir les meilleurs conseils sur un script.
    pas plus simple de dire tout simplement, je suis allergique à la ligne de commande, je ne désire lire aucune documentation et je n'ai aucune compétence en programmation.
    Pouvez-vous m'écrire un programme ?
    Malheureusement, ce forum a pour but d'aider les codeurs et non de travailler gracieusement à la place des autres

    Citation Envoyé par saga974 Voir le message
    Malheureusement je n'ai pas les capacités pour réaliser un autre script
    mais ici, il n'y a même pas un script ! une pauvre ligne de code qui ne fait même pas le travail n'a pas d'intérêt. Le "script" actuel, c'est peut-être que 2% du script final donc tout mettre à la poubelle peut être une bien meilleure option que s'entêter sur une pente plus que savonneuse.


    Citation Envoyé par saga974 Voir le message
    - que cette tâche de vérification de présence de fichiers ne soit plus rendue manuelle et qu'on aille pas vérifier un à un dans les 500 sous répertoires s'il y'a bien des fichiers présents.
    - à une certaine heure pour vérifier que des fichiers ne doivent pas être présents sans raison.
    Comme indiqué #60, il faut faire une maquette du fichier (type excel?) que l'on désire pour notre finalité (pas obligatoirement un fichier log)

    Si je sais lire, le but FINAL est (une alerte en temps "réel" et pas un rapport "stats" sur x jours)
    - de tester si des fichiers non autorisés sont présents sur les serveurs ftp ?
    - de tester si des fichiers (obligatoires) sont bien présents (A une certaine heure) ?


    - Pourquoi ne lister que 3 extensions ???? si le but est de dépister les fichiers non autorisés ... "monfilm.mkv" de 36 Go n'est même pas détecté. Donc script inutile !
    - Pour vérifier les fichiers "obligatoires", ici aussi, on n'a qu'un simple contrôle manuel. Donc script inutile puisqu'il ignore actuellement cette fonctionnalité !
    Uniquement ici que la notion de date arrive ? "certaine heure". Avec un script qui tourne une fois par jour, difficile de tester une présence à une certaine heure. Donc script actuel inutile !

    ------------

    Ainsi, sans définir exactement ce que l'on désire en sortie (et la finalité exacte), il n'y a aucune raison d'entamer l'écriture du script. Sauf si on aime perdre son temps (mais puisque c'est le nôtre ).

  7. #67
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    c'est sûr quavec un objectif mal défini, c'est moins facile de déterminer les étapes pour y arriver.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #68
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Bonjour à tous,

    Bon je vais répondre à l'ensemble des personnes car je pense qu'on me voit comme un programmeur ou développeur chevronné alors qu'il n'en est rien.

    La plupart des choses que vous me dites je ne les comprends pas car je ne suis pas informaticien de base ou développeur ou programmeur ou enseignant comme j'ai pu le voir écrit (enseignant dans ma signature je ne sais même pas ce que ca fait là)

    Je fais un métier mais je ne peux pas m'étendre sur ce que je fais pour des raisons de respect de la vie privée. Cela à un rapport avec l'autorité point barre. On me demande de faire quelque chose j'essaye d'être sympa et je m'y atèle.

    Maintenant je vous pris de bien vouloir comprendre que je n'ai pas les compétences car je n'ai pas les bases pour réussir ce que vous me demandez. J'essaye je cherche je lutte mais effectivement du fait de mes lacunes je galère. Je n'ai pas les réflexes je n'ai pas les bases je me renseigne mais suis très limité du fait de ce peu de connaissances et ce n'est pas que je ne veuille pas vous répondre.

    Les objectifs il me semblait les avoir bien définis mais visiblement non car je ne suis pas informaticien et que je n'ai pas les réflexes pour le faire correctement.

    Selon moi, littéralement si je devais décrire la chose, mon attendu était que :
    - j'ai une VM des clients déposent des fichiers de type .tar.gz ou .done ou.zip mais selon moi peu importe l'extension dans un répertoire sftpusers possédant des sous répertoires de type user-quelquechose mais la encore peu importe.
    - le but était de vérifier si des fichiers étaient déposés dedans (car nous ne vérifions pas tous les jours car d'autres tâches nous incombent en parallèle) au travers d'un script qui serait lancé quotidiennement et automatiquement avec un rapport de log envoyé par mail par exemple.


    En gros voilà l'idée de départ, malheureusement dans le jargon informatique je ne sais pas plus décrire le besoin que les 2 lignes ci-dessus.

    J'avais donc sollicité votre aide et la commande find m'avait été conseillée à bon usage oui ou non mais à priori non puisque les inputs que j'avais souhaité (exemple la calcul du nombre de jours de présence de ses fichiers) en sus de la demande de départ complexifiait la chose.

    Voila je ne sais pas quoi vous dire de plus et m'excuse pour toute cette gène occasionnée je pense me contenter de la commande find mais reviendrai surement vers vous pour mon histoire de cron et envoil par mail ce qui devrait suffire à ma problématique.

    Encore désolé si je suis un boulet dans votre domaine.

  9. #69
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    il n'est pas dit qu'il faut remonter la liste des nouveaux fichiers.

    quand on ne sait pas programmer, on cherche un outil qui fait le job; en l'occurrence, il existe inotify.
    mais, il serait tout aussi simple, et plus efficace, de configurer systemd path...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #70
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Citation Envoyé par saga974 Voir le message
    je pense qu'on me voit comme un programmeur ou développeur chevronné
    Pas du tout. On te voit comme un gros nul qui tente de faire faire son travail par les autres. Les boulangers sont payés pour faire du pain, les maçons sont payés pour faire des maisons, les informaticiens sont payés pour faire des logiciels. Toi, tu voudrais qu'on te donne gratuitement le fruit de notre travail.

    Citation Envoyé par saga974 Voir le message
    La plupart des choses que vous me dites je ne les comprends pas
    Les informaticiens non plus

    Citation Envoyé par saga974 Voir le message
    j'essaye d'être sympa
    Dans le monde du travail, personne n'est sympa. Soit tu as la compétence pour un travail pour lequel tu es engagé et payé, soit tu ne fais rien. Tu n'as pas à être sympa !

    Citation Envoyé par saga974 Voir le message
    et je m'y atèle
    Faute !

    Citation Envoyé par saga974 Voir le message
    Maintenant je vous pris de bien vouloir comprendre que je n'ai pas les compétences
    Alors démissionne ! Les compétences, tu les obtiens ou tu les paies. Engage quelqu'un qui sait. C'est comme cela que fonctionne l'ensemble de la société.

    Citation Envoyé par saga974 Voir le message
    En gros voilà l'idée de départ, malheureusement dans le jargon informatique je ne sais pas plus décrire le besoin que les 2 lignes ci-dessus.
    On ne te demande pas plus. On ne te demande pas de jargon informatique. Mais là, tu ne fais qu'énoncé un rêve, un objectif. Tu ne dis pas ton travail. Nul besoin de jargon ou commande. En clair, tu veux sournoisement faire travailler les autres à ton profit en chouinant.

    Citation Envoyé par saga974 Voir le message
    J'avais donc sollicité votre aide et la commande find m'avait été conseillée à bon usage oui ou non mais à priori non puisque les inputs que j'avais souhaité (exemple la calcul du nombre de jours de présence de ses fichiers) en sus de la demande de départ complexifiait la chose.
    Sur le fond, tu te prends la tête pour rien. Fais une "photo" en listant les fichiers avec la commande find, en mettant la date (secondes depuis l'Epoch). Puis compare, au besoin, tes "photos".

    Citation Envoyé par saga974 Voir le message
    Encore désolé si je suis un boulet dans votre domaine.
    Alors démissionne !

  11. #71
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Effectivement, voilà encore une chose à laquelle je n'ai pas pensé : les nouveaux fichiers. Dans tous les cas, si le log quotidien est envoyé tous les jours. A sa lecture je devrais me rendre compte de la nouveauté je pense.

    Je regarde cette histoire de inotify.

  12. #72
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Merci flodelarab.

    Citation Envoyé par Flodelarab Voir le message
    Pas du tout. On te voit comme un gros nul qui tente de faire faire son travail par les autres. Les boulangers sont payés pour faire du pain, les maçons sont payés pour faire des maisons, les informaticiens sont payés pour faire des logiciels. Toi, tu voudrais qu'on te donne gratuitement le fruit de notre travail.

    Les informaticiens non plus

    Dans le monde du travail, personne n'est sympa. Soit tu as la compétence pour un travail pour lequel tu es engagé et payé, soit tu ne fais rien. Tu n'as pas à être sympa !

    Faute !

    Alors démissionne ! Les compétences, tu les obtiens ou tu les paies. Engage quelqu'un qui sait. C'est comme cela que fonctionne l'ensemble de la société.

    On ne te demande pas plus. On ne te demande pas de jargon informatique. Mais là, tu ne fais qu'énoncé un rêve, un objectif. Tu ne dis pas ton travail. Nul besoin de jargon ou commande. En clair, tu veux sournoisement faire travailler les autres à ton profit en chouinant.

    Sur le fond, tu te prends la tête pour rien. Fais une "photo" en listant les fichiers avec la commande find, en mettant la date (secondes depuis l'Epoch). Puis compare, au besoin, tes "photos".

    Alors démissionne !

  13. #73
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Effectivement, voilà encore une chose à laquelle je n'ai pas pensé
    Et voilà. On te demande un travail, commence par identifier le besoin. Tu as commencé par parler de dossier sur lequel les gens déposent des fichiers et tu dois vérifier qu'ils y sont (déjà on se demande pourquoi c'est à toi de le faire, si moi je dis à quelqu'un "voici ton accès, tu y déposes ce que tu veux" je m'attends à ce que ce soit lui qui vérifie que son dépot est effectué, et non pas un tiers que je vais payer pour ça mais passons).
    Et maintenant "je n'ai pas pensé aux nouveaux fichiers" hé oui mais cela s'appelle la dimension temporelle. Si aujourd'hui je dépose un fichier, le dossier en contient un. Si demain j'en dépose un autre, alors le dossier en contient "un nouveau" donc deux. Ensuite ben... quoi faire avec l'info "j'ai un fichier" dans le log du lundi puis "j'ai deux fichiers" dans le log du mardi ça c'est à toi de le définir pour ensuite le coder.

    Citation Envoyé par saga974 Voir le message
    les nouveaux fichiers. Dans tous les cas, si le log quotidien est envoyé tous les jours. A sa lecture je devrais me rendre compte de la nouveauté je pense.
    Oui. Tu as la commande "cmp" qui te dit si deux fichiers (deux logs c'est bien deux fichiers) sont identiques ou pas. Tu as la commande "diff" qui te liste toutes les différences. Et tu as la commande "meld" qui t'affiche en pleine page deux fichiers en indiquant ce qui diffère dans l'un ou dans l'autre et en te donnant la possibilité d'ajuster ces différences (plus pour un travail en direct qu'un script qui ne saurait pas quoi en faire) mais c'est ppur dire que oui, la notion de différenciation entre fichiers est bien connue des dev Unix.
    Mais encore une fois, commence par identifier ton besoin. Par exemple qu'est-ce qui t'a pris d'aller vouloir trouver la durée de présence? C'est demandé? Si encore tu savais faire ok ce serait "le petit plus de l'artiste" mais bon, déjà commence par faire au-moins le job de base.
    Et si tu n'as pas les compétences, alors
    • tu demandes à les obtenir
    • tu te prends par la main pour te les obtenir tout seul (tutos comme je l'ai dit)
    • tu rends compte que ce travail n'est pas de ton niveau, que tu n'as pas été engagé pour tes compétences de dev donc qu'on ne peut pas te demander un travail de dev

    (et tous ces choix ne sont pas exclusifs les uns des autres)

    PS: et ne pense surtout pas que ce que je te dis je ne me l'applique pas à moi-même => https://www.developpez.net/forums/d2...bles-debutant/

    Citation Envoyé par saga974 Voir le message
    Je regarde cette histoire de inotify.
    C'est un outil de monitoring de dossier. Il te prévient quand un dossier change
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #74
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 360
    Par défaut
    Je vois que certain sont énervés

    Si on essaye de définir ton besoin:
    • Récupérer la liste des fichiers "normaux" se trouvant dans un répertoire précis et uniquement dans ce répertoire, pas dans les descendant
    • Pour cette liste de fichiers, ressortir les informations suivantes:
      • Nom du fichier
      • Date de dernier accès
      • Date de dernière modification
      • Durée de présence
    • Mettre ces informations sous forme: (donner un exemple)
    • Envoyer le résultat final par mail
    • ....


    Ici, je te donne un exemple qui devrait être assez clair d'un besoin où chaque items est pratiquement atomique dans la réflexion informaticienne.
    Donc essaye déjà de poser ton problème correctement (car pour ma part, j'ai encore des zones floues sur ton besoin) et une fois le sujet bien posé, en général, la solution coule de source.

    Bon après, c'est un peu ce que N_BaH rabâche tout le temps

  15. #75
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Je vois que certain sont énervés
    Il a eu des mots un peu durs mais parfois faut que ça sorte.

    Citation Envoyé par disedorgue Voir le message
    Ici, je te donne un exemple qui devrait être assez clair d'un besoin où chaque items est pratiquement atomique dans la réflexion informaticienne.
    Donc essaye déjà de poser ton problème correctement (car pour ma part, j'ai encore des zones floues sur ton besoin) et une fois le sujet bien posé, en général, la solution coule de source.
    En plus j'avais posté un exemple qui me semblait pas mal convenir (je le remets ici avec plus de détails)
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
     
    traitement_perso() {
    	today="$(date '+%s')"
    	while read fic; do
    		modif="$(stat --format "%Y" "$fic")"
    		ecart=$((($today - $modif) / 86400))
    		echo "nom=[$fic];modifié=[$(stat --format "%x" "$fic")];durée en jours=[$ecart]"
    	done
    }
     
    find "${1:-.}" -type f 2>/dev/null |traitement_perso
    Pour le PO: tu le prends tel quel, tu le nommes "toto.sh" et tu le lances de cette façon ./toto.sh /poche/guibs/sftpusers/ et tu verras que le résultat est déjà pas dégueu.
    Mais surtout, tu vois assez clairement (enfin j'espère) la logique de la chose (que j'ai écrite en plus explicite que dans mon premier exemple, quitte à me faire fouetter par N_BaH qui n'aime pas les enchainements de processus quand c'est évitable). D'abord une recherche, sans tenter d'opérations métaphysiques impossibles, et ensuite cette recherche est redirigée via un pipe (un tube de communication, combinaison de touches "Alt Gr+6" sur ton clavier) sur une fonction de traitement des fichiers trouvés et qui, elle, pourra tranquillement coder toutes les opération métaphysiques de la création). Ce qui correspond totalement aux principes que je t'ai évoqués, à savoir "chaque job ne fait qu'un travail puis transmet son résultat au job suivant". Toute l'astuce du développeur shell (qui est, comme on le sait tous, une grosse faignasse) est de savoir quelle commande utiliser pour la "piper" ensuite dans telle autre puis dans telle autre puis dans telle autre pour avoir au final le bon résultat.
    Ainsi tout le détail des calculs se fait dans la fonction "traitement_perso" qui prend chaque fichier issu de find pour lui appliquer ce fameux "traitement perso". Donc si ce traitement est incomplet, rien ne t'interdit de l'enrichir. Tout ce que tu as à comprendre c'est que dans la boucle, la variable "fic" représente "un fichier trouvé par find".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #76
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Bonjour Disedorgue,

    Ah oui y'en a c'est tendu chez eux. En surpression je dirais !!!

    Après disedorgue moi je veux bien poser le problème je le fais mais je ne suis pas dans la tête d'un vrai informaticien qui sait ce qu'il veut. Ce qui vous semble logique à vous ne l'est pas pour tout le monde. Il faut comprendre ceci.

    Pour revenir au sujet, les fichiers vont se retrouver dans une arbo de ce style la /poche/guibs/sftpusers/user-quelquechose/trucmuche.tar.gz

    Svear, je vais essayer d'appliquer ton code mais j'ai des interrogations :
    - c'est quoi traitement_perso ?
    - c'est quoi "fic" ? si j'ai 30 fichiers dans mon arbo je fais comment pour ne pas tous les mentionner ? c'est le chemin que je dois mettre ? c'est à dire /poche/guibs/sftpusers/

  17. #77
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Ah oui y'en a c'est tendu chez eux.
    Tu devrais pas le prendre à la légère. Flodelarab n'a fait que retraduire en clair ce qu'on ressent tous. Il n'en faudrait pas beaucoup pour qu'on aille tous te dire de dégager, ou plus simplement pour qu'on dégage tous de ce topic en te laissant te démerder (suffit qu'on aille dans "abonnement" et qu'on décoche ce topic pour ne plus être prévenu de nouveaux messages). Si tu regardes bien, tu verras que certains intervenants ne se fatiguent plus à écrire de suggestions (qu'ils sentent probablement inutiles), se contentant de remarques générales. Si j'étais toi, j'en tiendrais compte.

    Citation Envoyé par saga974 Voir le message
    c'est quoi traitement_perso ?
    C'est le nom de mon choix que j'ai donné à ma fonction qui fait le traitement. Comme c'est un traitement un peu personnel, j'ai pensé judicieux de nommer cette fonction "traitement_perso", nom à mon sens plus parlant que "truc" ou "zob" (qui auraient été possibles aussi)

    Citation Envoyé par saga974 Voir le message
    c'est quoi "fic" ?
    Je te l'ai dit, c'est le nom de mon choix que j'ai donné à la variable qui va recevoir "un fichier" provenant du flux qui est envoyé à la fonction (ici le flux a été généré par "find"). Comme le flux envoie des noms de fichiers, j'ai pensé judicieux de nommer cette variable "fic", nom à mon sens plus parlant que "zob" ou "truc" (qui auraient été possibles aussi).

    Citation Envoyé par saga974 Voir le message
    si j'ai 30 fichiers dans mon arbo je fais comment pour ne pas tous les mentionner ?
    C'est le principe des boucles en algorithmique. Traiter 30 fichiers c'est faire 30 traitement identiques sur "chaque fichier". Donc on programme "un traitement" sur "un fichier quelconque" puis on applique le traitement sur les fichiers réels provenant de n'importe quelle info générant des noms de fichier (ls, find, ...). Comme j'ai mis ça dans une boucle de lecture (le while read), au final tous les fichiers seront traités mais chacun l'un après l'autre.
    C'est exactement le même principe qu'une fonction mathématique. Quand on te dit "calculer le carré" tu viens pas demander "oui mais si je dois calculer le carré de 30 nombres, je fais comment pour ne pas tous les mentionner", tu écris simplement f(x)=x².
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  18. #78
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 360
    Par défaut
    Citation Envoyé par saga974 Voir le message
    Après disedorgue moi je veux bien poser le problème je le fais mais je ne suis pas dans la tête d'un vrai informaticien qui sait ce qu'il veut. Ce qui vous semble logique à vous ne l'est pas pour tout le monde. Il faut comprendre ceci.
    L'exemple que je t'ai donné n'est pas un exemple spécifique à un informaticien, c'est juste poser un besoin en décomposant celui-ci en une suite d'étapes et de résultats à obtenir pour le faire et ,en même temps, de voir si on a soit même bien compris le besoin.
    Si tu arrives à décortiquer ton problème en une suite de petit problème unitaire, tu peux ensuite résoudre chacun de ceux-ci séparément avant de les rassembler.
    -Comment j'obtiens ma liste de fichier ?
    -Comment j'obtiens le nom du fichier ?
    -Comment j'obtiens chacune des dates ?
    -Comment je calcule la durée ?
    ...

    Et au pire,
    Comment je fais une boucle sur ma liste de fichier ?

    ça c'est le genre de questions auxquelles on peut te répondre mais en général, on ne te fera pas tout le boulot.

  19. #79
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    mais, au fait ! pourquoi te faut-il faire ça ? quel est la finalité ?
    parce que, signaler l'arrivée de fichiers dans un répertoire ça ne doit pas être fait "gratuitement", pour rien.
    ou alors c'est par sadisme : demander d'atteindre le toit du monde à un petit poisson.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  20. #80
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 129
    Par défaut
    Très bien disedorgue je vois ce que tu veux dire mais faut avouer que ce sont des réflexes qui ne s'acquièrent pas dans toutes les professions.

    Svear j'en tiens compte, par contre moi je n'ai jamais été insultant, jamais impoli, et surtout jamais rabaissant que ce soit ici ou dans la vie de tous les jours. Imagine toi un prof ayant des mots vis-a-vis d'un élève qui ne comprends pas comme un autre élève doué, il ne peut pas perdre ses moyens comme ca et surtout lâcher ses nerfs ainsi. C'est pas pro du tout. La je ne peux pas m'excuser tout le temps de ne pas comprendre ce qu'on me dit. Bref parenthèses closes.

    Dans ton code à quel moment je fais intervenir mon chemin de base /poche/guibs/sftpusers/ pour les actions seront réalisées ?

Discussions similaires

  1. [FTP] Listing fichiers comme sur un FTP
    Par zxr69 dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2006, 14h22
  2. liste fichiers et numéros
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/07/2006, 15h49
  3. [TinyXML] vérification d'un fichier avec une DTD
    Par vasilov dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 14/03/2006, 15h33
  4. liste fichiers (TListView) avec icones
    Par pjb dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/07/2005, 09h06
  5. Vérification d'un fichier
    Par Oberown dans le forum C++
    Réponses: 10
    Dernier message: 24/08/2004, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo