docker, alpine, mariadb: ce qui m'a été nécessaire...

2020-12-02 | #alpine #docker #mariadb

Voici ce qui m’a été nécessaire : #!/bin/bash apk add openrc # Avoid Service `hwdrivers' needs non existent service `dev' #/ # rc-status # * Caching service dependencies ... #Service `hwdrivers' needs non existent service `dev' [ ok ] #Runlevel: sysinit apk add udev-init-scripts-openrc apk add mariadb mariadb-client mariadb-server-utils pwgen mysql_install_db --user=mysql --ldata=/var/lib/mysql # com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure # due to : skip-networking # https://stackoverflow.com/a/2985169/3550759 # # Specified key was too long; max key length is 767 bytes # due to : innodb-default-row-format && (maybe) innodb_strict_mode sed -e '/^\\[mysqld\\]/a innodb_strict_mode=0' \\ -e '/^\\[mysqld\\]/a innodb-default-row-format=dynamic' \\ -e '/^\\[mysqld\\]/a sql-mode="ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"' \\ -e '/^skip-networking/c #skip-networking' \\ -i /etc/my.

Continuer la lecture 


sed, insérer avant ou après matchage de ligne

2020-12-01 | #sed

Peut-être pratique pour modifier un fichier de configuration par exemple $ printf "[section1]\\n\\n[section2]\\ncle1=valeur1\\n" | sed '/^\\[section2\\]/i cle2=valeur2' [section1] cle2=valeur2 [section2] cle1=valeur1 $ printf "[section1]\\n\\n[section2]\\ncle1=valeur1\\n" | sed '/^\\[section2\\]/a cle2=valeur2' [section1] [section2] cle2=valeur2 cle1=valeur1

Continuer la lecture 


bash, appel callback à la sortie...

2020-11-20 | #bash #commande #trap

Il est possible en bash d’appeler des méthodes lorsque de la fin du script est atteinte et ce même s’il y a une erreur. Ci-dessous, le script appellera cleanup_err puis cleanup_ok lorsque false sera atteint. #!/bin/bash function cleanup_err { echo cleanup_err } function cleanup_ok { echo cleanup_ok } trap cleanup_ok EXIT trap cleanup_err ERR C’est bien pratique pour nettoyer les fichiers et répertoires temporaires :)

Continuer la lecture 


tmux, copier/coller à la vi + dans le presse-papier

2020-11-18 | #bash #commande #presse-papier #tmux #xclip

Commandes à ajouter au ~/.tmux.conf Dans mon cas, il s’agit d’un tmux 1.8 : bind-key P run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer" bind-key -t vi-copy 'v' begin-selection bind-key -t vi-copy 'y' copy-pipe "tmux save-buffer - | xclip -sel clip -i" bind-key -t vi-copy 'r' rectangle-toggle Cela nécessite d’ajouter la commande xclip Attention, l’exécution est très très lente…

Continuer la lecture 


python, distance de levenshtein

2020-11-13 | #distance #levenshtein

La distance de Levenshtein est une distance, au sens mathématique du terme, donnant une mesure de la différence entre deux chaînes de caractères. Elle est égale au nombre minimal de caractères qu’il faut supprimer, insérer ou remplacer pour passer d’une chaîne à l’autre. def levenshtein(a,b): "Calculates the Levenshtein distance between a and b." n, m = len(a), len(b) if n > m: # Make sure n <= m, to use O(min(n,m)) space a,b = b,a n,m = m,n current = range(n+1) for i in range(1,m+1): previous, current = current, [i]+[0]*n for j in range(1,n+1): add, delete = previous[j]+1, current[j-1]+1 change = previous[j-1] if a[j-1] !

Continuer la lecture 


mysql, données binaires

2020-11-12 | #binaire #binary #hexa #mysql

Dans certains cas, la commande LOAD_FILE n’est pas utilisable (problèmes de droits, etc..) pour alimenter un blob. Dans ce cas, il peut être intéressant de convertir un fichier binaire (ici un fichier texte) en séquence hexadécimale… $ cat lorem.txt Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer at lorem pharetra, pulvinar quam nec, efficitur ligula. Donec imperdiet aliquam rutrum. Aenean metus est, cursus eget auctor sit amet, vehicula id lorem.

Continuer la lecture 