Philippe M a écrit 969 commentaires

  • [^] # Re: Redash like ?

    Posté par  (site web personnel) . En réponse à la dépêche Metabase - Business intelligence open source. Évalué à 5.

    Metabase est-il de près ou de loin un concurrent de Redash ?

    A priori, la grosse différence est que Metabase propose un requêteur graphique qui ne nécessite aucunes connaissances en SQL alors que pour Redash il faut tapoter soit même ses requêtes.

    Born to Kill EndUser !

  • [^] # Re: Redash like ?

    Posté par  (site web personnel) . En réponse à la dépêche Metabase - Business intelligence open source. Évalué à 4. Dernière modification le 29 novembre 2021 à 14:12.

    Nous sommes actuellement en phase de mise en prod de metabase. Lors des tests je l'ai connecté directement à la base Oracle de notre ERP… Pas une bonne idée car comme tout requêteur graphique il a tendance à taper large et du coups à générer de grosse requête.

    Est-il possible "facilement" de créer des graphiques personnalisé et d'y afficher des données venant de plusieurs type de bdd ? (Genre dans le même graphique recouper des infos venant de mysql et postgres ?).

    La solution est de monter un datawarehouse qui sera synchronisé avec une ou x bases. L'avantage est choisir la périodicité de synchro et pouvoir croiser des données provenant des différentes bases, voir même d'import Office injecté par les utilisateurs dans des tables spécifiques.

    Born to Kill EndUser !

  • [^] # Re: gagne du temps

    Posté par  (site web personnel) . En réponse au message NFS et ACL. Évalué à 2.

    si les données existent deja et sont disponibles sur la baie netapp,

    Oui les données existe déjà et ce depuis de nombreuses années. C'est juste pour un nouveau partage qu'on me demande la possibilité de définir au dossier/fichier des droits et non au share complet. Jusqu'à présent nous avions un public et un share par service.

    elles sont peut-etre plus tranquilles sur le NFS qui stockent ensuite en raid, avec deduplication, etc sur le netapp

    Les disques des VM sont eux aussi stockés sur la baie dans des datastores dédiés gérés par VmWare.

    puis migrer tes utilisateurs sur le nouveau serveur, sans meme toucher aux données qui restent sur le NFS

    La migration sera un peu plus "complexe" puisque je souhaite passer de la branche 3.5 à 4.x pour avoir une simulation AD complète avec en backend LDAP, dns, dhcp…

    il me semble avoir lu que ce serait une mauvaise idée par exemple de partager des dossiers webs, qui hébergent des sites en PHP, avec du NFS, pour le mettre à dispo d'une ferme de serveurs webs (apache ou nginx)

    Cela reste pour de l'interne. Nous avons des app en php mais y une couche docker au milieu de ce petit monde.

    J'aime bien garder l'idée du montage NFS car bien plus simple à gérer qu'un disque. Si j'ai besoin de l'agrandir ça me prend à peine 3s, alors qu'un disque, même avec LVM faut que je me gratte la tête pour me rappeler comment faire. Et même bien fait j'ai eu des mauvaises surprise. Je vais faire des essais avec une VM toute propre et récente.

    Born to Kill EndUser !

  • [^] # Re: gagne du temps

    Posté par  (site web personnel) . En réponse au message NFS et ACL. Évalué à 2. Dernière modification le 22 novembre 2021 à 14:36.

    Ah punaise ! Très bonne idée !

    Comme quoi ça vaut le coups d'en parler avant d'y aller tête baissé.

    Reste à trancher si je continue avec mes montages NFS dans la nouvelle VM ou alors si j'ajoute des disques dans la VM ?

    Merci.

    Born to Kill EndUser !

  • [^] # Re: gagne du temps

    Posté par  (site web personnel) . En réponse au message NFS et ACL. Évalué à 2.

    Du coups si je veux faire plus simple, il faut que j'ajoute un disque à la VM et que j'active les xattr sur ext4 ?

    Born to Kill EndUser !

  • [^] # Re: gagne du temps

    Posté par  (site web personnel) . En réponse au message NFS et ACL. Évalué à 2. Dernière modification le 22 novembre 2021 à 11:25.

    Oups effectivement erreur de ma part :

    nfs4_getfacl test/
    A::OWNER@:rwaDxtTnNcCy
    A:g:GROUP@:rwaDxtTnNcy
    A::EVERYONE@:rwaDxtTnNcy
    

    test/ étant un montage NFS

    Born to Kill EndUser !

  • [^] # Re: gagne du temps

    Posté par  (site web personnel) . En réponse au message NFS et ACL. Évalué à 2.

    • les xattr ne sont pas activés sur le serveur NFS (la baie netapp)

    A priori c'est géré par la baie dès l'activation du nfs4 : https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiRmdON1av0AhWISPEDHfMXBiwQFnoECAsQAQ&url=https%3A%2F%2Fwww.netapp.com%2Fmedia%2F10720-tr-4067.pdf&usg=AOvVaw0XSonXBgCaPifhhYMGmtpz page 45

    • la version de ton linux est vieille, peut-etre qu'il ne part pas en NFSv4 mais en v3 ou bien certaines options ne sont pas possibles justement à cause de son age

    J'indique dans le fstab d'utiliser nfs4, si il le ne gérait pas je pense que j'aurai une erreur comme quoi le protocole n'est pas supporté ? il est clair que c'est vieux mais j'ai tout les outils getfacl et il marche en plus :)

    getfacl /tmp
    getfacl : suppression du premier « / » des noms de chemins absolus
    # file: tmp
    # owner: root
    # group: root
    # flags: --t
    user::rwx
    group::rwx
    other::rwx
    

    Born to Kill EndUser !

  • [^] # Re: anti spam ?

    Posté par  (site web personnel) . En réponse au journal Pourquoi Bloctel et les lois contre le démarchage téléphonique ne servent plus à rien. Évalué à 5. Dernière modification le 18 novembre 2021 à 11:27.

    Concernant le fixe : trop harcelés…

    Un téléphone fixe DECT… mince le mien ne doit plus avoir de pile depuis 5 ans !
    D'ailleurs je pense que le chien l'a transformé en une bouillit pré-mâché et l'a probablement subtilement glissé sous le canapé pour que personne ne s’aperçoive de sa bêtise… Oui mon chien est intelligent et je ne passe pas souvent l'aspirateur sous le canapé !

    Born to Kill EndUser !

  • [^] # Re: quid de la restauration?

    Posté par  (site web personnel) . En réponse au journal Sauvegarder le contenu d’un container Docker avec BackupPC. Évalué à 2.

    Suis-je le seul supris de voir un projet avec un script de backup et absolument rien pour décrire le process de restoration des données?

    Pour faire la restauration tu utilise BackupPC, mon script permet juste d'extraire des données des containers pour les intégrer dans un processus global de sauvegarde de BackupPC. Dans mon cas j'utilise BackupPC pour Docker, pour des fichiers utilisateurs, pour d'autres bases mysql… Le jour où j'ai besoin de faire une restauration je n'ai pas à me demander par quel outil la sauvegarde est faite et comment cela marche. Des restaurations on en fait pas tout les jours ;)

    Soit dit en passant GLPI est le cas typique d'une appli qui peut souffrir de quelques secondes d'arrêt chaque nuit et pour laquelle il y a peu de chance de vouloir restaurer seulement quelques lignes ou une table. Et ils semble que les volumes semblent être des bind mounts de répertoires de la machine hôte.

    J'ai proposé GLPI, mais ce n'est qu'un exemple, remplace le par ce que tu veux avec ces propres contraintes. Ta proposition est bonne mais comment faire lorsque tu as un container qu'il est totalement impossible de mettre en pause ?

    L'avantage c'est qu'il n'y a quasi aucun scripting, que t'es absolument sûr que le volume de ta db et du reste de l'appli sont cohérents. Avec ta méthode je ne vois rien qui garantie la cohérence entre le dump mysql et les fichiers copiés. Donc à la restauration tu peux te retrouver avec des fichiers uploadés qui ne sont pas référencés en DB et avoir des trucs pas propres..

    Ça oui et effectivement, sauf à mettre en pause ou arrêter le container il n'y a pas de solution. Mais toujours même problème, comment faire pour un container qu'il n'est pas possible d'arrêter ?

    Du reste en utilisant des vrais volumes plutôt que des bind mounts tu pourrais bénéfichier des capacités de snapshots de docker et faire des backups sur des clones.

    J'utilise de vrai volume au quotidien. Si je ne l'ai pas fais dans mon exemple c'est par simplicité et aussi en scriptant la copie des fichiers hors du container on s'affranchit de devoir créer un volume par container.

    Born to Kill EndUser !

  • [^] # Re: Quelque chose qui m'échappe

    Posté par  (site web personnel) . En réponse au journal Sauvegarder le contenu d’un container Docker avec BackupPC. Évalué à 2.

    Tout dépend du container. Pour le cas de GLPI cela serait les fichiers uploader (factures, contrats…). J'avoue ne pas avoir penser à la solution de sauvegarder le répertoire contenant le volume sur l'hôte. J'ai rapidement été voir et c'est quand même un jolie sac dans le répertoire /var/lib/docker/overlay2. Il y a autant de répertoires que de volumes et comme ça il est difficile de savoir qui appartient à qui. Sans compter les volumes fantômes qui peuvent exister.

    GLPI n'était qu'un exemple et l'idée est d'avoir quelques choses de réutilisable pour d'autres container.

    Pour mysql il est clair qu'il est impossible de copier les fichiers plats, passer par mysqldump permet de mettre un lock le temps de l'export.

    Born to Kill EndUser !

  • [^] # Re: typo

    Posté par  (site web personnel) . En réponse au journal Sauvegarder le contenu d’un container Docker avec BackupPC. Évalué à 2.

    Merci.

    Born to Kill EndUser !

  • [^] # Re: Dans le même genre

    Posté par  (site web personnel) . En réponse au journal Sauvegarder le contenu d’un container Docker avec BackupPC. Évalué à 3.

    Je ne connaissais pas Bivac, d'après ce que je comprends c'est uniquement pour les volumes.

    BackupPC n'est pas dédié à la sauvegarde Docker, c'est un outil de sauvegarde au sens large. J'ai juste fais un script de pre-backup executé par BackupPC.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2. Dernière modification le 22 octobre 2021 à 15:01.

    Version corrigé, il y avait un problème avec le mv qui n'aimais pas trop les espaces dans le nom de fichier initial.

    for e in ./*
    do
      # calcul le nouveau nom en replaçant les espaces par _ et PDF par pdf
      nouveau_nom=`echo $(basename "$e") | tr "[:blank:]" "_" | tr "PDF" "pdf"`
    
      # extrait l'extension
      extension=${nouveau_nom##*.}
    
      # renomme sous la nouvelle nomenclature
      mv "$(basename "$e")" $nouveau_nom
    
      # regarde si c'est un PDF et l'imprime
      if [ ${extension} = "pdf" ]
      then
        rlpr --printer=${PRINTER} $nouveau_nom
      fi
    
      # efface la piece jointe
      rm -f $nouveau_nom
    done

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    Effectivement, c'est bien plus propre comme tu le propose.

    Merci.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    Et voilà le petit dépôt qui va bien pour les warrior : https://github.com/Philippe-M/mail2print

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    s/getmail m'a souvent/getmail m'a sauvé/

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    getmail m'a souvent, je te laisse voir plus bas le montage fait.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 4. Dernière modification le 22 octobre 2021 à 11:19.

    Nikel avec getmail

    fichier de config

    [retriever]
        type = SimpleIMAPRetriever 
        server = server
        username = username
        password = password
        mailboxes = ("INBOX",)
        move_on_delete = INBOX.INBOX.archives 
    
    [destination]
        type = Maildir
        path = /home/mail2print/Mail/
    
    [options]
        delete = true
        delete_after = 0
        read_all = false
        keep = true

    Dans mon container je lance toute les x minutes getmail par cette commande

        #!/bin/sh
        TIMECRON1=${TIMECRON:-300}
    
        while :
        do
                getmail --getmaildir=/etc/mail2print --rcfile=getmail.conf
                sh /bin/printmail.sh
                sleep $TIMECRON1
        done

    getmail "copie" les mails dans le répertoire Mail/new, efface le mail de INBOX pour le copier dans INBOX.INBOX.archives

    Ensuite le script suivant extrait les fichiers joints, lance l'impression et fait le ménage dans les répertoires.

        #!/bin/bash
        # Parameters
        MAILDIR=/home/mail2print/Mail
        LOGFILE=/var/log/mail/mail2print.log
        ATTACH_DIR=/home/mail2print/Mail/attachments
        PRINTER=${PRINTER}
    
        if [ -d ${MAILDIR}/new ]
        then
                COUNT=`ls ${MAILDIR}/new | wc -l`
                if [ ${COUNT} -ne 0 ]
                then
                        for i in ${MAILDIR}/new/*
                        do
                                #echo "[printmail] Processing : $i" | tee -a ${LOGFILE}
                                uudeview $i -iqn -p ${ATTACH_DIR}/
    
                                # process file attachments with space
                                cd ${ATTACH_DIR}
                                NBATTACH=`ls ${ATTACH_DIR} | wc -l`
                                if [ ${NBATTACH} -ne 0 ]
                                then
                                        for e in ./*
                                        do
                                                a=`echo $e | tr "[:blank:]" "_"`
                                                if [ $? -eq 0 ]
                                                then
                                                        mv "$e" "$a"
                                                fi
                                        done
                                        for f in *.PDF
                                        do
                                                mv $f ${f%.*}.pdf
                                        done
    
                                        # end of patch
                                        #echo "[printmail] Printing PDFs" | tee -a ${LOGFILE}
                                        for x in ${ATTACH_DIR}/*.pdf
                                        do
                                                #echo "[printmail] Printing : $x" | tee -a ${LOGFILE}
                                                rlpr --printer=${PRINTER} $x
                                                #echo "[printmail] Deleting file : $x" | tee -a ${LOGFILE}
                                                rm -f $x | tee -a ${LOGFILE}
                                        done
    
                                        #echo "[printmail] Clean up and remove any other attachments" | tee -a ${LOGFILE}
                                        for y in ${ATTACH_DIR}/*
                                        do
                                                rm -f $y
                                        done
                                fi
    
        #                       # delete mail
                                #echo "[printmail] Deleting mail : $i" | tee -a ${LOGFILE}
                                rm $i | tee -a ${LOGFILE}
                        done
                fi
        fi

    Faut que j'intègre la suppression du fichier log tout les x jours et éventuellement une purge du dossier INBOX.INBOX.archives tout les x mois.

    Au final j'utilise un seul programme getmail totalement intégré au système. Je vais voir pour publier tout ça sur docker hub et github.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 3.

    La gestion des pièces jointes est faite par un script shell qui va gratter dans le répertoire $USER/Mail. Il mérite encore quelques améliorations mais en l'état il fait le taff.

    J'ai déjà fais quelques bricoles en python et j'ai vraiment du mal à me faire à ce langage. Mon idée était de rester sur des programmes systèmes (fetchmail, procmail…) scriptable pour rester simple et ne pas re-inventer la roue.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    L'idée de sortir mon python m'a traversé l'esprit mais je trouve dommage de tout refaire "juste" à cause d'un problème de déplacement de mail.

    imap-cli a l'air d'être à l'arrêt et il ne me semble pas gérer les pièces jointes.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    D'après ce que j'ai compris --folder de fetchmail permet de dire quel "répertoire" aller relever, donc le répertoire doit être existant dans la BAL. Dans mon cas les nouveaux mails doivent rester à la racine et doivent être déplacé uniquement après traitement (impression).

    fetchmail.conf

    set no syslog
    set logfile /var/log/mail/mail2print.log
    set postmaster "fetchmail"
    
    poll ssl0.ovh.net
      protocol imap
      port 993
      user "XXX@xxxx"
      password "passs"
      ssl
      mda "/usr/bin/procmail -m '/etc/mail2print/procmail.conf'";
    

    procmail.conf

    MAIL_DIR=/home/mail2print/Mail
    VERBOSE=off
    LOGFILE="/var/log/mail/mail2print.log"
    
    :0
    *^content-Type:
    $MAIL_DIR/
    

    J'ai comme l'impression que fetchmail n'est pas capable d'envoyer des commandes, autre que pour relever les mails, au serveur.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    Ok merci je vais regarder tout ça.

    Born to Kill EndUser !

  • [^] # Re: utiliser les APIs et les protocoles qui vont bien

    Posté par  (site web personnel) . En réponse au message Imprimer une pièce jointe automatiquement en cli. Évalué à 2.

    Effectivement je me connecte en imap mais je ne vois pas comment passer les commandes depuis mon container ?

    Born to Kill EndUser !

  • [^] # Re: Keepass

    Posté par  (site web personnel) . En réponse au message Gestionnaire de mots de passes. Évalué à 3.

    Ok donc pas du tout adapté notre usage.

    Born to Kill EndUser !

  • [^] # Re: Keepass

    Posté par  (site web personnel) . En réponse au message Gestionnaire de mots de passes. Évalué à 2.

    Il me semble que keepass et les déclinaisons ne sont pas vraiment multi-utilisateurs et sur le site je n'ai pas vu la notion de partage de mot de passe.

    Born to Kill EndUser !