Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Manter os scripts em execução

Ao desenvolver nosso programa, é útil mantê-lo em um estado executável. Fazendo isso e testando com frequência, podemos detectar erros no início do processo de desenvolvimento. Isso tornará a depuração de problemas muito mais fácil. Por exemplo, se executarmos o programa, fizermos uma pequena alteração e, em seguida, executarmos o programa novamente e encontrarmos um problema, é muito provável que a alteração mais recente seja a origem do problema. Adicionando as funções vazias, chamadas tocos na linguagem do programador, podemos verificar o fluxo lógico de nosso programa em um estágio inicial. Ao construir um esboço, é uma boa ideia incluir algo que forneça feedback ao programador, mostrando que o fluxo lógico está sendo executado. Se olharmos para a saída de nosso script agora:



[me @ linuxbox ~] $ sys_info_page

Relatório de informações do sistema para twin2

[me @ linuxbox ~] $ sys_info_page

Relatório de informações do sistema para twin2


Relatório de informações do sistema para linuxbox

Gerado em 03/19/2009 04:02:10 PM EDT, por mim


Relatório de informações do sistema para linuxbox

Gerado em 03/19/2009 04:02:10 PM EDT, por mim



vemos que há algumas linhas em branco em nossa saída após o carimbo de data / hora, mas não podemos ter certeza da causa. Se mudarmos as funções para incluir algum feedback:



report_uptime() {

echo "Função report_uptime executada."

retorno

}


report_disk_space () {

echo "Função report_disk_space executada."

retorno

}


report_home_space () {

echo "Função report_home_space executada."

retorno

}

report_uptime() {

echo "Função report_uptime executada."

retorno

}


report_disk_space () {

echo "Função report_disk_space executada."

retorno

}


report_home_space () {

echo "Função report_home_space executada."

retorno

}


e execute o script novamente:



[me @ linuxbox ~] $ sys_info_page

Relatório de informações do sistema para linuxbox

Relatório de informações do sistema para linuxbox

Gerado em 03/20/2009 05:17:26 AM EDT, por mim Função report_uptime executada.

Função report_disk_space executada. Função report_home_space executada.

[me @ linuxbox ~] $ sys_info_page

Relatório de informações do sistema para linuxbox

Relatório de informações do sistema para linuxbox

Gerado em 03/20/2009 05:17:26 AM EDT, por mim Função report_uptime executada.

Função report_disk_space executada. Função report_home_space executada.

Manter os scripts em execução


agora vemos que, de fato, nossas três funções estão sendo executadas.

Com nossa estrutura de funções instalada e funcionando, é hora de detalhar um pouco o código da função. Primeiro, o report_uptime função:


report_uptime() {

gato << - _EOF_

Tempo de atividade do sistema

$ (tempo de atividade)

_EOF_

retorno

}

report_uptime() {

gato << - _EOF_

Tempo de atividade do sistema

$ (tempo de atividade)

_EOF_

retorno

}


É muito simples. Usamos um documento here para gerar um cabeçalho de seção e a saída do uptime comando, rodeado por tags para preservar a formatação do comando. o report_disk_space função é semelhante:


report_disk_space () {

gato << - _EOF_

Utilização de espaço em disco

$ (df -h)

_EOF_

retorno

}

report_disk_space () {

gato << - _EOF_

Utilização de espaço em disco

$ (df -h)

_EOF_

retorno

}


Esta função usa o df -h comando para determinar a quantidade de espaço em disco. Por fim, vamos construir o report_home_space função:


report_home_space () {

gato << - _EOF_

Utilização do espaço doméstico

$ (du -sh / home / *)

_EOF_

retorno

}

report_home_space () {

gato << - _EOF_

Utilização do espaço doméstico

$ (du -sh / home / *)

_EOF_

retorno

}


Usamos o du comando com o SH opções para executar esta tarefa. Isso, entretanto, não é uma solução completa para o problema. Embora funcione em alguns sistemas (Ubuntu, por exemplo), não funcionará em outros. A razão é que muitos sistemas definem as permissões dos diretórios pessoais para evitar que sejam legíveis por todos, o que é uma medida de segurança razoável. Nestes sistemas, o report_home_space função, conforme escrita, irá


imagem

só funciona se nosso script for executado com privilégios de superusuário. Uma solução melhor seria fazer com que o script ajuste seu comportamento de acordo com os privilégios do usuário. Vamos abordar isso no próximo capítulo.


Funções de shell em seu arquivo .bashrc

As funções do shell são excelentes substitutos para apelidos e, na verdade, são o método preferido de criação de pequenos comandos para uso pessoal. Os aliases são muito limitados no tipo de comandos e recursos do shell que suportam, enquanto as funções do shell permitem qualquer coisa que possa ser programada. Por exemplo, se gostamos do report_disk_space função shell que desenvolvemos para nosso script, poderíamos criar uma função semelhante chamada ds para nós .bashrc arquivo:

ds() {

echo “Utilização do espaço em disco para $ HOSTNAME” df -h

}


Top OS Cloud Computing na OnWorks: