Como posso gravar comandos do Linux?


9

Existe uma maneira de gravar os comandos do Linux que eu uso e reutilizá-los em outra máquina ou no caso de eu querer reinstalar a máquina?

No exemplo, registre como eu configuro o NginX, PHP e permissões no meu ambiente de laboratório e repita os comandos exatos na minha máquina de implantação?

Respostas:


19

Parece-me que você deseja o script (1) .

Permite gravar e reproduzir sessões de terminal.

Por outro lado, se você estiver tentando automatizar configurações, considere o gerenciamento de configurações, como o fantoche .


Obrigado por Puppet, parece bom. Vou ler mais sobre isso.
Jonas

1
+1 para fantoche. Este é um caminho muito melhor do que simplesmente gravar comandos do shell.
EEAA

+1. cfengine é um concorrente para Puppet, também
gWaldo

2

Duas maneiras de pensar em cima da minha cabeça:

  • Use o histórico de comandos interno

  • Faça tudo em uma sessão de tela e ative o log


2

O Bash registra comandos em um arquivo chamado ~ / .bash_history. Isso funciona se você fizer tudo através de uma linha de comando e em uma janela de comando.

Esteja avisado, porém, limita o tamanho desse arquivo aos comandos 1000 (por padrão) mais recentes.


0

tente isso

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

# encontro


Ele está direcionando scripta saída de um arquivo específico. A nomeação é incomum, mas provavelmente extraída de um script de shell maior, talvez.
Mctylr 6/03/10

1
O $(uname -n)é interpretado pela linha de comando para executar o unamecomando com o -nsinalizador para imprimir o nome do host do sistema.
Mctylr 6/03/10


0

Normalmente eu uso um comando como history > ~/tmp/hhpara salvar um arquivo de histórico. Então eu uso vi, pulo para baixo com o comando G e procuro para cima até encontrar a parte que estaria perto de um ponto de entrada útil em um script. A partir daí, recolho lscomandos estranhos , combino séries de incrementais cdem diretórios, adiciono comentários e começo a descobrir quais partes precisam ser argumentos, quais coisas podem ter que ser configurações do ambiente e quais devem ser codificadas. Eu adiciono muitos comentários. Às vezes eu "insiro" partes da automação e apenas dou ao usuário algumas instruções (vá encontrar essa configuração, sshfoo e ..., remova o comentário blah deste arquivo e mova-o para blarg) ou echoum URL ... e um prompt string como: 'Configurado Foo e exit>'

(Quando você executa uma edição automatizada de arquivo ... sugiro anexar o código instrutivo ao arquivo como um comentário e usar algo como a opção da linha de comando vi + para colocar o cursor do editor na parte inferior do arquivo, na parte superior. Por exemplo, com 5 linhas de texto instrutivo (um documento aqui, por exemplo), você adicionaria '+$-5'à vilinha de comando, antes do nome do arquivo ( $-5é um antigo exencantamento para endereçar a última linha do arquivo, menos cinco linhas; a relativamente obscura +interruptor para viaceita qualquer ex... : comando ... como um argumento).

Outro truque ... supondo que você faz a maioria de seu trabalho a partir de um terminal X Windowing System ( xterm, konsole, gnome-terminal, etc), em seguida, manter um browser aberto em algumas páginas wiki que você vá. Cortar e colar comandos, saída, trechos de arquivos de texto e anotar notas à medida que avança. (Isso geralmente pressupõe que você esteja trabalhando nos servidores a sshpartir da estação de trabalho, desktop, laptop ou o que for).

Economize cedo e frequentemente.

Crie novas páginas wiki para diferentes processos ou estágios. Em seguida, vincule-os e vincule-o a qualquer referência na rede. (Você sabe, todas as páginas do Google que você usava toda vez que ficava preso a qualquer momento).

Alguns dos meus melhores documentos HOWTO foram criados dessa maneira.

Se você fizer isso da maneira certa, poderá conseguir o emprego da maneira antiquada, delegando ao membro da equipe júnior ... ou ao ansioso estagiário. :)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.