Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
dimanche 05 février 2017

:: Docker ::

Introduction

Commandes principales

Lister les containers

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Vérifier la version

$ docker version
Client:
 Version:      1.13.0
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   49bf474
 Built:        Wed Jan 18 16:20:26 2017
 OS/Arch:      windows/amd64

Server:
 Version:      1.13.0
 API version:  1.25 (minimum version 1.12)
 Go version:   go1.7.3
 Git commit:   49bf474
 Built:        Wed Jan 18 16:20:26 2017
 OS/Arch:      linux/amd64
 Experimental: true

Infos supplémentaires

$  docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.13.0
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.4-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934 GiB
Name: moby
ID: 5GS5:CDLI:QBVM:CI6Q:7EZ3:3SXU:33E5:IBQQ:AWBX:H4WA:K3PU:L4UT
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 13
 Goroutines: 21
 System Time: 2017-02-05T18:55:34.4573341Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Test du bon fonctionnement de l'installation

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pulling fs layer
78445dd45222: Verifying Checksum
78445dd45222: Download complete
78445dd45222: Pull complete
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

jeudi 02 février 2017

:: Vim ::

Principales commandes

Commande Sens Type Effet
h déplacement déplace le curseur vers la gauche
j déplacement déplace le curseur vers le bas
k déplacement déplace le curseur vers le haut
l déplacement déplace le curseur vers la droite
w word déplacement avance d'un mot
b back déplacement recule d'un mot
e end déplacement avance jusqu'à la fin d'un mot
W déplacement avance d'un MOT
B déplacement recule d'un MOT
E déplacement avance jusqu'à la fin d'un MOT
fx forward déplacement avance jusqu'au prochain x
Fx déplacement recule jusqu'au x précédent
tx déplacement avance jusqu'à juste avant le prochain x
Tx déplacement recule jusqu'à juste après le x précédent
gg déplacement va au début du texte
G déplacement va à la fin du texte
$ déplacement va à la fin de la ligne
0 déplacement va au début de la ligne
{ déplacement va au début du paragraphe
} déplacement va à la fin du paragraphe
( déplacement va au début de la phrase
) déplacement va à la fin de la phrase
n next déplacement continue une recherche
N déplacement continue une recherche, en sens inverse
u undo annule la dernière action
Ctrl-R redo refait la dernière action annulée
. redo répète la dernière opération
x supprime un caractère vers la droite (« delete »)
X supprime un caractère vers la gauche (« backspace »)
s substitute supprime un caractère et passe en mode insertion
rx replace remplace un caractère par x
p paste colle un registre après le curseur
P colle un registre avant le curseur
~ passe un caractère de majuscule en minuscule ou l'inverse
/ fais une recherche
? fais une recherche vers l'arrière
* cherche le mot sous le curseur
# cherche le mot sous le curseur vers l'arrière
d delete action supprime
c change action supprime et passe en mode insertion
y yank action copie dans un registre
gu action passe en minuscules
gU action passe en majuscules
g? action passe en rot13
< action décale vers la gauche
> action décale vers la droite
gq action recoupe les lignes
= action met en forme un programme
" x sélectionne le registre x
m x pose la marque x
' x déplacement va à la marque x (par ligne)
` x déplacement va à la marque x (par caractère)

Ligne de commande

Commande Abbréviation Effet
:write :w sauve le fichier en cours d'édition
:write fichier :w écrit le texte dans le fichier indiqué
:saveas fichier :sav sauve le fichier sous un nouveau nom
:edit fichier :ed édite un nouveau fichier
:quit :q quitte
:exit :x sauve si nécessaire et quitte
:wq sauve et quitte
:help :he affiche l'aide en ligne
:split sépare le fenêtre actuelle en deux parties
:split fichier.log sépare la fenêtre et édite fichier.log

Options

Option Abbréviation Effet
:set number :se nu affiche les numéros de ligne
:set nonumber :se nonu enlève les numéros de ligne
:set incsearch définit la recherche incrémentiel (le recherche démarre au 1er caractère tapé)
:set hlsearch mise en valeur des termes recherchés (highlight)
:set paste option de collage de texte sans modification
:set nopaste désactivation de l'option de collage de texte sans modification

Modes

Commande Sens Type Effet
i insert passe en mode insertion
a append passe en mode insertion en faisant avancer le curseur
o open passe en mode insertion en créant une nouvelle ligne sous le curseur
O open passe en mode insertion en créant une nouvelle ligne au dessus du curseur
R replace passe en mode remplacement
A passe en mode insertion en allant à la fin de la ligne
I passe en mode insertion en allant au début de la ligne
v visual passe en mode visuel
V passe en mode visuel par ligne
Ctrl-V passe en mode visuel par bloc

dimanche 04 décembre 2016

:: Archlinux - Aide mémoire ::

Systemd

Commandes

systemctl                                 # Contrôle systemd et gère les unités.
journalctl                                # Consultation du journal de systemd.
loginctl                                  # Contrôle des sessions utilisateurs (systemd-logind).

Commandes système

systemctl reboot
systemctl poweroff
systemctl suspend
systemctl hibernate

Opérations basiques

Gestion des unités

systemctl                                 # Liste des unités
systemctl list-units
systemctl status <unit>                   # Affiche le statut de l'unité
systemctl list-dependencies [<unit>]      # Liste des dépendances d'une unité

Opérations

systemctl start <unit>                    # Démarre l'unité
systemctl stop <unit>                     # Arrête l'unité
systemctl restart <unit>                  # Redémarre l'unité
systemctl reload <unit>                   # Recharge l'unité
systemctl enable <unit>                   # Active l'unité au démarrage
systemctl disable <unit>                  # Désactive l'unité au démarrage

Maintenance

Lister les services en échec

$ systemctl --failed
  UNIT                         LOAD   ACTIVE SUB    DESCRIPTION
● systemd-modules-load.service loaded failed failed Load Kernel Modules

On récupère ainsi le nom du service en échec à partir duquel on va pouvoir demander plus de détails.

Détails sur le service en échec

$ systemctl status systemd-modules-load.service
● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2016-12-04 09:24:59 CET; 18min ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 333 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 333 (code=exited, status=1/FAILURE)

Ces informations nous permettent de récupérer le PID du process incriminé, et de cibler plus précisément notre recherche :

$ journalctl _PID=333
-- Logs begin at Mon 2016-11-21 08:22:44 CET, end at Sun 2016-12-04 09:40:41 CET. --
déc. 04 09:24:59 mani systemd-modules-load[333]: Failed to find module 'vboxdrv'
déc. 04 09:24:59 mani systemd-modules-load[333]: Failed to find module 'vboxpci'
déc. 04 09:24:59 mani systemd-modules-load[333]: Failed to find module 'vboxnetadp'
déc. 04 09:24:59 mani systemd-modules-load[333]: Failed to find module 'vboxnetflt'
déc. 04 09:24:59 mani systemd-modules-load[333]: Failed to find module 'vboxdrv'

Maintenant c'est déjà plus clair, le problème semble provenir de modules absents. Le nom de ces modules nous donne un indice sur l'application incriminée, ici VirtualBox.

Gestion du journal

$ journalctl --disk-usage                 # Taille occupée par les journaux sur le disque
$ journalctl --verify                     # Vérification de la "possible" corruption des fichiers journaux

Taille du journal

Editer le fichier /etc/systemd/journald.conf et modifier la valeur suivante :

[Journal]
...
SystemMaxUse=50M

Nettoyage du journal

$ sudo journalctl --vacuum-size=50M       # Suppression des journaux archivés jusqu'à ce que leur taille totale descende en deça de 50Mo
$ sudo journalctl --vacuum-time=2weeks    # Suppression des événements agés de plus de deux semaines

Gestion des paquets

Liste des miroirs

Générer la liste des miroirs

Site de référence : Archlinux - Pacman Mirrorlist Generator

Evaluer les miroirs

La liste des miroirs les plus rapides peut être déterminée à l'aide de l'utilitaire /usr/bin/rankmirrors.
Pour mettre à jour la liste des miroirs français en http/https et IPv4, lancer les commandes suivantes :

$ wget 'https://www.archlinux.org/mirrorlist/?country=FR&protocol=http&protocol=https&ip_version=4' -O mirrorlist.new
$ sed -i 's/^#Server/Server/' mirrorlist.new
$ rankmirrors -n 6 mirrorlist.new > mirrorlist
$ sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
$ sudo cp mirrorlist /etc/pacman.d/mirrorlist

Automatiser la mise à jour de la liste des miroirs

Installer l'utilitaire update-pacman-mirrorlist

$ yaourt -S update-pacman-mirrorlist

Adapter la configuration (si besoin) :

$ sudo vi /etc/update-pacman-mirrorlist
$ sudo vi /usr/lib/systemd/system/update-pacman-mirrorlist.timer

Activer et lancer le timer :

$ sudo systemctl enable update-pacman-mirrorlist.timer
$ sudo systemctl start update-pacman-mirrorlist.timer

Pacman

Opérations de base

Synchronisation (-S)

$ sudo pacman -Sy                      # Synchronise la liste des paquets
$ sudo pacman -Syu                     # Synchronise la liste des paquets et effectue une mise à jour
$ sudo pacman -Ss <package>            # Cherche un paquet contenant le terme "package"
$ sudo pacman -Si <package>            # Information sur un paquet
$ sudo pacman -S  <package>            # Installe "package"
$ sudo pacman -S --asdeps              # Installe un paquet comme dépendance

Mise à jour (-U)

$ sudo pacman -U  <package>            # Met à jour "package"

Requête (-Q)

$ sudo pacman -Q                       # Liste les paquets installés
$ sudo pacman -Ql <package>            # Liste les fichiers d'un paquet
$ sudo pacman -Qo /path/file           # Demande à quel paquet appartient le fichier
$ sudo pacman -Qdtq                    # Liste des dépendances inutiles

Suppression (-R)

$ sudo pacman -Rs <package>            # Supprime un paquet et ses dépendances
$ sudo pacman -Rsn <package>           # Supprime un paquet, sa configuration et ses dépendances
$ sudo pacman -Rs $(pacman -Qtdq)      # Suppression des dépendances inutiles

Création de la liste des paquets installés pour réinstallation

$ sudo pacman -Qqet | grep -v "$(pacman -Qqg base)" > pkglist

Réinstallation à partir de la liste des paquets

$ sudo pacman -S $(cat pkglist)

Gestion du cache de paquets

Suppression des paquest non-installés du cache (anciennes versions ou non installées sur le système) :

$ sudo pacman -Sc

Il est aussi possible de vider complètement le cache. Il s’agit d’une très mauvaise pratique qui empêche toute réinstallation de paquets depuis le cache et impose donc de les télécharger à nouveau. Vous ne devriez jamais utiliser cette commande à moins d’un besoin absolu de récupérer de l’espace disque.

$ sudo pacman -Scc

AUR

$ yaourt (utilise la même syntaxe que pacman)

Mise à jour du système

$ yaourt -Syua                         # Mise à jour du système (pacman + aur)

Local

Attention ! Pour des raisons de sécurité, éviter d'utiliser makepkg en root. Préférer l'utilisation de sudo.

Création du paquet

$ sudo makepkg -s

Installation du paquet créé

$ sudo pacman -U <package>-pkg.tar.gz

dimanche 18 septembre 2016

:: Rundeck ::

CLI Tool

Rappel

Aller dans le répertoire "rundeck"

PS C:\> cd D:\rundeck

rd-queue

Lister exécutions en cours

PS D:\rundeck> .\tools\bin\rd-queue -p Galaxy
Queue: x items
[id] NomJob <http://lien_vers_details_du_job>
...

rd-jobs

Lister jobs d'un projet

PS D:\rundeck> .\tools\bin\rd-queue -p NomProjet
# Found x jobs:
- NomJob - 'Description'
...

dimanche 28 août 2016

:: MMD Cheat Sheet ::

Généralités

Résultat Syntaxe
Italique *Italique* ou _Italique_
Gras **Gras** ou __Gras__
Gras et italique ***Gras et italique*** ou ___Gras et italique___
Citation > Citation
Liste à puces *, + ou - devant chaque élément
Liste numérotée 1. devant le 1er élément
Entête ### Entête
Ligne horizontale --- ou *** sur une ligne vide

Liens

Résultat Syntaxe
Google [Google](http://google.com)
http://google.com <http://google.com> <pierce@twinforces.com>
nobody@nowhere.com <nobody@nowhere.com>
Référence [lien][idlien] pour [lien][idlien] avec [idlien]: http://url.com "title" sur sa propre ligne
Lien défini [idlien]: http://url.com "title" on its own line elsewhere.
Interne [Links][] (any header name)
Note de bas de page 1 [^note] Note
Note définie [^note]: text
Image ![Image Name](URL "title") for an image
![Image Ref] then later def
![Caption][Image Ref] then later def
Image Définie [Image Ref]: URL "Title" width="45px" height="45px"

Tableaux

Table caption, also works as a reference
First Header Second Header Third Header
First row Gras Very long data entry
Second row Cell that spans across two columns

| First Header | Second Header | Third Header | | :------------ | :-----------: | -------------------: | | : Left align | : centered : | Right align : | | First row | **Gras** | Very long data entry | | Second row | Cell that spans across two columns || [Table caption, also works as a reference][section-mmd-tables-table1]

Autres

What Syntax
{--a delete. --} a delete. {-- remove --}
{++an add. ++} {++ add++}
swap {~~from~>to~~} {\~\~\from\~>to\~\~}
{==a highlight==} {\=\=highlight\=\=}
Comment, which you can't see{>>What is it a test of?<<}. {>>Comment?\<\<}

  1. Ceci est une note de bas de page [idlien]: http://url.com "title" ↩


mercredi 02 mars 2016

:: Tableau de correspondance AWG ::

Introduction

Plus la valeur AWG est élevée, plus le diamètre est petit. La résistance est donnée pour un fil de cuivre (résistivité = 1,8 10-8 ohm mètre)

Tableau de correspondance

Gauge AWG Diamètre (mm) Section (mm^2) Résistance (ohms/km)
0000 (4/0) 11.684 107 0.17
000 (3/0) 10.40384 85.0 0.21
00 (2/0) 9.26592 67.4 0.26
0 (1/0) 8.25246 53.5 0.33
1 7.34822 42.4 0.40
2 6.54304 33.6 0.51
3 5.82676 26.7 0.64
4 5.18922 21.2 0.81
5 4.62026 16.8 1.03
6 4.1148 13.3 1.30
7 3.66522 10.5 1.63
8 3.2639 8.37 2.06
9 2.90576 6.63 2.60
10 2.58826 5.26 3.28
11 2.30378 4.17 4.13
12 2.05232 3.31 5.21
13 1.8288 2.62 6.57
14 1.62814 2.08 8.29
15 1.45034 1.65 10.4
16 1.29032 1.31 13.20
17 1.15062 1.04 16.60
18 1.02362 0.823 20.90
19 0.91186 0.653 26.40
20 0.8128 0.518 33.30
21 0.7239 0.410 41.99
22 0.64516 0.326 52.95
23 0.57404 0.258 66.80
24 0.51054 0.205 84.20
25 0.45466 0.162 106
26 0.40386 0.129 134
27 0.36068 0.102 169
28 0.32004 0.0810 213
29 0.28702 0.0642 268
30 0.254 0.0509 339
31 0.22606 0.0404 427
32 0.2032 0.0320 538
33 0.18034 0.0254 679
34 0.16002 0.0201 856
35 0.14224 0.0160 1079
36 0.127 0.0127 1361
37 0.1143 0.0100 1716
38 0.1016 0.00797 2164
39 0.0889 0.00632 2729
40 0.07874 0.00501 3441
41 0.0711 0.00397 4340
42 0.0633 0.00315 5470
43 0.0564 0.0025 6900
44 0.0502 0.00198 8700
45 0.0447 0.00157 11000
46 0.0398 0.00125 13800

Références


jeudi 15 octobre 2015

:: Aide-mémoire SQLite3 ::

Commandes

Ouverture / création de base

$ sqlite3 db.sqlite

Si le fichier db.sqlite existe la base est ouverte, sinon elle est créée.

Opérations basiques

Afficher l'aide

sqlite> .help

Afficher les noms et fichiers des bases attachées

sqlite> .databases
seq  name             file
---  ---------------  ----------------------------------------------------------
0    main             /path/to/db.sqlite

Lister les tables

sqlite> .tables
perimeter

Afficher la structure de la table

sqlite> .schema perimeter
CREATE TABLE perimeter (
  theme TEXT,
  nom_envoyeur TEXT,
  regroupement TEXT,
  mail TEXT,
  type TEXT,
  nom TEXT,
  action TEXT,
  cas_failed TEXT,
  action2 TEXT,
  jour TEXT,
  debut TEXT,
  fin TEXT,
  heure_check TEXT,
  tout_sauf_check TEXT,
  check_ok TEXT
);

Afficher la structure de la base et les données

sqlite> .dump

Affichage des colonnes dans les résultats

  • Activer

    sqlite> .explain on
  • Désactiver

    sqlite> .explain off

Affichage des variables de configuration

sqlite> .show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width:

Quitter SQLite

sqlite> .quit

Import de données

Import d'un fichier CSV

sqlite> .separator ','
sqlite> .import data.csv table_sqlite

samedi 26 septembre 2015

:: Hypertext Markup Language ::

Structure de page HTML5

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Titre</title>
    </head>

    <body>

    <header>
        <nav></nav>
    </header>

    <aside></aside>

    <section>
        <article></article>
        <article></article>
        <article></article>
        <nav></nav>
    </section>

    <footer></footer>

    </body>
</html>

Couleurs HTML

Gris

Nuance Code
Clair 7e7e7e
. 626262
. 474747
. 282828
Foncé 020202

mercredi 12 novembre 2014

:: Référence rtorrent ::

Commandes globales

Ctrl-q Quitter l'application
(x2) Quitter sans envoyer de signal stop
Flèches Sélectionner les entrées ou naviguer d'une vue à l'autre

Vue principale

1-7 Changer de vue (cf. détail plus bas)
Ctrl-s Démarrer un téléchargement
Ctrl-d Arrête un téléchargement actif ou supprime un téléchargement déjà stoppé
Ctrl-k Arrête et ferme un téléchargement actif
Ctrl-r Vérifie le hash d'un torrent
Ctrl-o Définit le nouveau répertoire de téléchargement pour le torrent sélectionné. Fonctionne sur les torrents inactifs uniquement
+ / - Changer la priorité d'un torrent
Espace Ajouter un torrent (URL ou chemin)
Entrée Ajouter un torrent sans le démarrer
l Consulter le journal. Sortir en appuyant sur la barre espace
U Supprimer le fichier auquel le torrent est lié
I Active/désactive la prise en compte des paramètres de ratio

Liste des vues

1 Tous les téléchargements
2 Tous les téléchargements par ordre alphabétique
3 Téléchargements démarrés
4 Téléchargements arrêtés
5 Téléchargements terminés
6 Téléchargements incomplets
7 Téléchargements en cours de vérification
8 Téléchargements partagés