Si l'on considère les permissions pour le seul usage de chmod en ligne de commande, en effet l'on est en droit de s'interroger sur l'intérêt de la notation numérique. Cependant, je ne peux que confirmer son utilité pour des scripts:
- c'est toujours plus clair d'utiliser une commande install avec les options qui vont bien, plutôt qu'une séquence cp/chown/chmod
- la conversion de et vers un umask s'en trouve grandement simplifiée aussi
Et je suppose que les cas d'usage sont bien plus nombreux.
Petit apparté sur le cas d'ansible: sauf erreur, pour les modules relatifs fichiers, les permissions sont numériques, mais rien n'empèche une évolution future vers le support de notation 'rwxr-x---' (ou la création d'un filtre maison), sinon peut-être que beaucoup considèrent comme moi que l'exercice intellectuel de conversion devient suffisamment vite un automatisme pour ne pas en ressentir le besoin.
Posté par guitou .
En réponse au message sync dans linux.
Évalué à 5.
Dernière modification le 31 mars 2020 à 15:17.
Plus prosaïquement, c'est plutôt rsync, je crois, sur lequel tu devrais te renseigner.
Tu devrais pouvoir trouver des tas de tutoriels et autres exemples sur le net, qui t'aideront sans doute mieux à comprendre que toute explication de ma part.
sync: force écriture sur disque des fichiers modifiés en mémoire
rsync: copie locale ou distante de fichiers
Cela pourrait répondre à tes besoins…
Et si tu prévois d'héberger ta partie "cdn" sur le même serveur, il présenterait alors l'avantage de gérer le tout avec un seul et même service.
Pour le taux d'utilisation des partitions sous Linux, tu as la commande df (et l'option -h notamment). Mais dans ton cas, c'est plutôt la RAM qui est en cause (commande free pour connaître l'utilisation de la mémoire).
A défaut de rajouter de la RAM, tu peux utiliser une partition ou un fichier d'échange (swap).
En mode grinçant, je tendrais à dire que je ne comprends pas ce que tu ne comprends pas :p
Plus sérieusement, je pense qu'il te faudrait intégrer le fonctionnement des méthodes open et read…
Le principe est assez simple en fait: la fonction open te donne accès au contenu par le biais d'un curseur (un pointeur indiquant une position dans le fichier, positionné par défaut au début du contenu). La fonction read te renvoit un certains nombre de caractères lus (max. 100 dans ton cas) et déplace le curseur d'autant, éwala!
Désolé, je me doute bien que cela ne correspond pas vraiment aux attentes, mais j'ai pas pu me retenir… de fait elle est facile à utiliser !
Par contre, en effet, s'agissant de l'installer, force m'est de reconnaître que c'est une toute autre affaire ^
Au delà du pied de nez et de la polémique que je n'espère pas provoquer, c'est une option à garder en tête, même s'il vaut mieux faire ses premières armes sur une distro plus abordable.
Bonjour à tous, et joyeux (lendemain de) Noël accessoirement.
Me sentant d'humeur à faire mon ch… aujourd'hui je vais apporter mon grain de sel à l'eau de ce moulin (gné ?).
Un fichier, c'est un inode et une entrée dans la table d'allocation pour en préciser le chemin (entre autres…).
Un hardlink, c'est une entrée supplémentaire dans la table pointant vers un inode (bref, un chemin alternatif vers le même inode).
Un softlink est un fichier spécial (et donc aussi une entrée dans la table d'allocation) indiquant une redirection vers un autre fichier (et plutôt même, de fait, un chemin de fichier).
Les implications:
Les hardlinks sont limités à un même filesystem, et peu importe d'indiquer un chemin absolu ou relatif, au final c'est l'inode qui fait autorité.
Les softlinks peuvent pointer vers un autre filesystem, par contre il incombe à l'utilisateur de s'assurer du maintien du fichier ciblé.
Petit exercice pratique pour illustrer le propos:
mkdir testdir
cd testdir
touch fichier
ln fichier lienhard
ln -s fichier liensoft
# joujou avec ls et options -l et -i notamment pour constater que fichier et lienhard partagent le même inode
rm fichier
# re-joujou avec ls pour constater que notre symlink est cassé et que le fichier, bien qu'absent sous ce nom, est toujours accessible via le hardlink créé auparavant
The détail qui tue et que mon pauvre petit neurone souvent poussif a mis fort longtemps à intégrer (d'où mon inclination à le mettre ici en exergue): dans le cas d'un lien hard, si l'on indique un chemin relatif, la référence est le répertoire courant alors que pour un lien soft, c'est l'emplacement du lien. Illustration:
# on est toujours dans testdir
touch fichier # si on ne recrée pas le fichier précédemment effacé, l'exemple n'est plus valable
mkdir subdir
ln fichier subdir/poettering # petite touche d'humour glacé et sophisiqué dont le sens m'échappe tout autant qu'à vous, mais toujours est-il que ça marche
ln -s fichier subdir/autreliensoft # oops, broken link
ln -s ../fichier subdir/autreliensoft # cette fois c'est la bonne (à moins qu'il ne faille user aussi de l'option -f puisque le lien existe déjà, tout cassé soit-il, j'avoue ne pas faire le test en direct moi-même... mea culpa, mea gross culpa !)
Docker fonctionne en tant que service. Par contre le lancement d'une image docker (voire d'une commande spécifique dans une image docker) est l'affaire d'une commande (typiquement 'docker run …' ou 'docker exec …').
Ta subsitution à base de % est très bien, tu pourrais toutefois t'épargner la boucle for, avec une affectation de variable directement dans ta commande:
dst={}&& cwebp -q 82 -mt {} -o "${dst%.*}.webp"
Voire, tu pourrais aussi remplacer tes -print0 et xargs par un -exec.
Pour memcached, c'est indépendant du code PHP:
PHP est un langage interprété et le lancement d'un script génère la transcription du code PHP en un code "intermédiaire" qui est éxécuté.
Ce sont ces fichiers intermédiaires que memcached met en cache, permettant ainsi une éxécution en moyenne plus rapide.
Donc sur un machine de dev, où le code changera très souvent, c'est sans intérêt (voire pénalisant selon la configuration du cache), mais sur un serveur de prod, c'est très utile en effet.
Pour redis, c'est plutôt à utiliser en remplacement/complément d'une DB classique: remplacement si tes seuls besoins peuvent se réduire à des couples clé/valeur, mais seulement en complément sinon (autrement dit, dès que tu as des relations entre des tables, autant bénéficier des fonctionnalités SQL).
Typiquement, tu peux gérer tes sessions avec une base redis, pour un accès plus rapide, une distribution plus transparente, et le reste de tes données avec un SGBDR classique mariadb+galera par exemple).
Au risque de dire une sottise, je crois que cela fonctionne comme pour le fork, les variables déclarées avant le fork()/pthread_create() sont connues de tous.
Bonjour.
Si ton bootloader est Grub, tu peux editer la commande de demarrage pour ajouter l'option single (pas sur que ca marche avec systemd, auquel cas tu peux aussi essayer de mettre init=/bin/bash). Une fois en ligne de commande, tu devrais pouvoir monter les partitions necessaires puis lancer ton "apt-get install xserver-xorg".
Sinon, utilise un SystemRescueCD ou autre pour ensuite faire un chroot dans ton systeme et installer le paquet.
Dans les 2 cas, tu devrais ensuite pouvoir redemarrer normalement.
Au risque de dire une grosse couennerie, je crois que tu peux resoudre ton probleme en utilisant la variable d'environnement IFS (Input Field Separator, "\n" par defaut). Ce qui donnerait qqch de cet ordre:
IFS=" " grep -C 10 <motif> <fichier>
Probable que ca ne marche pas "out of the box" (p-e plutot IFS="\s" voire "\s+" si c'est supporte), mais a tester.
Je suis un âne, merci de faire comme si mon précédent message n'existait pas.
Faisant naivement usage du bouton code block de l'éditeur, je n'ai pas prété attention à sa non conformité avec la syntaxe mentionnée dans l'aide mémoire. Bref, au temps pour moi, autant pour moi, mea culpa, mea groß culpa, etc…
J'étais sur le point d'ouvrir un nouveau bug, mais comme c'est dans la même veine, finalement je complète le présent post.
Si j'ai fait preuve d'un excès d'asssurance avec un tel postulat, d'avance: mea culpa, mea groß culpa!
Le dièse étant fréquemment utilisé pour marquer le début d'une ligne de commentaire dans de nombreux langages, il n'est pas rare d'en voir ici ou là dans un "code block". Mais cela n'est pas sans incidence sur l'interpréteur markdown, qui identifie alors un titre de section, et pas moyen de gruger avec l'html entity puisque le code block est traduit en html par une balise "pre".
Y'aurait pas moyen de corriger ça pour s'éviter un sommaire bidon?..
Je sais pas trop si markdown fonctionne out-of-the-box ou s'il est hautement configurable, c'est la première fois que je fais joujou avec, mais dans le second cas les pistes de solutions que je vois à priori seraient:
-rendre stricte l'interprétation pour les titres de section (i.e. rendre obligatoire le dièse final, conformément aux indications de l'aide mémoire) si l'option est possible, ce qui supprimerait toute confusion, mais risque toutefois de poser des problèmes de sommaire avec les articles passés (mais aussi probablement en corriger d'autres :p).
-empêcher toute interprétation markdown sur le contenu d'un code block (option sans doute moins susceptible d'altérer des précédents contenus)
Posté par guitou .
En réponse à l’entrée du suivi Traductions LWN.
Évalué à 2 (+0/-0).
Hello, hello
N'allez pas croire que j'aie lâché l'affaire aussi promptement.
J'ai pu comprendre des précédentes réponses que le plus simple serait encore de se lancer dans le grand bain sans les brassières, mais je vais encore demander un petit conseil avant de ce faire: croyez vous qu'il soit utile de proposer des traductions que j'avais faites qq mois auparavant et qui trainaillent dans un coin de mon dd?
# La notation numérique, c'est nul ?..
Posté par guitou . En réponse au lien Chmod Calculator. Évalué à 2.
… mais pratiquement indispensable !
Si l'on considère les permissions pour le seul usage de chmod en ligne de commande, en effet l'on est en droit de s'interroger sur l'intérêt de la notation numérique. Cependant, je ne peux que confirmer son utilité pour des scripts:
- c'est toujours plus clair d'utiliser une commande install avec les options qui vont bien, plutôt qu'une séquence cp/chown/chmod
- la conversion de et vers un umask s'en trouve grandement simplifiée aussi
Et je suppose que les cas d'usage sont bien plus nombreux.
Petit apparté sur le cas d'ansible: sauf erreur, pour les modules relatifs fichiers, les permissions sont numériques, mais rien n'empèche une évolution future vers le support de notation 'rwxr-x---' (ou la création d'un filtre maison), sinon peut-être que beaucoup considèrent comme moi que l'exercice intellectuel de conversion devient suffisamment vite un automatisme pour ne pas en ressentir le besoin.
++
Gi)
[^] # Re: Ça me rappelle une blague
Posté par guitou . En réponse au journal Le merge de toute une vie. Évalué à 2.
Variante de xkcd sur les standards
# Aucun lien, fils unique
Posté par guitou . En réponse au message sync dans linux. Évalué à 5. Dernière modification le 31 mars 2020 à 15:17.
Plus prosaïquement, c'est plutôt rsync, je crois, sur lequel tu devrais te renseigner.
Tu devrais pouvoir trouver des tas de tutoriels et autres exemples sur le net, qui t'aideront sans doute mieux à comprendre que toute explication de ma part.
sync: force écriture sur disque des fichiers modifiés en mémoire
rsync: copie locale ou distante de fichiers
++
Gi)
[^] # Re: nginx aussi
Posté par guitou . En réponse au message Reverse proxy dynamique. Évalué à 1.
Tu devrais pouvoir utiliser des directives location:
location ~ maregexpXXX {
return 301 http://cdn.xxx;
}
location ~ maregexpYYY {
return 301 http://cdn.yyy;
}
location / {
proxy_pass http://moules.info;
}
++
Gi)
# nginx aussi
Posté par guitou . En réponse au message Reverse proxy dynamique. Évalué à 1.
Cela pourrait répondre à tes besoins…
Et si tu prévois d'héberger ta partie "cdn" sur le même serveur, il présenterait alors l'avantage de gérer le tout avec un seul et même service.
++
Gi)
# Base Intel mais...
Posté par guitou . En réponse au message Un ordinateur portable . Évalué à 1.
Perso, je me suis fait qq mois auparavant une conf aux petits oignons sur base de Clevo, j'en suis plutôt content, même si c'est pas de l'AMD.
[^] # Re: Mises à jour
Posté par guitou . En réponse au message Aide logiciels. Évalué à 1.
Hello.
Pour le taux d'utilisation des partitions sous Linux, tu as la commande df (et l'option -h notamment). Mais dans ton cas, c'est plutôt la RAM qui est en cause (commande free pour connaître l'utilisation de la mémoire).
A défaut de rajouter de la RAM, tu peux utiliser une partition ou un fichier d'échange (swap).
++
Gi)
# open/read
Posté par guitou . En réponse au message Question boucle. Évalué à 4.
En mode grinçant, je tendrais à dire que je ne comprends pas ce que tu ne comprends pas :p
Plus sérieusement, je pense qu'il te faudrait intégrer le fonctionnement des méthodes open et read…
Le principe est assez simple en fait: la fonction open te donne accès au contenu par le biais d'un curseur (un pointeur indiquant une position dans le fichier, positionné par défaut au début du contenu). La fonction read te renvoit un certains nombre de caractères lus (max. 100 dans ton cas) et déplace le curseur d'autant, éwala!
++
Gi)
# Gentoo
Posté par guitou . En réponse au message Je cherche une distribution linux rolling release pas trop difficile à utiliser. Évalué à 0.
Désolé, je me doute bien que cela ne correspond pas vraiment aux attentes, mais j'ai pas pu me retenir… de fait elle est facile à utiliser !
Par contre, en effet, s'agissant de l'installer, force m'est de reconnaître que c'est une toute autre affaire ^
Au delà du pied de nez et de la polémique que je n'espère pas provoquer, c'est une option à garder en tête, même s'il vaut mieux faire ses premières armes sur une distro plus abordable.
++
Gi)
# liens symboliques vs hard
Posté par guitou . En réponse au message création liens symboliques impossible. Évalué à 2. Dernière modification le 27 décembre 2019 à 14:45.
Bonjour à tous, et joyeux (lendemain de) Noël accessoirement.
Me sentant d'humeur à faire mon ch… aujourd'hui je vais apporter mon grain de sel à l'eau de ce moulin (gné ?).
Un fichier, c'est un inode et une entrée dans la table d'allocation pour en préciser le chemin (entre autres…).
Un hardlink, c'est une entrée supplémentaire dans la table pointant vers un inode (bref, un chemin alternatif vers le même inode).
Un softlink est un fichier spécial (et donc aussi une entrée dans la table d'allocation) indiquant une redirection vers un autre fichier (et plutôt même, de fait, un chemin de fichier).
Les implications:
Les hardlinks sont limités à un même filesystem, et peu importe d'indiquer un chemin absolu ou relatif, au final c'est l'inode qui fait autorité.
Les softlinks peuvent pointer vers un autre filesystem, par contre il incombe à l'utilisateur de s'assurer du maintien du fichier ciblé.
Petit exercice pratique pour illustrer le propos:
The détail qui tue et que mon pauvre petit neurone souvent poussif a mis fort longtemps à intégrer (d'où mon inclination à le mettre ici en exergue): dans le cas d'un lien hard, si l'on indique un chemin relatif, la référence est le répertoire courant alors que pour un lien soft, c'est l'emplacement du lien. Illustration:
Amicalement,
++
Gi)
[^] # Re: Pfff ces informaticiens!
Posté par guitou . En réponse au journal Blagues Friday. Évalué à 1.
Bah, je sais que le sujet est litigieux, mais, à considérer que 1 est divisible par 1 et par lui-même…
# Pfff ces informaticiens!
Posté par guitou . En réponse au journal Blagues Friday. Évalué à 4.
Un mathématicien, un physicien et un informaticien s'interrogent: tous les nombres impairs sont ils premiers?
Le mathématicien: - 1 vrai, 3 vrai, 5 vrai, 7 vrai, 9 faux, c'est donc absolument faux.
Le physicien: - 1 vrai, 3 vrai, 5 vrai, 7 vrai, 9 faux, 11 vrai, 13 vrai, 15 faux, 17 vrai, 19 vrai, c'est donc plutôt globalement vrai.
L'informaticien: - 1 vrai, 3 vrai, 5 vrai, 7 vrai, 9 faux, 9 faux, 9 faux, 9 faux, 9 faux…
[^] # Re: docker
Posté par guitou . En réponse au message Une machine virtuelle légère avec python3.7. Évalué à 3. Dernière modification le 12 novembre 2019 à 14:28.
Bjr.
Docker fonctionne en tant que service. Par contre le lancement d'une image docker (voire d'une commande spécifique dans une image docker) est l'affaire d'une commande (typiquement 'docker run …' ou 'docker exec …').
++
Gi)
# en bash
Posté par guitou . En réponse au message fichier de sortie sans l'extension du fichier source. Évalué à 2. Dernière modification le 12 novembre 2019 à 19:17.
Bjr.
Ta subsitution à base de % est très bien, tu pourrais toutefois t'épargner la boucle for, avec une affectation de variable directement dans ta commande:
Voire, tu pourrais aussi remplacer tes -print0 et xargs par un -exec.
++
Gi)
# sort
Posté par guitou . En réponse au message Outil en ligne de commande pour comparer des versions de logiciels. Évalué à 1.
La commande sort dispose d'une option -V, --version-sort à cette fin.
Ayant eu à me poser la même question, j'etais tombé sur ce lien: https://stackoverflow.com/questions/16989598/bash-comparing-version-numbers/24067243#24067243
Avec la fonction qui va plutôt bien:
function version_gt() { test "@" | sort -V | head -n 1)" != "$1"; }
++
Gi)
# Re: De l'intérêt...
Posté par guitou . En réponse au message De l'interêt de Memcached - Redis. Évalué à 3.
Hello.
Pour memcached, c'est indépendant du code PHP:
PHP est un langage interprété et le lancement d'un script génère la transcription du code PHP en un code "intermédiaire" qui est éxécuté.
Ce sont ces fichiers intermédiaires que memcached met en cache, permettant ainsi une éxécution en moyenne plus rapide.
Donc sur un machine de dev, où le code changera très souvent, c'est sans intérêt (voire pénalisant selon la configuration du cache), mais sur un serveur de prod, c'est très utile en effet.
Pour redis, c'est plutôt à utiliser en remplacement/complément d'une DB classique: remplacement si tes seuls besoins peuvent se réduire à des couples clé/valeur, mais seulement en complément sinon (autrement dit, dès que tu as des relations entre des tables, autant bénéficier des fonctionnalités SQL).
Typiquement, tu peux gérer tes sessions avec une base redis, pour un accès plus rapide, une distribution plus transparente, et le reste de tes données avec un SGBDR classique mariadb+galera par exemple).
++
Gi)
# Pour ce que j'en sais...
Posté par guitou . En réponse au message probleme avec le fonctionnement d'un thread. Évalué à -2.
Au risque de dire une sottise, je crois que cela fonctionne comme pour le fork, les variables déclarées avant le fork()/pthread_create() sont connues de tous.
++
Gi)
# voire un set -x
Posté par guitou . En réponse au message comportement étrange de curl dans un script.. Évalué à 3.
…dans ton script pour t'assurer de la commande curl que tu generes
# une possibilite
Posté par guitou . En réponse au message j'ai supprimé par erreur xserver-xorg (apt-get remove xserver-xorg). Évalué à 1.
Bonjour.
Si ton bootloader est Grub, tu peux editer la commande de demarrage pour ajouter l'option single (pas sur que ca marche avec systemd, auquel cas tu peux aussi essayer de mettre init=/bin/bash). Une fois en ligne de commande, tu devrais pouvoir monter les partitions necessaires puis lancer ton "apt-get install xserver-xorg".
Sinon, utilise un SystemRescueCD ou autre pour ensuite faire un chroot dans ton systeme et installer le paquet.
Dans les 2 cas, tu devrais ensuite pouvoir redemarrer normalement.
++
Gi)
# IFS
Posté par guitou . En réponse au message Grep sur un mot. Évalué à 1.
Bonjour.
Au risque de dire une grosse couennerie, je crois que tu peux resoudre ton probleme en utilisant la variable d'environnement IFS (Input Field Separator, "\n" par defaut). Ce qui donnerait qqch de cet ordre:
Probable que ca ne marche pas "out of the box" (p-e plutot IFS="\s" voire "\s+" si c'est supporte), mais a tester.
++
Gi)
# cherche cote "upstream"
Posté par guitou . En réponse au message nginx:recv() failed (104: Connection reset by peer) while reading response header from upstream. Évalué à 1.
tu dois avoir un pb de timeout, voire de plantage, du cote de ton serveur asp
[^] # Re: Complement
Posté par guitou . En réponse à l’entrée du suivi Le sommaire automatique peut contenir des liens externes. Évalué à 1 (+0/-0).
Je suis un âne, merci de faire comme si mon précédent message n'existait pas.
Faisant naivement usage du bouton code block de l'éditeur, je n'ai pas prété attention à sa non conformité avec la syntaxe mentionnée dans l'aide mémoire. Bref, au temps pour moi, autant pour moi, mea culpa, mea groß culpa, etc…
++
Gi)
# Complement
Posté par guitou . En réponse à l’entrée du suivi Le sommaire automatique peut contenir des liens externes. Évalué à 1 (+0/-0).
J'étais sur le point d'ouvrir un nouveau bug, mais comme c'est dans la même veine, finalement je complète le présent post.
Si j'ai fait preuve d'un excès d'asssurance avec un tel postulat, d'avance: mea culpa, mea groß culpa!
Le dièse étant fréquemment utilisé pour marquer le début d'une ligne de commentaire dans de nombreux langages, il n'est pas rare d'en voir ici ou là dans un "code block". Mais cela n'est pas sans incidence sur l'interpréteur markdown, qui identifie alors un titre de section, et pas moyen de gruger avec l'html entity puisque le code block est traduit en html par une balise "pre".
Y'aurait pas moyen de corriger ça pour s'éviter un sommaire bidon?..
Je sais pas trop si markdown fonctionne out-of-the-box ou s'il est hautement configurable, c'est la première fois que je fais joujou avec, mais dans le second cas les pistes de solutions que je vois à priori seraient:
-rendre stricte l'interprétation pour les titres de section (i.e. rendre obligatoire le dièse final, conformément aux indications de l'aide mémoire) si l'option est possible, ce qui supprimerait toute confusion, mais risque toutefois de poser des problèmes de sommaire avec les articles passés (mais aussi probablement en corriger d'autres :p).
-empêcher toute interprétation markdown sur le contenu d'un code block (option sans doute moins susceptible d'altérer des précédents contenus)
Voili voilour, je crois que j'ai fait le tour.
++
Gi)
# suite
Posté par guitou . En réponse à l’entrée du suivi Traductions LWN. Évalué à 2 (+0/-0).
Hello, hello
N'allez pas croire que j'aie lâché l'affaire aussi promptement.
J'ai pu comprendre des précédentes réponses que le plus simple serait encore de se lancer dans le grand bain sans les brassières, mais je vais encore demander un petit conseil avant de ce faire: croyez vous qu'il soit utile de proposer des traductions que j'avais faites qq mois auparavant et qui trainaillent dans un coin de mon dd?
++
Gi)
[^] # Re: T'as raté ça...
Posté par guitou . En réponse au message Recherche Netbook pas cher. Évalué à 0.
Hello.
Ce post légèrement antérieur
Pour le coup, c'est pas cher
++
Gi)