Mysql: dumper une base à travers ssh

J’ai un serveur de QA dont le disque n’a pas assez d’espace libre pour faire un dump d’une base mysql. Pour récupérer ce dump et transférer le service sur un autre serveur, j’ai redirigé le dump à travers ssh directement sur la nouvelle machine.

mysqldump --skip-extended-insert -u user -p dbname | ssh user@serveur 'cat >~/database.dump.sql'

Avec –skip-extended-insert pour ne faire qu’un INSERT sql par ligne.

 

Mysql: retrouver toutes les tables qui contiennent un champ donné

J’ai eu besoin pour une migration de retrouver toutes les tables qui contenaient un champ spécifique : tag_id

Mysql fournit une base spéciale « information_schema » qui contient toutes les informations sur les noms de bases, de tables et colonnes (entre autres). Le détail des tables de cette base est disponible dans la documentation MySQL.

Pour retrouver un champ en particulier, il faut interroger la table columns :

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('tag_id')
    AND TABLE_SCHEMA='750g';

Exemple de résultats :

bloc
link
multicontent
tags_recipes

J’ai filtré ici sur TABLE_SCHEMA pour n’afficher que les résultats de la base sur laquelle je travaille.

Crypter et décrypter un fichier avec gpg (OpenPGP) avec un mot de passe

Pour crypter et décrypter un fichier avec un password, vous pouvez utiliser l’outil gpg disponible en ligne de commande sur la plupart des plateformes.

Crypter un fichier

$ cat test.txt
salut
$ gpg -c test.txt
Entrez la phrase de passe :
Répétez la phrase de passe :

$ rm test.txt

Un fichier binaire test.txt.gpg a été créé. Pour le décrypter :

$ gpg test.txt.gpg
gpg: données chiffrées avec CAST5
gpg: chiffré avec 1 phrase de passe
gpg: Attention : l'intégrité du message n'était pas protégée

Le fichier test.txt a été recréé :

$ cat test.txt
salut

iTerm2 : personnaliser le titre des onglets

Vous pouvez personnaliser le titre d’un terminal avec les séquences d’échappement XTerm, \033]0; et \007

Pour tester directement dans le terminal, si la variable PROMPT_COMMAND n’est pas définie :

echo -ne "\033]0;HELLO\007"

Si vous voulez que le titre soit dynamique, vous pouvez le fixer à chaque exécution d’une commande dans le shell.
Ici, on affichera le chemin courant.

export PROMPT_COMMAND='echo -ne "\033]0;`pwd`\007"'

Pour afficher l’utilisateur courant ainsi que le hostname :

export PROMPT_COMMAND='echo -ne "\033]0;$USER@$HOSTNAME\007"'

Si vous voulez fixer un titre, vous pouvez utiliser par exemple un fichier de configuration dans votre $HOME :

echo "OSX" > $HOME/.term_title
export PROMPT_COMMAND='echo -ne "\033]0;`cat $HOME/.term_title`\007"'

Pour rendre cette commande permanente, il faut l’ajouter au fichier .bash_profile