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?
Deux façons de penser du haut de ma tête:
Utilisez la commande builtin historique
Tout faire dans une session d'écran et activer la journalisation
la source
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).
la source
essayez ceci
script / tmp / it356658 - $ (uname -n) .out
# Date
la source
script
la sortie de vers un fichier particulier. Le nom est inhabituel, mais probablement extrait d'un script shell plus grand.$(uname -n)
est interprété par la ligne de commande pour exécuter launame
commande avec l'-n
indicateur pour imprimer le nom d'hôte du système.Je pense que vous pouvez également utiliser autoexpect pour cette tâche.
la source
Normalement, j'utilise une commande comme
history > ~/tmp/hh
pour enregistrer un fichier historique. Ensuitevi
, 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 lesls
commandes superflues , combine des séries d'incrémentalescd
dans 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,ssh
foo et ..., décommentez blah de ce fichier et déplacez-le vers blarg) ouecho
une 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'
à lavi
ligne de commande, avant le nom du fichier. ($-5
est une ancienneex
incantation pour adresser la dernière ligne du fichier, moins cinq lignes; relativement obscur+
passage àvi
accepte toutex
... : 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 àssh
partir 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é. :)
la source