wismerhill a écrit 2602 commentaires

  • # chemin relatif

    Posté par  . En réponse au message problème "include". Évalué à 2.

    Ton include fait un chemin relatif, donc il cherche le répertoire app dans le répertoire courant, qui n'est probablement pas celui que tu crois (plutôt le répertoire de base du serveur web).
    Il faut soit faire un chemin absolu (commençant par un /), soit un chemin relatif au répertoire du fichier courant en utilisant __DIR__

  • [^] # Re: shell touch

    Posté par  . En réponse au journal La sortie de `ls` vient de changer. Évalué à 2. Dernière modification le 20 février 2016 à 19:34.

    Le : n'est même pas nécessaire, un simple >fichier_vide aura pour effet de créer (ou vider) le fichier donné.

    Mais l'inconvénient par rapport à touch, c'est que justement cette forme videra un fichier existant sans avertissement, là ou touch se contentera de changer sa date de modification.

    Edit: oups, pas vu que ça avait déjà été répondu par d'autres…

  • # youtube-dl

    Posté par  . En réponse au journal La minute de Monsieur Cyclopède. Évalué à 5.

    youtube-dl se débrouille bien pour récupérer les vidéos.

  • [^] # Re: c'est deja pas mal

    Posté par  . En réponse au message problème script projet. Évalué à 3.

    Ce serait plus robuste de faire un "file --mime-type" suivi d'un "grep -v image/".
    Je te laisse trouver un moyen d'améliorer ça pour ne pas exclure des fichiers qui se trouvent dans un répertoire appelé image sans pour autant être des images.

  • [^] # Re: Reptyr

    Posté par  . En réponse au message Réattacher un bash. Évalué à 3.

    Sauf que la page de manuel française n'est pas à jour.
    Par exemple, dans la manpage anglaise (et le -h de la commande), on voit qu'on peut l'appeler dans cette variante:

    reptyr -l|-L [COMMAND [ARGS]]

    Mais dans la version française il n'est documenté que

    reptyr -l

    Donc mieux vaut se référer à la version anglaise.

  • [^] # Re: Compatibilité des drivers

    Posté par  . En réponse au journal A vos risque et périls . Évalué à 4.

    Si tu t'étais limité à ta première phrase, j'aurais noté ton commentaire comme pertinent.
    Mais la deuxième phrase méprisante annule l'effet positif de la première.

  • # Sauvegarde tes données!

    Posté par  . En réponse au message Redimensionnement de partitions. Évalué à 2.

    Quand on trifouille dans les partitions, surtout si on déplace une partition (avec gparted ou autre), la première chose à faire c'est une sauvegarde de ses données importantes.

    Pour toutes les données dont tu n'a pas une sauvegarde, il faut te poser la question « est-ce que je peux accepter de perdre ces données ».

    J'ai déjà réussi à sauver le contenu d'une partition dont le déplacement par gparted avait été interrompu par une coupure de courant. Mais ça a pris plusieurs jours de travail et l'achat d'un disque dur externe deux fois plus gros que celui d'origine.

  • # nombre de connexions

    Posté par  . En réponse au message Tomcat : Postgres/JDBC Datasource fait planter Tomcat.. Évalué à 3.

    Dans la configuration de ton datasource, tu accepte jusqu'à 500 connexions, est-ce que PostgreSQL est configuré pour en accepter également autant que ça? (par défaut, c'est 100)

    Et puis, une webapp pour laquelle tu prévois d'avoir besoin de jusqu'à 500 connexions simultanées à la DB, je n'appelle pas ça une "petite" appli.
    Tu as vraiment autant de monde que ça qui visite ton appli?

  • [^] # Re: à mon tour ...

    Posté par  . En réponse au journal Testez votre intuition. Évalué à 3.

    Si, il y a bien deux inconnues (le poids de la bouteille et le poids du bouchon) et deux équations (la somme des deux et la différence des deux), ensuite tu élimine une des inconnues pour ne conserver que celle qui t'intéresse.

  • [^] # Re: Une autre ! Une autre ! Bon, d'accord.

    Posté par  . En réponse au journal Testez votre intuition. Évalué à 1. Dernière modification le 06 août 2015 à 10:18.

    Vu sur XKCD what if
    Relativistic baseball
    Diamond

  • [^] # Re: quelques remarques

    Posté par  . En réponse au message ajouter une entrée fstab en bash. Évalué à 2.

    Encore une fois, un script qui veut modifier /etc/fstab ne peut fonctionner qu'en root, donc récupérer le nom de l'utilisateur avec whoami est inutile, ce sera forcément root. (à moins que tes postes aient des configurations spéciales?)

    Concernant le hostname, bash défini déjà lui-même une variable HOSTNAME (à de très rares exceptions près, les variables pré-définies sont en majuscule).

    Pour les options de montage, les file_mode et dir_mode que tu met sont une mauvaise idée, ça veut dire que tout le monde peut écrire/supprimer n'importe quoi dans le montage, et que tous les fichiers seront exécutables. Peut-être est-ce vraiment ce que tu veux, mais ne perd pas de vue que ça veut dire que tous les utilisateurs locaux font ce qu'ils veulent.
    Il serait préférable d'utiliser les valeurs file_mode=0664,dir_mode=0775 combinées avec l'options gid pour que seuls les utilisateurs du groupe donné aient accès en écriture.
    (et tu as mis deux fois l'options users)

    C'était également une meilleure idée de mettre le fichier credentials dans /etc (sans le point au début, pas besoin qu'il soit caché), car maintenant il va se retrouver dans le home de root, ou pire, si l'utilisateur qui exécute le script ne le fait pas correctement (par exemple avec "su" plutôt que "su -"), ça peut se retrouver dans le home de l'utilisateur normal.
    (par contre, le "chmod 600" est bien ce qu'on veut pour ce fichier)

    Toujours pas envie d'informer l'utilisateur qui exécute le script si ça s'est passé correctement?

    Pour la coloration syntaxique, c'est indiqué dans l'aide-mémoire de la page d'édition (et il faut laisser une ligne avant et après, sinon ça ne fait rien du tout)

  • # quelques remarques

    Posté par  . En réponse au message ajouter une entrée fstab en bash. Évalué à 3. Dernière modification le 31 juillet 2015 à 13:50.

    Le

    chown -R `whoami`  $dir_tgt

    est inutile, c'est toi qui a créé ce répertoire un peu avant, donc il t'appartient déjà.
    De toute façon, si le script n'est pas exécuté par root il n'aura pas le droit de changer le propriétaire (et faire le reste non plus d'ailleurs).
    Si le but est de le remettre à root au cas où il existerait déjà avant, met explicitement root à la commande chown.
    Au passage, la syntaxe en backtick est dépréciée, il est préférable d'utiliser la version $() qui a l'avantage d'être imbriquable.
    Mais de toute façon, le mount peut échouer pour d'autres raisons, et tu pourrais aussi bien faire ce chown tout de suite après la tentative de création du répertoire.

    La commande interne read a une option -p pour afficher un prompt, ça économise le printf avant.

    Tu devrais toujours utiliser des double quotes autours de tes variables ($dir_tgt en l'occurrence), ce n'est pas un problème dans ton exemple car la variable ne contient rien de problématique, mais si tu modifie ultérieurement la valeur ça pourrait le de venir.0A;
    Ce n'est pas une bonne idée d'utiliser un fichier temporaire avec un nom fixe (surtout dans un répertoire commun et avec un nom aussi générique).
    Mieux vaut utiliser la commande mktemp pour générer un fichier temporaire avec un nom aléatoire, et ne pas oublier de le supprimer à la fin.
    Au passage, utiliser la redirection de type >> signifie que tu ajoute à la fin du fichier, ça ne me semble pas le but ici. (ou alors voudrais-tu que le log s'accumule à chaque exécution du script?)

    MOUNTLOG=$(mktemp mount.XXXXXX)
    mount -a > "$MOUNTLOG"
    #..suite
    rm -f "$MOUNTLOG"

    Plutôt que de tester le code de sortie de la commande mount, tu peux la mettre directement dans le if:

    if ! mount -a > "$MOUNTLOG" ;then

    (d'ailleurs il manquait un espace entre le 0 et le ])

    Tu utilise la commande mail, es-tu sur qu'il y aura toujours un serveur mail correctement configuré sur tous les serveurs où le script sera utilisé? (ou au minimum une implémentation locale de sendmail, comme dma ou ssmtp)
    Et puis, ce serait quand même bien d'informer la personne qui exécute le script si ça s'est passé correctement ou non.

    Pour finir, c'est une très mauvaise idée d'écrire un script complexe ex nihilo et de l'exécuter directement sur des machines de production. Mieux vaut le tester d'abord sur une machine qu'il est acceptable de casser un peu.
    Prépare-toi à devoir intervenir en urgence sur certaines machines qui ne fonctionneraient plus.

  • [^] # Re: Francisation

    Posté par  . En réponse à la dépêche Sortie du noyau Linux 4.1. Évalué à 5.

    les mots français commencent à disparaître au profit de l'anglais parce que c'est plus cool

    :-)

  • # uniquement avec sed

    Posté par  . En réponse au message retirer la premiere ligne, et l'ajouter à la fin d'un nouveau fichier. Évalué à 3.

    Sed seul suffit pour faire ce que tu demande en faisant usage du hold space:

    sed '1h;1d;$p;$g' mon_fichier.txt

    Si tu veux modifier directement le fichier, ajoute l'option -i, sinon redirige vers un autre fichier.

    Et puisque tu as posté dans le forum astuces par erreur, j'en ajoute une:
    Pour comparer directement le résultat avant après, sans devoir le mettre dans un fichier temporaire, tu peux profiter du process substitution du shell:

    diff -u mon_fichier.txt <(sed '1h;1d;$p;$g' mon_fichier.txt)

    (testé avec bash, je ne sais pas si c'est une fonctionnalité de base de shell posix ou une extension de bash)

  • [^] # Re: SOLUTION

    Posté par  . En réponse au message ligne de commande extrait les lignes contenant une chaine. Évalué à 2.

    Sauf que dans ton message initial, tu mentionne des adresse IP. Et si c'est de l'IPv4, elles contiendront des points.
    Or pour grep (et dans les expressions rationnelles en général, même en version restreinte), le point signifie n'importe quel caractère.
    Donc si tu veux que ça extraie uniquement les lignes qui contiennent les adresses IP telles quelles (plutôt que la même chose mais avec n'importe quoi à la place des points), il faut soit protéger les points par des backslash, soit utiliser l'option -F de grep, qui lui dit de traiter la chaine telle quelle, plutôt que comme une expression rationnelle.
    (et je ne parle même pas de caractères qui viennent avant ou après le fragment de chaîne repéré dans la ligne)

  • # protéger les caractères

    Posté par  . En réponse au message Commande find dans script debian 7 [RESOLU]. Évalué à 2.

    Les { et } sont aussi des caractères spéciaux du shell, il faut les protéger comme le point-virgule.

    Ceci étant dit (ou plutôt écrit), find a une action -delete, qui t'évitera de lancer autant de fois rm que tu trouve de fichiers (ce qui peut être largement mitigé en passant à la variante "-exec command {} +")

  • [^] # Re: Je sais qu’on est vendredi mais…

    Posté par  . En réponse au journal Vivent les journaux binaires !. Évalué à 2.

    en proposant à la place de les stocker dans un mysql qui c'est bien connu utilise des fichiers texte dans /var/log.

    Avec MySQL, ça peut se faire :-)
    http://dev.mysql.com/doc/refman/5.5/en/csv-storage-engine.html

  • [^] # Re: Fautes?

    Posté par  . En réponse à la dépêche RPGBoss 0.6.x. Évalué à 3.

    Non, le codage par défaut d'un fichier properties c'est l'ISO-8859-1, donc tu peux y mettre des caractères accentués à la française.
    http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.InputStream)
    Et si tu le charge avec la variante qui prend un Reader
    http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader)
    ça peut être ce que tu veux, puisque tu peux utiliser un InputStreamReader auquel tu précisera le codage des caratères.
    http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html

  • [^] # Re: openpandora

    Posté par  . En réponse au message Remplacer un N810. Évalué à 2.

    Intéressant en effet, je le retiens.

  • [^] # Re: Linux power!

    Posté par  . En réponse à la dépêche Vulnérabilité dans Git et Mercurial sur certains systèmes de fichiers (FAT, NTFS, HFS+, etc.). Évalué à 5.

    Ils sont cités dans la dépêche.

  • [^] # Re: Nginx

    Posté par  . En réponse au journal Microsoft IIS ne dépasse pas Apache et il est encore en train de se prendre une taule. Évalué à 5.

    sa conf en json est plus agréable à écrire que le xml d'apache

    La configuration d'apache n'est pas en XML.

  • # interdit pour oracle

    Posté par  . En réponse au message Performances des SGBD. Évalué à 3.

    La licence d'oracle interdit de publier des benchmark qui n'auraient pas été validés par eux, donc tu peux le faire toi-même, pour ton usage personnel, mais tu n'en trouvera probablement pas disponibles publiquement.
    C'est la "clause Dewitt"
    http://en.wikipedia.org/wiki/David_DeWitt#The_.22DeWitt_Clause.22

  • [^] # Re: Comme ça :

    Posté par  . En réponse au message Copié fichier depuis liste de nom.. Évalué à 5.

    Et s'il y a des espaces, ou d'autres caractères spéciaux, dans ses noms de fichiers ça ne fonctionnera pas (voir cassera des choses).
    Il faut mettre le $l entre guillemets.

  • [^] # Re: su -c

    Posté par  . En réponse au message lancer un script en tant qu'un autre utilisateur. Évalué à 2.

    Si c'est un programme (binaire) oui, si c'est un script (un fichier texte commençant par #!) non.

  • # mise à jour 6.5

    Posté par  . En réponse à la dépêche Red Hat Enterprise Linux 6.6. Évalué à 5.

    J'ai un serveur en CentOS 6.5, est-il nécessaire de le mettre à jour en 6.6 pour continuer à avoir des mises à jour de sécurité?
    Ça fait plusieurs centaines de paquets à mettre à jour, y compris tous les composants de base du système, ça doit se planifier à l'avance.
    Sinon, est-il possible de rester sur la 6.5, sans que yum propose toutes les mises à jour pour 6.6?