linkchecker

Pour vérifier les url d’un site et les liens morts. linkchecker est présent dans les dépôts de Debian. Il peut être agressif… Attention à la charge. Dans les logs on a : X.X.X.X - - [10/Dec/2018:10:10:10 +0100] "GET /fr/tout-pour-les-cadeaux-.html HTTP/1.1" 200 38266 "https://www.wwww.com/fr/evenement/noel/j-envoie-mes-voeux/" "Mozilla/5.0 (compatible; LinkChecker/9.4.0; +http://wummel.github.io/linkchecker/)"

10 dĂ©cembre 2018 Â· 1 min

Générer un certificat TLS wildcard avec Certbot

On ajoute le dépôt pour certbot : add-apt-repository -y ppa:certbot/certbot apt update apt install certbot On créé un token sur l’api OVH : https://api.ovh.com/createToken/ GET /domain/zone/* PUT /domain/zone/* POST /domain/zone/* DELETE /domain/zone/* On renseigne les variables dans un fichier (ex: ovh.ini) avec des droits en 600 # OVH API credentials used by Certbot dns_ovh_endpoint = ovh-eu dns_ovh_application_key = xxxxxxxxxxxxx dns_ovh_application_secret = xxxxxxxxxxxxxx dns_ovh_consumer_key = xxxxxxxxxx On génère le certificat en suivant les étapes : certbot certonly --dns-ovh --dns-ovh-credentials /etc/ovh.ini --dns-ovh-propagation-seconds 60 -d *.eckmul.net -d eckmul.net ou on peut générer son certificat sans API et renseigner les clés manuellement en suivant les étapes de la commande : certbot -d eckmul.net -d *.eckmul.net --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns certonly

7 dĂ©cembre 2018 Â· 1 min

Copier une table de partition

Avec MBR sfdisk -d /dev/sda | sfdisk /dev/sdb Avec GPT sgdisk -R /dev/sdb /dev/sda En ayant marqué le label avec parted en GPT pour pour le disque /dev/sdb ps : apt install gdisk

12 novembre 2018 Â· 1 min

Réduction d'un tablespace MySQL

Au cour de la vie d’une base de données, les tablespaces évoluent en taille. Si on a un seul tablespace pour l’ensemble des bases et des tables celui-ci ne se réduit jamais après des suppressions. Pour remettre MySQL au propre, on peut faire l’opération suivante et ainsi gagner de l’espace (et limiter la fragmentation). Dump individuel de toutes les bases de données sauf mysql et performance mysqldump ... Suppression des bases ...

2 janvier 2018 Â· 1 min

Benchmark avec curl

curl -s -w @stats.curl -o /dev/null https://www.google.fr Avec le fichier stats.curl contenant : url_effective : %{url_effective}\n content_type : %{content_type}\n filename_effective: %{filename_effective}\n ftp_entry_path : %{ftp_entry_path}\n http_code : %{http_code}\n http_connect : %{http_connect}\n http_version : %{http_version}\n local_ip : %{local_ip}\n local_port : %{local_port}\n remote_ip : %{remote_ip}\n remote_port : %{remote_port}\n scheme : %{scheme}\n num_connects : %{num_connects}\n num_redirects : %{num_redirects}\n redirect_url : %{redirect_url}\n size_download : %{size_download}\n size_header : %{size_header}\n size_request : %{size_request}\n size_upload : %{size_upload}\n ssl_verify_result : %{ssl_verify_result}\n time_namelookup : %{time_namelookup}\n time_connect : %{time_connect}\n time_appconnect : %{time_appconnect}\n time_pretransfer : %{time_pretransfer}\n time_redirect : %{time_redirect}\n time_starttransfer: %{time_starttransfer}\n time_total : %{time_total}\n speed_download : %{speed_download}\n speed_upload : %{speed_upload}\n Sortie : ...

3 octobre 2017 Â· 1 min

Don't forget systemd

Edition d’override La méthode propre: systemctl edit <service> ... systemctl daemon-reload

3 octobre 2017 Â· 1 min

upnpc

En ligne de commande, il existe miniupnpc. Pour ouvrir rediriger le port 22 extérieur de la box vers le port 22 de l’ordinateur sur lequel est lancé la commande : upnpc -r 22 TCP Pour lister les redirections de ports: upnpc -l Pour supprimer la redirection du port 22: upnpc -d 22 TCP Vous pouvez même demander au routeur votre IP publique externe: upnpc -s | grep ExternalIPAddress | cut -c21-

8 avril 2017 Â· 1 min

httpstat

Simple à installer : pip3 install httpstat Puis : httpstat www.eckmul.net et maintenant on sait ce qui cloche sur les temps de réponses d’un site web. HTTP/1.1 200 OK Date: Thu, 23 Mar 2017 14:26:21 GMT Server: Apache Last-Modified: Thu, 23 Mar 2017 14:24:59 GMT ETag: "32fa-54b66a45258f3" Accept-Ranges: bytes Content-Length: 13050 Vary: Accept-Encoding Cache-Control: max-age=2592000 Expires: Sat, 22 Apr 2017 14:26:21 GMT Content-Type: text/html Body stored in: /tmp/tmpK7zmDI DNS Lookup TCP Connection Server Processing Content Transfer [ 12ms | 7ms | 9ms | 1ms ] | | | | namelookup:12ms | | | connect:19ms | | starttransfer:28ms | total:29ms

23 mars 2017 Â· 1 min

Désactiver les queries cache et subqueries

Lorsque l’on désactive le query_cache, les sous requêtes ne le sont pas. Mettre : set global query_cache_type=0; set global optimizer_switch="subquery_cache=off";

11 mars 2017 Â· 1 min

Optimisation de configuration MariaDB / MySQL

Voici une configuration qui fonctionne sur un site à fort trafic. !!! note À adapter à la taille de la base et au trafic utilisateurs. On désactive le cache de requêtes. L’invalidation de ce cache est coûteuse et vérrouille tout le cache pendant sa mise à jours. set global query_cache_type=0; set global optimizer_switch="subquery_cache=off"; On défini par exemple : # si la db fait 20Go innodb_buffer_pool_size = 20Go innodb_buffer_pool_instances = 20 # threads innodb simultanés : 2 x nb de CPU + nb de disques innodb_thread_concurrency = 86 # vérifier la fréquence de fork de Mariadb/MySQL et les pics de nb de threads thread_cache = 128 # on vérifie la fréquence d'accès aux tables table_cache = 2048 # on active les log des requêtes lentes : slow_query_log = 1 # on remonte les requêtes lentes au delà de la seconde long_query_time = 1 slow_launch_time = 1 Explications Dimensionner correctement innodb_buffer_pool permet de garder les données en mémoire après leur lecture. La limitation de innodb_thread_concurrency évite les fork bombs lorsque des requêtes sont bloquées. Le thread_cache permet d’éviter la création et la suppression de threads lors d’un trafic normal.

10 mars 2017 Â· 1 min