Posts Tagged - ssh

Les fichiers temporaires de Snappy

Petite alerte ce matin d’un agent AWS, l’une de nos machines manque d’espace disque.

Si vous voulez passer une mauvaise journée, essayons donc d’attendre que votre serveur atteigne les 100%, vous verrez c’est sympathique de plus pouvoir se connecter en SSH.

Ni une ni deux nous cherchons les dossiers les plus volumineux à l’aide de la commande du :

du -h --max-depth=1 | sort -hr | head -n 10

En étudiant le résultat de la recherche, nous ne sommes rendu compte que le dossier /tmp présent à la racine du serveur faisait plus de 10 GO … soit plus de la moitié des capacités du disque de la machine.

Dans ce dossier, nous nous sommes retrouvés face à une montagne de fichier ayant un pattern similaire : “knp_snappy651be73555b004.69764999.html”.

Après téléchargement, il s’avère que les coupables sont des fichiers temporaires créés par le package laravel-snappy que nous utilisons pour générer des PDF.

Visiblement, dans certaines circonstances, le package n’est pas en mesure de supprimer ses propres fichiers temporaires … ce qui au fil des mois remplira votre serveur de plusieurs GO de fichiers inutiles, jusqu’à l’implosion.

Un rapide coup de suppression à l’aide d’un find :

find /tmp -name "knp_*.html" -type f -delete

Attention à vous, laravel-snappy n’est qu’un wrapper de KnpLabs/snappy qui lui-même encapsule le package wkhtmltopdf, un standard de l’industrie que vous utilisez probablement sans le savoir.

Le problème que nous avons rencontré n’est peut-être pas directement lié à laravel-snappy mais à l’une de ses dépendances, bon courage à vous.

Read More

  • cli

La commande screen

Imaginez que vous devez lancer une commande sur une machine distante nécessitant plusieurs heures d’exécution.

Vous pourriez le faire en vous connectant en SSH sur cette machine et en exécutant votre commande, mais cela vous obligera à conserver votre terminal ouvert … quand bien même ce dernier pourrait être kill pour inactivité ou subir une quelconque coupure.

La commande screen permet de créer et de gérer des sessions de terminal virtuelles détachables sur un système Unix.

On entend par “détachable” qu’il sera possible de créer des sessions permettant de se déconnecter de votre machine tout en laissant les processus en cours d’exécution dans la session, et de s’y reconnecter plus tard.

Une fois connecté en SSH sur votre machine, créé votre session à l’aide de la commande screen -S :

screen -S my_screen_name

Cette commande vous amène directement sur votre session dans laquelle vous pourrez exécuter votre commande.

Une fois que cette dernière sera en cours d’exécution, vous pourrez quitter cette session en tapant sur a puis d tout en maintenant la touche control … c’est un peu technique, mais vous y arriverez.

Une fois à nouveau sur votre machine, toutes les sessions existantes sont affichables avec la commande suivante :

screen -ls

La commande screen -r vous permettra de sauter sur une session existante :

screen -r my_screen_name

Pour finir, un simple exit sur une session vous permettra de la kill.

Read More