Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação para Servidores Aula 02 2014 Sumário • Contextualização; • Definição de shell; • Shell scripts; • Programação shell script; • Primeiro script. 2 Banco de Dados – prof. Romualdo Costa Contexto – SO • Sistema operacional: responsável por gerenciar os recursos dos computadores e fornecer a base sobre a qual os aplicaKvos serão escritos. – Interface pela qual o usuário se comunica com o computador através de entradas e saídas, ou seja, é o meio comunicador entre o usuário e a máquina. 3 Banco de Dados – prof. Romualdo Costa Contexto – Kernel • O kernel (núcleo) abstrai a interface de hardware fazendo com que os processos uKlizem os recursos do computador de forma organizada. – Aloca memória para as aplicações, – Gerencia processos dando prioridade aos mais importantes, – Gerencia o hardware do computador alocando-‐o para os vários processos que concorrem pelo seu uso. 4 Banco de Dados – prof. Romualdo Costa Contexto – Shell • O shell é uma camada acima do kernel, através da qual o usuário faz as requisições para o kernel para que este entre em contato com o hardware. – É um programa que estabelece a interface entre o usuário e as diversas funções e serviços do sistema operacional (kernel); • Resumindo: o shell pode ser visto como um interpretador de comandos que transmite ao kernel o que deve ser realizado. 5 Banco de Dados – prof. Romualdo Costa Contexto – Shell 6 Banco de Dados – prof. Romualdo Costa Shell script • Em geral, os shell’s oferecem duas formas de uso: – Na linha de comandos, pode-‐se digitar diversos comandos um após o outro. – Através de scripts, que consistem em várias linhas de comandos em um arquivo texto simples. Uma vez criado, um shell script pode ser reuKlizado quantas vezes for necessário. • Em ambos os casos: – O shell interpreta os comandos, examina suas sintaxes e os repassa para o kernel executar; 7 Banco de Dados – prof. Romualdo Costa Scripts • Um script consiste em um conjunto de instruções a serem executadas dentro de algum programa ou ambiente específico. • Em geral, são uKlizados para estender a funcionalidade de um programa e/ou controlá-‐lo. – Podem atuar como ferramentas de configuração e instalação em sistemas operacionais (Shell script); – Em jogos, para controlar as ações dos personagens e o ambiente de batalha. • Apesar da semelhança, scripts não são programas! 8 Banco de Dados – prof. Romualdo Costa Shell script • Podemos dizer então que um Shell Script é uma espécie de roteiro a ser interpretado pelo shell: – São uKlizados em vários sistemas operacionais; – Podem ser escritos em qualquer editor de textos; – Suportam desde simples comandos como criar um diretório (mkdir) até poderosos scripts de configuração; – Podem ser uKlizados para: • Apagar periodicamente arquivos anKgos de uma pasta; • Realizar um back-‐up do sistema; • Configurar vários servidores distribuídos geograficamente. 9 Banco de Dados – prof. Romualdo Costa Shell script • Uma vez criado, um Shell Script pode ser reuKlizado quantas vezes for necessário. – Portanto, é indicado na automação de tarefas que serão realizadas mais de uma vez. • Todo sistema Unix e similares são repletos de shell scripts para a realização das mais diversas aKvidades administraKvas e de manutenção do sistema. 10 Banco de Dados – prof. Romualdo Costa Shell script • Os shell scripts podem ser agendados para execução futura através da tabela crontab. – Ferramenta indispensável aos administradores de sistemas Unix-‐like. • Os arquivos de lote (batch – .bat) do windows são também exemplos de shell scripts: – Interpretados e executados pelo shell do Windows (em geral o command.com ou o cmd.exe) 11 Banco de Dados – prof. Romualdo Costa Shell script • Dentre as principais razões para se uKlizar shell scripts, podem ser citadas: – Simplicidade – é possível expressar operações complexas de forma simples. – Portabilidade – por ser universal entre sistemas Unix, existe uma grande chance de um shell script escrito para um sistema ser transferido para outro sem necessidade de alterações. – Facilidade de desenvolvimento – pode-‐se desenvolver um shell script poderoso e úKl em pouco tempo. 12 Banco de Dados – prof. Romualdo Costa Shell • O Shell mais comum e também um dos mais anKgos e simples é o sh. – Está presente em todos os sistemas Kpo Unix, incluíndo: Linux, FreeBSD, OpenBSD, NetBSD, AIX, HP-‐UX, Solaris, Irix, etc. • Existem diferenças entre os comandos e serviços oferecidos de um shell para outro. – Além disso, nem todo shell está presente em todos os SO’s • Outro shell muito uKlizado é o bash que foi desenvolvido para o projeto GNU e se tornou padrão para várias distribuições Linux.13 Banco de Dados – prof. Romualdo Costa Shell • Os Shells em geral não estão diretamente associados a um ou outro SO: – Um Shell, quando presente em várias plataformas, é exatamente o mesmo em todas elas. • Por exemplo, o bash encontrado no Linux é o mesmo shell bash encontrado no FreeBSD e no Windows através do Cygwin e pode também facilmente ser instalado no Solaris ou outros sistemas Unix comerciais. • Assim, é comum e natural que se prefira escrever scripts para um shell mais po, tornando o script mais facilmente portável para outro sistema. 14 Banco de Dados – prof. Romualdo Costa Programação script • O conhecimento básico de programação script é essencial para quem deseja tornar-‐se um administrador de sistemas. – Por exemplo, durante o processo de boot, uma máquina Linux executa vários shell scripts para configurar o sistema e os serviços. Uma compreensão detalhada de tais scripts de inicialização é importante para analisar o comportamento de um sistema e, possivelmente, modificá-‐lo. 15 Banco de Dados – prof. Romualdo Costa Programação script • A programação script não é dipcil de dominar, pois scripts podem ser construídos em pequenas seções, exisKndo apenas um conjunto relaKvamente pequeno de operadores específicos e opções para aprender. – A sintaxe é simples e direta, semelhante à execução de forma encadeada de uKlitários na linha de comando, e há apenas algumas regras que regem a sua uKlização. 16 Banco de Dados – prof. Romualdo Costa Exemplo 1 • Para criar e executar seu primeiro script: 1. Abra um editor de textos, digite os comandos e salve o arquivo de preferência com extensão .sh 2. Dê a este novo arquivo permissão para execução: chmod +x nome.sh 3. Execute o script: ./nome.sh 17 Banco de Dados – prof. Romualdo Costa Exemplo 1 • Primeiro exemplo: # Este script exibe a data, hora, usuário e # o diretório atual. printf "Data e hora: "; date; printf "Usuario: `whoami` \n"; printf "Diretorio atual: `pwd`\n"; 18 Banco de Dados – prof. Romualdo Costa Exemplo 1 • Caso seu script tenha sido editado no Windows, pode haver problemas de compaKbilidade; – Arquivos texto com o caractere ‘\r’ ao final das linhas causam problemas quando tentamos executá-‐los – Para resolver, basta executar um comando para remover os caracteres ‘\r’: tr -d ‘\r’ < nome.sh > nome2.sh – NÃO USE o mesmo nome do arquivo de entrada para o arquivo de saída! Programação para Servidores – prof. Alexandre Duarte 19 Exemplo 2 • Que tal então criarmos um script que automaKze estas tarefas que acabamos de explicar: 1. Remover os caracteres ‘\r’ 2. Dar permissão para executar o arquivo #Este script transforma um arquivo criado #no Windows num script executavel no Linux tr -d '\r' < $1 > tmp.sh mv tmp.sh $1 chmod +x $1 Programação para Servidores – prof. Alexandre Duarte 20 Estudo dirigido • Leitura do capítulo 2 do livro: “Classic Shell ScripKng” 21 Banco de Dados – prof. Romualdo Costa Próxima semana... • Scripts vs. linguagens compiladas; • Variáveis; • Comandos de entrada e saída; • Caracteres especiais. 22 Banco de Dados – prof. Romualdo Costa
Compartilhar