Files
varlog/_cache/similar/291326e5-a15d-4bd5-a5b2-33daac22716e.json
T
2026-05-15 10:37:48 +02:00

1 line
15 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[{"uuid":"47d2e89a-160e-46b5-bf95-fdc8c08b0d4c","slug":"page-upload","title":"Serveur Web - page upload","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 02:42:35","created_at":"2023-02-16 02:42:35","updated_at":"2023-02-16 02:42:35","tags":[],"plain":"Pour créer une page PHP qui reçoit un fichier envoyé depuis un script Bash, nous pouvons utiliser la méthode HTTP POST. Voici un exemple de code qui vous aidera à démarrer : Le code ci-dessus vérifie si un fichier a été envoyé via la méthode POST et utilise la fonction PHP moveuploadedfile pour déplacer le fichier du répertoire temporaire vers un répertoire de destination sur votre serveur.\n- La création du répertoire de destination avec la fonction mkdir si celui-ci n'existe pas crée récursivement le répertoire de destination, en accordant les autorisations de lecture, d'écriture et d'exécution à tous les utilisateurs.\nSauf qu'il est peut-être nécessaire de créer ce dossier en ligne de commande dans le dossier public du site : \nLe dossier a été créé avec un complément de droit dans le Terminal .\n- Si le fichier de destination existe déjà avec la fonction fileexists, nous utilisons la fonction unlink pour le supprimer avant de déplacer le nouveau fichier avec la fonction moveuploadedfile. Ainsi, le fichier existant sera remplacé par la nouvelle version.\n- La fonction isdir permet de vérifier si le répertoire de destination n'existe pas, alors nous utilisons la fonction mkdir pour le créer, puis nous vérifions si le répertoire a été créé avec succès avant de continuer le traitement du fichier téléchargé. Si le répertoire est créé avec succès, nous continuons avec la vérification et le traitement du fichier téléchargé, sinon nous affichons un message d'erreur et sortons du script avec la fonction exit.\n- Nous avons utilisé une structure conditionnelle pour vérifier la valeur de . Si la valeur n'est pas UPLOADERROK, nous affichons un message d'erreur correspondant à la valeur d'erreur spécifique. Les constantes UPLOADERRINISIZE, UPLOADERRFORMSIZE, UPLOADERRPARTIAL, UPLOADERRNOFILE, UPLOADERRNOTMPDIR, UPLOADERRCANTWRITE, UPLOADERREXTENSION sont des constantes prédéfinies en PHP qui indiquent les différentes erreurs de téléchargement de fichier possibles. En utilisant ce code, nous pouvons afficher un message d'erreur plus précis pour aider à résoudre le problème de téléchargement de fichier.\n- Un contrôle du CRC sur un fichier téléchargé et renvoyé. Nous utilisons la fonction hashfile pour calculer la valeur SHA1 du fichier. La fonction hashfile calcule le hash d'un fichier donné à l'aide de l'algorithme de hachage spécifié. Dans notre cas, nous allons utiliser l'algorithme de hachage SHA1 pour calculer la valeur CRC du fichier.\n- Nous devons également vérifier le paramétrage de PHP.\nLa directive postmaxsize est définie dans un fichier de configuration différent. Nous pouvons utiliser la fonction phpinfo pour vérifier le fichier de configuration utilisé par PHP. Cherchez la ligne \"Loaded Configuration File\" pour trouver le fichier utilisé. La directive postmaxsize est définie dans un niveau supérieur de la hiérarchie de configuration et ne peut pas être modifiée par la fonction iniset. Par exemple, si la directive est définie dans le fichier php.ini global, elle ne peut pas être modifiée par iniset dans un script PHP.\nLa modification de la directive postmaxsize nécessite un redémarrage du serveur web pour prendre effet. Assurez-vous que le serveur web a été redémarré après avoir modifié la valeur de postmaxsize dans le fichier php.ini.\nNous avons également modifié la directive ."},{"uuid":"7b07c7f0-a897-459a-ba7f-d48251bfca3e","slug":"installer-mariadb-server","title":"Installer MariaDB-Server","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 00:53:40","created_at":"2023-02-16 00:53:40","updated_at":"2023-02-16 00:53:40","tags":[],"plain":"Pour installer MariaDB-server sous Debian, vous pouvez suivre les étapes suivantes. <panel>\nMettez à jour le système en exécutant la commande suivante : sudo apt-get update\n</panel> <panel>Installez le paquet en exécutant la commande suivante : sudo apt-get install mariadb-server Pendant l'installation, vous serez invité à saisir un mot de passe pour l'utilisateur root de la base de données MariaDB. Entrez un mot de passe fort et notez-le soigneusement.\n</panel> <panel>\nUne fois l'installation terminée, vous pouvez démarrer le service MariaDB en exécutant la commande suivante : sudo systemctl start mariadb\n</panel> <panel>\nVous pouvez vérifier que le service est en cours d'exécution en exécutant la commande suivante : sudo systemctl status mariadb\n</panel> <panel>\nSi vous voulez que MariaDB démarre automatiquement au démarrage de votre système, vous pouvez activer le service en exécutant la commande suivante :\n sudo systemctl enable mariadb\n</panel> <panel>\nEt voilà, MariaDB est maintenant installé sur votre système Debian. Vous pouvez accéder à la console MariaDB en exécutant la commande suivante : sudo mariadb\n \nEt vous pouvez utiliser la commande exit pour quitter la console.\n</panel>"},{"uuid":"eaa75131-5d97-4a9b-a48b-ceeb23d1370d","slug":"create-raid","title":"Créer un système RAID","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 11:28:46","created_at":"2023-02-09 11:28:46","updated_at":"2023-02-09 11:28:46","tags":[],"plain":"<note important>Attention, les disques utilisés seront entièrement effacés durant les opérations.</note> Instructions\nL'objectif est de créer un système RAID avec deux disques durs physiques. J'utilise l'application mdadm\n sudo apt install mdadm\n \nOn prépare les deux disques\n sudo dd if=/dev/zero of=/dev/sda bs=256M count=1\n \n sudo dd if=/dev/zero of=/dev/sdb bs=256M count=1 On créer une partition primaire sur le disque sda\n sudo parted /dev/sda Puis dans parted, sélectionner :\n mklabel gpt\n print\n mkpart primary 0% 100%\n print\n quit On reproduit le même scénario pour sdb On créer le RAID mirror avec mdadm\n sudo mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1 On obtient un disque RAID nommé /dev/md0. On créer la configuration\n sudo -i\n mdadm --detail --scan >> /etc/mdadm/mdadm.conf\n exit On formate le disque /dev/md0 en ext4\n sudo mkfs.ext4 -v -m .1 -b 4096 -E stride=32,stripe-width=64 /dev/md0 Utiliser le disque RAID\nVous pouvez le monter sur votre machine\n sudo mkdir /mnt/md0\n sudo mount /dev/md0 /mnt/md0\n sudo chmod -R 777 /mnt/md0 Si vous perdez votre RAID, vous pouvez le ré-affecter\n mdadm /dev/md0 -a /dev/sdX0\n \nMonter automatiquement votre RAID\n sudo blkid\n sudo nano /etc/fstab\n UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /mnt/md0 ext4 defaults 0 0"},{"uuid":"d1cf75e4-974d-4341-95b1-95385e761257","slug":"les-commandes-a-connaitre","title":"Les commandes Linux à connaître","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-01-16 00:22:59","created_at":"2023-01-16 00:22:59","updated_at":"2023-01-16 00:22:59","tags":[],"plain":"Les commandes Linux les plus importantes à connaître en premier sont :\nls : permet de lister les fichiers et dossiers dans un répertoire.\ncd : permet de se déplacer dans les répertoires.\npwd : permet de connaître le chemin absolu du répertoire courant.\nmkdir : permet de créer un nouveau répertoire.\nrmdir : permet de supprimer un répertoire vide.\ntouch : permet de créer un nouveau fichier.\nrm : permet de supprimer un fichier ou un répertoire.\ncp : permet de copier un fichier ou un répertoire.\nmv : permet de déplacer ou renommer un fichier ou un répertoire.\nsu : permet de se connecter avec un autre compte ou root.\nsudo : permet d'exécuter une commande en tant qu'administrateur.\nman : permet d'afficher la page de manuel d'une commande.\necho : permet d'afficher des informations dans la console.\nexit : permet de quitter la session actuelle.\nreboot : permet de redémarrer le système. Cela vous donnera un bon départ pour naviguer et gérer les fichiers et les répertoires dans un système Linux. Après avoir maîtrisé les commandes de base de Linux, il est utile de continuer à explorer d'autres commandes qui peuvent être utiles pour gérer et administrer votre système. Voici quelques exemples de commandes supplémentaires qui peuvent être utiles :\nps : permet d'afficher les processus en cours d'exécution sur votre système.\nkill : permet de terminer un processus en cours d'exécution.\ntop : permet d'afficher les processus les plus gourmands en ressources en temps réel.\ndf : permet de vérifier l'utilisation de l'espace disque.\ndu : permet de vérifier l'utilisation de l'espace disque pour un répertoire spécifique.\nchmod : permet de modifier les autorisations d'un fichier ou d'un répertoire.\nchown : permet de changer le propriétaire d'un fichier ou d'un répertoire.\nfind : permet de rechercher des fichiers ou des répertoires en fonction de critères spécifiques.\ncat : permet d'afficher le contenu d'un fichier.\nnano : permet d'éditer le contenu d'un fichier.\ntail : permet d'afficher les dernières d'un fichier.\nhead : permet d'afficher les premières d'un fichier.\nsed : permet de modifier des fichiers de texte de manière automatisée.\nawk : permet de traiter les données de manière avancée, comme la création de statistiques à partir de données enregistrées. Il existe énormément de commandes Linux, chacun a des utilisations spécifiques."},{"uuid":"7c9dd319-44c3-4784-b587-9def71d1e4b5","slug":"cote-informatique","title":"Coté informatique","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-01-01 15:30:17","created_at":"2021-01-01 15:30:17","updated_at":"2021-01-01 15:30:17","tags":[],"plain":"Voici le principe de fonctionnement que je voulais faire initialement :\n1. lecteur des informations sur le port série (coté local)\n1. envoie sur serveur de base de données SGBD (coté serveur) On y reviendra plus tard. Pour l'instant j'installe tout sur le raspberyPi. Installer PHP\nLa lecture sur des informations va s'effectuer en PHP. C'est le plus simple pour moi parce que c'est très proche du langage C.\nDans un premier temps il faut installer linterpréteur PHP : sudo apt-get install php On saperçoit que l'installation du package PHP intègre d'autres composants. On retrouve Apache2 et des fonctions associées à SQLite3, LDAP et JSON. Plusieurs fichiers de configuration sont créés :\nfichiers présents dans Deux binaires sont accessibles :\nInstaller le SGBD PostgreSQL\nJ'ai installé le SGBD PostgreSQL ainsi que le bibliothèque de connexion PHP. Une fois installé, les programmes n'occuperont que 30 Mo. Je n'ai pas l'habitude d'avoir une installation prenant aussi peu de place. sudo apt-get install php-pgsql postgresql\n \nRésultat : Paramétrer le SGBD PostgreSQL\nVoilà comment je fais pour me connecter au moteur de SGBD PostgreSQL. J'effectue ces manipulations depuis le compte . 1. Je me connecte avec le compte du SGBD qui se nomme :\n sudo su postgres 2. Je me connecte au SGBD :\n psql\n \nOh joie ! L'invite apparaît. Créer la base de données\nJe vais utiliser les informations suivantes :\nbase de données : \nutilisateur de la base de données (rôle) : Il faut créer l'utilisateur de la base de données. De manière schématique, l'utilisateur de connexion à la base de données s'appelle un . Création du rôle \n CREATE ROLE rampere PASSWORD 'This1sN0tAnPwd' LOGIN VALID UNTIL 'infinity'; Il faut créer la base de données qui va accueillir les données. J'ai choisi d'utiliser l'encodage dans la base de données, et l'utilisation des règles de la langue Française (). CREATE DATABASE \"ampere\"\n WITH OWNER \"rampere\"\n ENCODING 'UTF8'\n LCCOLLATE = 'frFR.UTF-8'\n LCCTYPE = 'frFR.UTF-8'; Il faut autoriser les connexions. Pour cela, le fichier de configuration des clients authentifié doit être adapté. Lors de l'installation du SGBD, il a été créé dans Il faut l'adapter suivant le schéma suivant : host database user address auth-method\n On s'identifie avec l'utilisateur :\n pi: $ sudo su - postgres\n \nOn ajoute dans le fichier :\n local ampere rampere trust On sort de l'environnement :\n postgres: $ exit\n \nUne fois le paramétrage terminé, il faut redémarrer le SGBD :\n pi: $ sudo service postgresql reload\n \nOn teste la connexion :\n pi: $ psql -U rampere -W -d ampere\n Principe de fonctionnement\nUn programme doit sans cesse boucler pour effectuer cette action :\n 1. lire une trame sur /dev/ttyAMA0 readTrame\n 2. ajouter un timestamp dans la trame \n 3. mémoriser la trame brute avec timestamp dans une mémoire tampon - saveTrameTampon saveTrameBdd saveTrameCsv Insérer une fichier CSV dans une table MySQL Transformer une donnée timestamp unix en format date et heure\n SELECT FROMUNIXTIME() FROM Bibliothèque PHP\nLe programme sera écrit en PHP. On va au maximum utiliser des méthodes afin d'obtenir des informations sur la consommation :\nquelle est la consommation Intensité instantannée ? - getIINST\nquelle est la valeur du compteur HC ? - getHCHC\nquelle est la valeur du compteur HP ? - getHCHP\nquelle est la période tarifaire en cours ? - getPTEC\nquelle est la puissance apparente ? - getPAPP et obtenir des informations sur l'abonnement :\nquelle est le N° didentification du compteur ? - getADCO\nquelle est l'Option tarifaire ? - getOPTARIF\nquelle est l'Intensité souscrite ? - getISOUSC Je pense également à des méthodes d'analyse :\nquelle est la consommation HC/HP de la période tarifaire actuelle ? - getConsoPeriodeNow(tarif)\nquelle est la consommation HC/HP de la période précédente ? - getConsoPeriodePrev(tarif)\nquelle est la consommation HC/HP des 24 dernières heures ? - getConsoPeriode24(tarif)\nquelle est la consommation HC/HP d'une période de 7 jours X ? - getConsoPeriode7jours(tarif, dateHeureDebut)\nquelle est la consommation HC/HP de la minute X ? - getConsoMinute(tarif, dateHeure)\nquelle est la consommation HC/HP de l'heure X ? - getConsoHeure(tarif, dateHeure)\nquelle est la consommation HC/HP du jour X ? - getConsoJour(tarif, dateHeure)\nquelle est la consommation HC/HP de la semaine X ? - getConsoSemaine(tarif, date)\nquelle est la consommation HC/HP du mois X ? - getConsoMois(tarif, date)\nquelle est la consommation HC/HP de l'année X ? - getConsoAnnee(tarif, date) Et ensuite on pourra partir sur des statistiques :\nmoyenne\ntendance\n... Projets\nhttp:vesta.homelinux.free.fr/wiki/demodulateurteleinformationedf.html http:lhuet.github.io/blog/2014/01/montage-teleinfo.html Projet de http:www.magdiblog.fr/gpio/teleinfo-edf-suivi-conso-de-votre-compteur-electrique/ Le relevé d'info compatible http:*hallard.me/teleinfo-emoncms/"}]