Come posso registrare i comandi Linux?


9

Esiste un modo per registrare i comandi Linux che utilizzo e riutilizzarli su un'altra macchina o nel caso in cui volessi reinstallare la macchina?

Ad esempio, registrare come ho impostato NginX, PHP e le autorizzazioni nel mio ambiente di laboratorio e quindi ripetere i comandi esatti sulla mia macchina di distribuzione?

Risposte:


19

Mi sembra che tu voglia lo script (1) .

Ti permette di registrare e riprodurre sessioni terminali.

D'altra parte, se stai cercando di automatizzare le impostazioni, considera la gestione della configurazione, come un pupazzo .


Grazie per Puppet, sembra buono. Ne leggerò di più.
Jonas

1
+1 per Puppet. Questo è un modo molto migliore di andare semplicemente registrando i comandi della shell.
SEE

+1. cfengine è anche un concorrente di Puppet
gWaldo

2

Due modi in cui riesco a pensare dalla parte superiore della mia testa:


2

Bash registra i comandi in un file chiamato ~ / .bash_history. Funziona se fai tutto tramite una riga di comando e in una finestra di comando.

Attenzione però, limita la dimensione di quel file ai più recenti comandi 1000 (di default).


0

prova questo

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

# Data


Sta dirigendo scriptl'output su un determinato file. Il nome è insolito, ma probabilmente estratto da uno script di shell più grande.
McTlr

1
Il $(uname -n)è interpretato dalla linea di comando per eseguire il unamecomando con la -nbandierina di stampare il nome host del sistema.
McTlr

0

Penso che potresti anche usare autoexpect per questo compito.


Ho ottenuto "comando non trovato" in Ubuntu quando l'ho provato.
Jonas

1
Penso che sarebbe parte del pacchetto Expect che potrebbe non essere installato per impostazione predefinita. Rif: linuxjournal.com/article/3065
mctylr

0

Normalmente uso un comando come history > ~/tmp/hhper salvare un file di cronologia. Quindi uso vi, salto in fondo con il comando G e quindi cerco verso l'alto fino a trovare la parte che si troverebbe vicino a un utile punto di ingresso in uno script. Da lì comprendo lscomandi estranei , combino una serie di incrementali cdin directory, aggiungo commenti e inizio a capire quali parti devono essere argomenti, quali elementi potrebbero essere impostazioni dell'ambiente e quali elementi devono essere codificati. Aggiungo molti commenti. A volte "punt" su parti dell'automazione e do solo all'utente alcune istruzioni (vai a trovare questa impostazione, ssha pippo e ..., decommenta blah da questo file e spostalo su blarg) o echoun URL ... e un prompt stringa come: "Configurato Foo ed esci>"

(Quando si punta su una modifica automatica del file ... Suggerisco di aggiungere il codice istruttivo al file, come commento, e utilizzare qualcosa come l' opzione vi + della riga di comando per posizionare il cursore dell'editor vicino alla parte inferiore del file, nella parte superiore delle tue istruzioni. Ad esempio con 5 righe di testo istruttivo (un documento qui per esempio) che dovresti aggiungere '+$-5'alla viriga di comando, prima del nome del file. ( $-5è un vecchio exincantesimo per indirizzare l'ultima riga del file, meno cinque righe; la relativamente oscuro +passaggio a viaccetta qualsiasi ex... : il comando ... come argomento).

Un altro trucco ... supponendo che si svolge gran parte del lavoro da un terminale X Window System ( xterm, konsole, gnome-terminal, ecc) poi tenere un browser aperto su alcune pagine del wiki, come si va. Taglia e incolla i comandi, l'output, i frammenti di file di testo e annota le note mentre procedi. (Questo presuppone principalmente che lavori principalmente sui tuoi server sshdalla tua workstation, desktop, laptop o qualsiasi altra cosa).

Risparmia presto e spesso.

Crea nuove pagine wiki per diversi processi o fasi. Quindi collegarli insieme e collegarli a tutti i riferimenti in rete. (Sai, tutte quelle pagine di Google che hai usato ogni volta che ti sei bloccato in qualsiasi momento).

Alcuni dei miei migliori documenti HOWTO sono stati creati in questo modo.

Se lo fai nel modo giusto, potresti essere in grado di toglierti il ​​lavoro dal piatto alla vecchia maniera, delegando al membro del team junior ... o al tirocinante desideroso. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.