Comment enregistrer des commandes Linux?

9

Existe-t-il un moyen d'enregistrer les commandes Linux que j'utilise et de les réutiliser sur une autre machine ou au cas où je souhaiterais réinstaller la machine?

Par exemple, enregistrez comment j'ai configuré NginX, PHP et les autorisations dans mon environnement de laboratoire, puis répéter les commandes exactes sur ma machine de déploiement?

Jonas
la source

Réponses:

19

Il me semble que vous voulez un script (1) .

Il vous permet d'enregistrer et de rejouer des sessions de terminal.

D'un autre côté, si vous essayez d'automatiser les configurations, envisagez la gestion de la configuration, comme la marionnette .

ptman
la source
Merci pour Puppet, ça a l'air bien. J'en lirai plus à ce sujet.
Jonas
1
+1 pour Puppet. C'est une bien meilleure façon de procéder que d'enregistrer simplement des commandes shell.
EEAA
+1. cfengine est un concurrent de Puppet, aussi
gWaldo
2

Deux façons de penser du haut de ma tête:

Tourbillon
la source
2

Bash enregistre les commandes dans un fichier appelé ~ / .bash_history. Cela fonctionne si vous faites tout via une ligne de commande et dans une seule fenêtre de commande.

Soyez averti cependant, cela limite la taille de ce fichier aux 1000 dernières commandes (par défaut).

Kevin M
la source
0

essayez ceci

script / tmp / it356658 - $ (uname -n) .out

# Date

Rajat
la source
Il dirige scriptla sortie de vers un fichier particulier. Le nom est inhabituel, mais probablement extrait d'un script shell plus grand.
mctylr
1
Le $(uname -n)est interprété par la ligne de commande pour exécuter la unamecommande avec l' -nindicateur pour imprimer le nom d'hôte du système.
mctylr
0

Je pense que vous pouvez également utiliser autoexpect pour cette tâche.

Anonyme
la source
J'ai obtenu "commande introuvable" dans Ubuntu lorsque je l'ai essayé.
Jonas
1
Je pense que cela ferait partie du package Expect qui peut ne pas être installé par défaut. Ref: linuxjournal.com/article/3065
mctylr
0

Normalement, j'utilise une commande comme history > ~/tmp/hhpour enregistrer un fichier historique. Ensuite vi, j'utilise , saute vers le bas avec la commande G , puis recherche vers le haut jusqu'à ce que je trouve la partie qui serait proche d'un point d'entrée utile dans un script. À partir de là, je réduis les lscommandes superflues , combine des séries d'incrémentales cddans des répertoires, ajoute des commentaires et commence à déterminer quelles parties doivent être des arguments, quelles choses peuvent être des paramètres d'environnement et quelles choses doivent être codées en dur. J'ajoute beaucoup de commentaires. Parfois, je "punt" sur des parties de l'automatisation et je donne juste à l'utilisateur quelques instructions (allez trouver ce paramètre, sshfoo et ..., décommentez blah de ce fichier et déplacez-le vers blarg) ou echoune URL ... et une invite chaîne comme: 'Foo configuré et quitter>'

(Lorsque vous lancez une modification de fichier automatisée ... je suggère d'ajouter le code instructif au fichier, en tant que commentaire, et d'utiliser quelque chose comme le commutateur de ligne de commande vi + pour placer le curseur de l'éditeur près du bas du fichier, en haut de vos instructions. Par exemple, avec 5 lignes de texte instructif (un doc ici par exemple), vous ajouteriez '+$-5'à la viligne de commande, avant le nom du fichier. ( $-5est une ancienne exincantation pour adresser la dernière ligne du fichier, moins cinq lignes; relativement obscur +passage à viaccepte tout ex... : commande ... comme argument).

Une autre astuce ... en supposant que vous faites la plupart de votre travail depuis un terminal système X fenêtrage ( xterm, konsole, gnome-terminal, etc.) , puis garder un navigateur ouvert sur certaines pages wiki que vous allez. Coupez et collez les commandes, la sortie, les extraits de fichiers texte et prenez des notes au fur et à mesure. (Cela suppose principalement que vous travaillez principalement sur vos serveurs à sshpartir de votre poste de travail, ordinateur de bureau, ordinateur portable ou autre).

Épargnez tôt et souvent.

Créez de nouvelles pages wiki pour différents processus ou étapes. Ensuite, reliez-les ensemble et reliez-les à toutes les références sur le net. (Vous savez, toutes ces pages Google que vous avez utilisées à chaque fois que vous vous êtes retrouvé bloqué à tout moment).

Certains de mes meilleurs documents HOWTO ont été créés de cette façon.

Si vous le faites correctement, vous pourrez peut-être retirer le travail de votre assiette à l'ancienne, en déléguant au membre de l'équipe junior ... ou au stagiaire passionné. :)

Jim Dennis
la source