Buscar

Aula02 Introducao

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais