
Quelques astuces diverses, treizième

On en apprend tous les jours sur nos systèmes préférés, d’autant plus quand on manipule souvent des installations différentes (c’est pratique le boulot pour ça). Et il est temps de vous livrer une nouvelle tournée 🙂
Xtrabackup et erreur « Too many open files »
« Petite » sauvegarde à faire d’une instance Mysql de 350Go. J’utilise xtrabackup de Percona, outil magnifique mais qui s’est heurté à l’erreur suivante quand lancé avec un utilisateur particulier :
1 2 3 4 |
180503 17:44:40 >> log scanned up to (29626811378630) 180503 17:44:41 >> log scanned up to (29626811379886) InnoDB: Operating system error number 24 in a file operation. InnoDB: Error number 24 means 'Too many open files' |
J’ai du ajouter un petit fichier dans le dossier /etc/security/limits.d/ avec le contenu suivant :
1 2 |
mysql-1 hard nofile 32768 mysql-1 soft nofile 32768 |
Vous pouvez adapter à vos besoins, pour ma part ça a suffi.
Extlinux, VPS SSD OVH et mauvais noyau au boot
Je suis utilisateur d’un VPS SSD OVH installé initialement en Debian 8 pour le site web de mon équipe « gaming ». Lors du passage de Jessie à Stretch, monsieur continue d’utiliser le noyau 3.16 de Debian Jessie, ce qui n’est pas des plus propres. En fait, l’installation repose sur extlinux au lieu de GRUB (j’ai pas de troll à sortir là-dessus, désolé), et je modifiais le fichier /boot/extlinux/extlinux.conf sans succès. En fait, le fichier à modifier est /extlinux.conf :
1 2 3 4 5 |
default linux timeout 1 label linux kernel boot/vmlinuz append initrd=boot/initrd.img root=/dev/vda1 console=tty0 console=ttyS0,115200 ro quiet |
L’astuce « propre » a été finalement trouvée sur le forum OVH, avec création de liens symboliques pour à priori pouvoir supporter les mises à jour proprement sans impacter la suite des mises à jour.
Afficher les processus qui consomment du Swap
Un serveur tabasse régulièrement son swap sans qu’on aie pour l’instant la cause profonde sachant qu’il a largement de quoi rester en RAM pour bosser. Pour afficher quels processus consomment du swap, on peut utiliser le petit one-liner suivant :
1 |
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less |
UPDATE: Aeris m’a proposé sur Twitter une version que les nerds qualifieraient de plus élégante, puisque awk fait tout le taf sans la boucle for :
1 |
awk '/Name/ {printf $2} /VmSwap/ {print " ",$2}' /proc/*/status |sort -k 2 -n -r |less |
Comparer deux arborescences pour détecter des fichiers modifiés
Une routine crade, lente, mais utile pour tenter de détecter des traces d’attaques sur des fichiers :
1 |
find original/ -type d -exec md5sum {} \; |sed -e 's/^original/infected/' |md5sum -c |grep -Ev "OK$" |
Plus que jamais, pitié, mettez à jour non seulement le CMS lui-même, mais aussi les plugins.
Virtualbox, USB3, erreur bizarre lors du l’ajout d’un disque
Sur le PC du boulot, Full USB3, je dois brancher un disque dur externe à la VM Virtualbox, je me prend un joli fail :
En fait, il faut faire attention au type de contrôleur dans la configuration de la VM (nécessite le pack d’extensions à la licence limite) :
Faut mettre full USB3 pour tout le monde, et ça marche beaucoup mieux curieusement 🙂
« Le nom de fichier est trop long ou invalide » sous Windows
Ceci est la source de l’astuce précédente. Un dossier de série à transférer (bouh pirate toussa), certains titres contiennent des « ? », pas surprenant le disque a toujours été manipulé sous Linux. Sous Windows pas de solutions, je suis passé sous Linux, en ligne de commande pour filtrer uniquement ces épisodes-là :
1 2 3 4 5 6 7 8 |
[seboss666@SebLBNvm /media/veracrypt1/Multimédia/Vidéos/Séries/Dragon Ball Z ]$ find . -name "*\?*" ./083 Doit-on sauver Vegeta ?.mkv ./087 Sangoku tiendra-t-il sa promesse ?.mkv ./121 Qui est ce mystérieux guerrier ?.mkv ./131 Qui sont les cyborgs ?.mkv ./166 Pourquoi un tournoi ?.mkv [seboss666@SebLBNvm /media/veracrypt1/Multimédia/Vidéos/Séries/Dragon Ball Z ]$ find . -name "*\?*" -exec cp {} /media/seboss666/Stockage_Externe/Séries/DBZ/ \; |
Tada ! C’est chiant Windows. Ceci dit, Thunar m’a sorti la même erreur une fois arrivé sur mon laptop (probablement le NAS ce coup-ci, à tout le moins le CIFS). J’ai pas cherché à comprendre, j’ai renommé les fichiers avant de les transférer #PayeTaFlemme
Fusion d’images avec ImageMagick
Pour le journal de bord de mes vacances, j’ai pris deux photos d’une carte de visite d’un restaurant que je recommande volontiers si vous vous baladez un jour à Roses. Deux problèmes, les photos sont à la verticale et j’aimerais les fusionner. J’aurais pu perdre du temps dans le GIMP nouvelle génération mais j’ai voulu plutôt bricoler en ligne de commande :
1 2 3 4 |
convert carte_visite_resto_1.jpg -rotate 270 carte_visite_resto_1_rotated.jpg convert carte_visite_resto_2.jpg -rotate 270 carte_visite_resto_2_rotated.jpg montage carte_visite_resto_*rotated.jpg -tile x1 -geometry +0+0 carte_visite_resto.jpg convert carte_visite_resto.jpg -resize 1920x1080 -quality 85 carte_visite_resto_resized.jpg |
C’était beaucoup plus rapide que de faire ça avec le touchpad 🙂
Lancer vlc avec l’utilisateur root
Par défaut pas le droit, mais c’est possible avec un hack dégueu :
1 |
sed -i 's/geteuid/getppid/' /usr/bin/vlc |
Évidemment je recommande pas la modification de binaires à la volée, surtout que ça sautera à la prochaine mise à jour…
Désactiver les rétroliens sur vos articles WordPress
Grosse méthode de bourrin, pratique si vous n’en avez rien à foutre des rétroliens (surtout qu’il y a un historique de sécurité pas folichon), et que vous avez beaucoup d’articles. Ça se passe dans Mysql :
1 2 3 |
MariaDB [c0blog]> update wp_posts set ping_status = 'closed'; Query OK, 1015 rows affected (0.06 sec) Rows matched: 3466 Changed: 1015 Warnings: 0 |
Si vous utilisez des plugins de cache quelconques, vous devrez peut-être avoir à les flusher, je vous recommande d’utiliser l’excellent wp-cli pour ça, ça fait le café pour vous (vous pouvez même vous en servir pour lancer les requêtes sur votre base de données).
Nettoyer/convertir le contenu d’une cellule dans Excel/LibreOffice Calc
Dans le cadre de tests de performances d’une nouvelle plateforme, j’ai rejoué le trafic avec goreplay et compare les temps de réponses retournés par Apache. Pour ce faire, j’importe les logs dans Excel, ce qui permet de prendre la ligne suivante :
1 |
1.1.1.1 - - [16/Jul/2018:16:02:45 +0200] "GET /images/produit-1/1/7/8/mon-produit-favori-2345890.jpg HTTP/1.1" 200 14932 "http://www.mondomaine.fr/mon-produit-favori-fr-1-feuille.html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" PID=24834 T=3258 XF=[-] H=1.1.1.1 |
Et de me faire une colonne par élément (éléments séparés par un espace, Excel s’en accomode très bien). Pour pouvoir faire un graphique sur le temps de réponse d’éléments récurrents, il faut convertir le « T=xxxx » qui est une chaîne de caractères, en entier numérique. La formule pour ça est simple :
1 |
=ENT(SUBSTITUE(<cellule qui contient T=>;"T=";"")) |
Et vous avez bien lu, la formule est la même dans LibreOffice 🙂 (adaptez en fonction de la langue, en anglais « ent » doit être « int » et « substitue », « subtitute »)
Tester un port distant sans telnet/netcat/nmap
Ça peut arriver, sur une machine fraîchement installée dont le réseau pose problème, si on a pas prévu les paquets dans le template, il ne sont pas forcément fournis d’emblée. Fort heureusement on est sous Linux, et il est possible de passer par /dev/tcp pour faire certaines manipulations :
1 2 3 4 5 6 7 |
$ timeout 2 bash -c '</dev/tcp/91.121.61.180/443 && echo Port is open || echo Port is closed' || echo Connection timeout Port is open ~ $ timeout 2 bash -c '</dev/tcp/91.121.61.180/444 && echo Port is open || echo Port is closed' || echo Connection timeout bash: connect: Connexion refusée bash: /dev/tcp/91.121.61.180/444: Connexion refusée Port is closed |
vous pouvez éventuellement coller ça dans un alias 🙂
Voilà, c’est tout pour aujourd’hui, amusez-vous bien avec tout ça, à bientôt 😉
Yo,
Pourquoi faire tu as eu besoin de lancer VLC en root ?
Tcho !
Oh, c’était pour vérifier certains fichiers sur un montage de partition qui n’était pas accessible à l’utilisateur du liveUSB que j’utilisais pour récupérer les fichiers. C’était sale, et ça m’a pas plu de voir que VLC refusait de se lancer avec l’utilisateur, donc c’est toujours intéressant de savoir comment contourner 😀
Super article avec pas mal d’astuces bien utiles.
Merci pour le partage 🙂
Je me demandais, est-ce que tu aurais la somme de ces conseils sur une seule page par hasard ?
Hello,
Je n’ai encore jamais pensé à regrouper toutes les astuces au même endroit (je me sers déjà du blog en tant que simili-wiki). Quel en serait l’intérêt d’après toi ? (de toute façon, creative commons power, si t’es motivé tu peux foncer, faut juste la petite mention qui va bien 😉 )
L’intérêt que j’ai est de pouvoir copier plus facilement le tout hahaha. Après, c’est vraiment par flemme, si tu n’en as pas l’usage, ne t’embête pas avec ça. C’est déjà super que tu partages des informations de cette qualité.
Tu as été entendu, j’ai réussi à bricoler un truc, et la page est maintenant disponible via le menu projets : https://blog.seboss666.info/astuces-diverses-recap/
L’article qui détaille comment je génère la page sera publié la semaine prochaine 😉 (car c’est scripté et je pourrai la mettre à jour en une seule ligne de commande)
Pour comparer des fichiers ou des dossiers, on peut aussi utiliser diff :-), par exemple
diff -rq original infected
Sympathique l’astuce pour tester les ports en tcp, merci. 🙂
Par contre une mauvaise captcha m’a effacé mon commentaire, puis j’ai entré 2 fois le même message sans vraiment m’n rendre compte.
Tester un port distant sans telnet/netcat/nmap autant dire sur un nas synology 🙂