Quelques astuces diverses, neuvième
Certaines des astuces que je partage dans cette série sont anciennes, juste je n’avais pas pensé à les poser là avant, ou bien je viens seulement de les découvrir et de commencer à les utiliser. Dans tous les cas, j’adore ce métier vivant où l’on apprend des choses tous les jours 🙂
Désactiver l’ouverture d’un onglet avec une URL par le bouton du milieu dans Firefox
Une opération qui n’existe que sous Linux, et que Mozilla considérait plus logique, le bouton du milieu étant traditionnellement associé à l’opération « coller »; Mozilla allait plus loin en ouvrant un nouvel onglet et en chargeant l’URL présente dans le presse-papier. Si ce comportement va être désactivé pour les nouveaux à partir de Firefox 57 (ce n’est pas le seul changement), il est possible d’ores-et-déjà de s’en occuper manuellement via about:config
:
1 |
middlemouse.contentLoadURL;false (défaut:true) |
Mais pourquoi je découvre ça aussi tard ?
Fusionner une liste de vidéos avec ffmpeg sans réencoder
Trois morceaux, dans le même format, que j’avais besoin de recoller, si possible sans réencoder. ffmpeg sait heureusement le faire, pour ça il faut créer une liste de fichiers au préalable :
1 2 3 4 5 6 |
$ cat mylist.txt file '/path/to/file1' file '/path/to/file2' file '/path/to/file3' $ ffmpeg -f concat -i mylist.txt -c copy output |
Tada !
Désactiver l’envoi de statistiques de votre base influxdb chez influxdata.com
Le pétrole du 21° siècle, que tout le monde collecte par tous les moyens possibles, souvent sans vous prévenir ni vous demander la permission. J’ai pu découvrir en réinstallant influxdb qu’il envoyait des statistiques à la maison mère sans m’avoir consulté auparavant, à part un commentaire dans le fichier de configuration :
1 2 3 |
sept. 10 12:03:11 raspberrypi influxd[377]: [I] 2017-09-10T10:03:11Z Storing statistics in database '_internal' retention policy 'monitor', at interval 10s service=monitor sept. 10 12:03:11 raspberrypi influxd[377]: [I] 2017-09-10T10:03:11Z Sending usage statistics to usage.influxdata.com sept. 10 12:03:16 raspberrypi influxd[377]: [httpd] ::1 - telegraf [10/Sep/2017:12:03:16 +0200] "POST /write?consistency=any&db=telegraf&rp=default HTTP/1.1" 204 0 "-" "-" 43b0934c-960f-11e7-8001-000000000000 756847 |
Bien qu’en théorie les informations collectées ne sont pas sensibles en soi, Il est fort heureusement possible de désactiver ce comportement douteux avec une ligne dans le fichier de configuration :
1 |
reporting-disabled = true |
Pensez évidemment à redémarrer le service.
Remplacer les espaces par des underscores dans les noms de fichiers
En lien avec la fusion des vidéos présentée jsute au dessus, j’ai rencontré un problème avec des espaces dans les noms de fichier. Comme c’est de toute façon le mal (ça et les accents), on peut remplacer ces espaces par des underscores :
1 |
find . -type f -name "* *.webm" -exec bash -c 'mv "$0" "${0// /_}"' {} \; |
J’adore ce format de remplacement à la volée.
Historique illimité dans Bash
Je suis en effet souvent frustré de pas me souvenir dans le détail d’une commande mais de pouvoir la retrouver dans l’historique. Seulement par défaut la longueur de l’historique est assez courte, et il y a la possibilité de le rendre illimité/permanent en paramétrant ces deux variable d’environnement de la sorte :
1 2 |
HISTSIZE= HISTFILESIZE= |
Convertir un jeu de png en jpg en renommant l’extension au passage
J’ai procédé à une série de captures d’écran pour une analyse poussée des données de Piwik (que j’ai pas sorti parce que j’ai un vieux bug à l’écriture de l’article, mais passons). Ces captures sont au format png, et je peux économiser en passant au format jpg. On peut faire ça avec un one-liner :
1 |
for i in $(ls piwik*.png); do convert $i -flatten -background white -quality 80 ${i//.png/.jpg}; done |
On retrouve le modèle de substitution à la volée de tout à l’heure pour les espaces 🙂
Apache : transférer l’authentification HTTP à PHP
Une agence m’a tanné parce que l’authentification Basic ne fonctionnait pas sur l’API de leur WordPress utilisée par leur application mobile. Je ne vais pas m’étendre sur la pertinence du Basic en contexte application mobile, mais il faut savoir que si c’est PHP qui génère le 401, Apache va se réserver l’entête. Pour tout de même le passer, à PHP, une seule ligne suffit, pas la peine d’en rajouter :
1 |
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 |
Évidemment, personne ne le savait, et ils partaient du principe que si leur environnement de dev fonctionnait comme ça, c’était valable pour la terre entière. Et on me demande pourquoi j’ai du mal avec les devs…
LFTP pour faire du transfert SFTP récursif
Objectif : envoyer un dossier de 14Go sur un serveur distant dont la fonction SFTP est remplie par CoreFTP, et OpenSSH ne supporte pas bien. Je suis passé par lftp :
1 |
lftp sftp://login:password@1.2.3.4 -e mirror -R intranet/ ; bye |
Le mode miroir fonctionne comme un rsync 🙂
Compter le détail des threads d’un processus
Pendant qu’on essayait de comprendre pourquoi une instance Logstash loadait sa race sur VM Azure, un intervenant m’a sorti une commande bien pratique pour vérifier ce qui était lancé par le process :
1 2 3 4 5 6 7 8 9 10 11 12 |
$ ps -T -p 31298 | cut -f 12 -d ' ' | sort | uniq -c 1 19 java 2 LogStash::Runne 8 [main]<azureblo 27 [main]<azurewad 6845 [main]<wadeph 1 [main]>worker0 1 [main]>worker1 1 [main]>worker2 1 [main]>worker3 7 pipeline.main |
Oui, plus de 6000 threads pour un des plugins. On comprend mieux le load…
Stocker la liste des fichiers d’un dossier sur une seule ligne
Pour exploiter une liste de fichiers dans une commande lftp mput
, j’avais besoin de garder tous les fichiers sur la même ligne. ls -x
n’ayant pas aidé sur un grosse liste, j’ai du passer autrement, et j’ai trouvé ceci :
1 |
filelist=$(ls | xargs) |
Aussi simple que ça.
A bientôt pour de nouvelles aventures 🙂
Espaces, accents et noms de fichiers =>
Utilitaire detox !
Je crois que tu as laissé trainer des identifiants dans ton astuce consacrée à LFTP
meuh non, c’est une illusion d’optique ^^’
Salut
Pour la convertion d’images en masse, image magick integre l’outil mogrify, par contre je ne crois pas qu’il intègre l’option flatten dont j’ignore d’ailleurs le fonctionnement
mogrify -background white -format jpg -quality 80 *.png