BOMBOLOM.COM

(mix) Utilizar o comando xargs

Em muitas situações queremos aplicar o mesmo comando a vários ficheiros ou de outra forma usar como argumento para um dado comando uma lista qualquer. Podemos querer, por exemplo, modificar o conteúdo de uma colecção de ficheiros de uma forma específica, ou verificar se um determinado serviço está ou não a correr numa colecção de servidores. Nestas situações o comando xargs pode ser muito útil.

Exemplos

Substituir uma dada string numa colecção de ficheiros

Imaginemos que temos um site, com inúmeras páginas html, onde por azar nos enganámos a escrever o nome da empresa. Podemos, nesta situação fazer o seguinte:

Em primeiro lugar fazer backup do nosso site! A seguir mudamos para a directoria onde este está alojado e aplicamos o seguinte comando:

$ grep -rl <string antiga> . | xargs sed -i -e 's/<string antiga>/<nova string>/'

Por exemplo, se escrevemos aosis e queremos mudar para Oásis, basta fazer:

$ grep -rl aosis . | xargs sed -i -e 's/aosis/Oásis/'

Verificar se um dado serviço está a funcionar numa lista de servidores

Com a ajuda do ssh podemos centralizar e automatizar muitas das tarefas de rotina. Se tivermos a seguinte lista de servidores num ficheiro de texto lista_servidores.txt, podemos verificar se, por exemplo, o serviço amavis está a correr em todos eles:

servidor1.example.com
servidor2.example.com

Podemos aplicar o comando:

$ xargs -i ssh -l sysadm {} "/etc/init.d/amavis status" < ./lista_server.txt

Com certeza que encontrarão muitas situações onde o uso deste comando é de um valor inestimável. O próximo passo é ler a respectiva página de manual com bastante atenção!!!

22.08.2007 | Ler mais | Comentários |

Voltar à Página principal | Made with PyBlosxom