/home / fatec / progscripts --::-- |
Programação de Scripts e Verificação de Logs
Prof. Rossano Pablo Pinto, MSc.
Esta página é melhor visualizada no navegador Firefox.
AulasSemanal 4; Semestral 72; Carga horária: 60 h.Ementa resumidaParadigmas de programação implementados em linguagens de script; Manipulação de arquivos e bancos de dados usando scripts; Programação em linguagens de scripts; Integração de programas escritos em linguagens de scripts com outras linguagens. Manutenção dos arquivos do Sistema (Arquivos de Log).CRITÉRIOS DE AVALIAÇÃOProva, Trabalhos, Atividades e projetos.Média Final = (Prova1 * 0.35) + (Prova2 * 0.35) + (Trabalhos/Atividades * 0.1) + (Projetos * 0.2). Se Média Final >= 6.0 e faltas >= (CH * 0,75), aluno aprovado Uma prova substitutiva será realizada apenas por alunos que estiverem ausentes na Prova 1 ou na Prova 2. DATAS DAS AVALIAÇÕESTURMA DA MANHÃ05/04/2012 - Avaliação 1 - LOCAL: Sala E2
31/05/2012 - Avaliação 2 - LOCAL: Sala E2
31/05/2012 - Apresentação de projeto - LOCAL: Laboratório 5
14/06/2012 - Avaliação SUB - LOCAL: Sala E2
14/06/2012 - Apresentação de projeto -LOCAL: Laboratório 5
TURMA DA NOITE 24/05/2012 - Avaliação 1 - LOCAL: Sala B10 (ao lado do auditório do Bloco B)
20/06/2012 (quarta-feira das 19:00 às 20:40) - Avaliação 2 - LOCAL: Sala E2 (no bloco A) 21/06/2012 (quinta-feira das 19:00 às 20:40) - Avaliação SUB - LOCAL: Sala B10 (ao lado do auditório do Bloco B) 21/06/2012 (quinta-feira das 20:50 às 22:30) - Apresentação de projeto - LOCAL: Sala B10 (ao lado do auditório do Bloco B) NOTAS P1,P2,SUB,PROJETO - Média Final (MF)PLANILHA DE NOTAS TURMA DA NOITE - 1s2012 REQUISITOS DO PROJETOMaterial de ApoioSlackware Book Fstab UUID Apostilas Linux AtividadesLista de exercícios 1 - entrega dia 15/03 (TURMA DA MANHÃ)Lista de exercícios 1 - entrega dia 22/05 (TURMA DA NOITE) EXECUTE TODOS OS COMANDOS COMO USUÁRIO ALUNO (OU OUTRO S/ PODERES ADMINISTRATIVOS). 0. Responda: 0.1 Quais são os file descriptors de STDOUT, STDERR e STDIN ? 0.2 Indique quais são os operadores para redireção de: SAÍDA PADRÃO SEM APPEND SAÍDA DE ERRO SEM APPEND SAÍDA PADRÃO COM APPEND SAÍDA DE ERRO COM APPEND SAÍDAS PADRÃO E DE ERRO SEM APPEND SAÍDAS PADRÃO E DE ERRO COM APPEND ENTRADA PADRÃO 1. Redirecione a saída STDOUT dos comandos a seguir para os arquivos indicados (sem append): Comando Arquivo ps ax saida1.ps.txt ps aux saida2.ps.txt ls /etc saida3.ls.txt 2. Redirecione a saída STDERR dos comandos a seguir para os arquivos indicados (sem append): Comando Arquivo ls /root saida4.ls.txt kill -9 1 saida5.kill.txt touch /root/x saida6.touch.txt 3. Redirecione as saídas SDTDOUT e STDERR dos comandos a seguir para os arquivos indicados: Comando Arquivo ls /etc/* /root/* saida7.ls.txt touch X Y /root/Z saida8.touch.txt 4. Repita os exercícios 1, 2 e 3 com APPEND redirecionando todas as saídas para um único arquivo: saida9.comum.txt 5. Redirecione a entrada STDIN dos comandos a seguir: cut sed 6. Teste o comando a seguir: tr a-z A-Z < /etc/passwd 6.1 O que ele faz ? 6.2 Qual o papel do operador < na linha de comando apresentada? 6.3 O que a linha de comando a seguir faz?: tr a-d A-Z < /etc/passwd > /tmp/rascunho 6.4 Qual o papel dos operadores < e > na linha de comando da questão 6.3? 7. Suponha que você queira apresentar na tela apenas a primeira linha da saída do comando /sbin/ifconfig eth0. 7.1. Quais seriam os comandos executados? 7.2. Qual é o nome do mecanismo que envia a saída de um processo para a entrada de outro? 7.3. Qual é o operador (símbolo) para executar a comunicação entre processos da questão 7.2? 8. Qual deve ser a primeira linha de todo script? Qual o significado dela ? Lista de exercícios 2 - entrega dia 22/03 (TURMA DA MANHÃ) Lista de exercícios 2 - entrega dia 22/05 (TURMA DA NOITE) 9. Suponha que o administrador de sistemas da FATEC Americana execute a seguinte linha de comando: ./addusers.sh users plugdev,cdrom,staff /bin/bash 9.1. Qual é a variável do bash que armazena o valor "./addusers.sh"? 9.2. Quais são as variáveis que armazenam os valores "users", "plugdev,cdrom,staff" e "/bin/bash"? 9.3. Qual é a variável que armazena o número de parâmetros passados na linha de comando? 9.4. Qual é a variável que armazena a lista completa de parâmetros passados na linha de comando? 10. O arquivo /etc/passwd armazena a lista de todos os usuários de um sistema Linux. Cada linha do arquivo possui a seguinte estrutura (leia a página manual com o comando "man 5 passwd"): USERNAME:PASSWORD:UID:GID:COMMENT:HOME:COMMAND_INTERPRETER 10.1. Qual é o comando utilizado para extrair apenas alguns campos da linha? 10.2. Extraia apenas os campos USERNAME, UID e COMMENT da seguinte linha: ze:x:1070:100:Usuário Ze - telefone 555-1111:/home/ze/:/bin/bash 10.3. Apresente na tela o conteúdo do arquivo /etc/passwd organizado por ordem alfabética do campo USERNAME. Faça a mesma operação para o campo COMMENT. 11. O administrador de sistemas da FATEC Americana precisa enviar uma notificação aos usuários do sistema. A notificação possui o seguinte texto: "Prezado USUARIO, a partir de DIADASEMANA, dia DIADOMES, passaremos a limpar a área pública dos HDs dos laboratórios de informática. Solicitamos que façam backup dos seus dados. Att, ADMIN." 11.1. Qual é o comando que deve ser executado para que as palavras USUARIO, DIADASEMANA, DIADOMES e ADMIN, sejam trocadas para "Paulo", "segunda-feira", "17-10-2011" e "Neo"? 11.2. Elabore um outro exemplo completo. 12. Faça um script que apresente os parâmetros passados na linha de comando a seguir: ./meuscript.sh usuario1 usuario2 usuario3 usuario4 O resultado deve ser algo como: "PARAMETRO: usuario1 PARAMETRO: usuario2 PARAMETRO: usuario3 PARAMETRO: usuario4" OBS.: Utilize o "for". Lista de exercícios 3 - entrega dia 05/04 (TURMA DA MANHÃ) Lista de exercícios 3 - entrega dia 24/05 (TURMA DA NOITE) 13. O "for" em bash shell script possui o seguinte formato: for VARIAVEL in LISTA; do AÇÕES done A lista pode ser gerada de diversas maneiras. Suponha que a lista seja composta de todos os arquivos do diretório /home/aluno/fotos. Faça um script que liste todos os arquivos do referido diretório e, como ação, imprima na tela: "FOTOGRAFIA: arquivo", onde "arquivo" representa um dos arquivos presentes no diretório. DICA: utilize $(comando) ou `comando` para gerar a lista. 14. Utilize o comando find para encontrar todos os arquivos que possuem a extensão .conf do diretório /etc. 15. Qual o significado das seguintes variáveis do shell? $0 $1 $# $@ $! $$ $? 16. Liste todos os usuários do sistema. Para cada usuário, imprima: USERNAME, PID, GRUPO PRIMÁRIO e GRUPOS SECUNDÁRIOS 17. Explore os seguintes comandos em 2+ scripts: cat cd chmod cut echo find grep head kill ls mkdir ps rm rmdir /sbin/ifconfig sed sort tail tee touch 18. Execute os seguintes comandos em sequência: cd touch prova3 mkdir diversos touch diversos/prova3 touch prova1 prova2 prova3 prova4.txt mkdir -p diversos/prova2/prova2 echo "Questao 4" > diversos/prova2/prova2.txt Encontre: A) o diretório prova2 B) os arquivos prova4.txt e prova2.txt C) Arquivo com o conteúdo "Questao 4" 19. Qual a saída do seguinte script? nome="Joseh" var1="Meu nome eh $nome" var2='Meu nome eh $nome' echo $nome echo $var1 echo $var2 20. Faça um script que apresente na tela o nome de todos os arquivos do diretório /var/log que possuam permissão de leitura pelo usuário corrente. 21. Elabore um script para criar a conta de 50 usuários. A lista de usuários está presente no arquivo contas-2011-10-17.txt. Cada linha so arquivo possui o seguinte formato: USERNAME ; NOME COMPLETO ; GRUPO PRIMÁRIO ; GECOS Utilize "for" ou "while". 22. Faça um script que elabore as seguintes perguntas para o usuário e decida as ações com base nas respostas: Qual é o seu nome completo? Você aceita o username $USERNAME? ($USERNAME deve ser extraido do primeiro nome digitado do nome completo) Se "sim", passe para a próxima questão. Se "não", peça para o usuário digitar o username desejado. Lista de exercícios 4 - entrega dia 24/05 (TURMA DA MANHÃ) Lista de exercícios 4 - entrega dia 14/06 (TURMA DA NOITE) 23. O programa FinalFrontier2013 precisa dos seguintes serviços sendo executados conforme indicado: rmiregistry na porta 8888 (O PID não é armazenado automaticamente) /usr/sbin/sshd na porta 9999 (O PID do sshd é automaticamente armazenado em /var/run/sshd.pid) Faça um script que possa ser invocado com as opções (utilize case): start -> deve verificar se os serviços necessários já estão executando (rmiregistry, sshd e FinalFrontier2013). Caso já estejam, emita uma mensagem indicando isso e finalize o script. Caso contrário, inicie todos os serviços necessários. stop -> finalize os serviços rmiregistry, sshd e FinalFrontier2013 restart -> ação de stop + start help-> imprime um breve help do script status-> apresenta as informações dos serviços em execução (se estão sendo executados ou não) 24. O comando "ldd $(which sshd)" lista todas as bibliotecas utilizadas pelo programa sshd, conforme apresentado a seguir: linux-gate.so.1 => (0xb7f16000) libwrap.so.0 => /lib/libwrap.so.0 (0xb7ed5000) libpam.so.0 => /lib/libpam.so.0 (0xb7ec9000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ec4000) libselinux.so.1 => /lib/libselinux.so.1 (0xb7eaa000) libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7e96000) libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7d4a000) libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb7d46000) libz.so.1 => /usr/lib/libz.so.1 (0xb7d30000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7d16000) libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7ce4000) libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7cb9000) libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7c27000) libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7c03000) libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7bff000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7aa0000) /lib/ld-linux.so.2 (0xb7efc000) libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7a97000) libkeyutils.so.1 => /lib/libkeyutils.so.1 (0xb7a93000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7a7a000) Faça um script que verifique se cada uma das bibliotecas listadas estão presentes no sistema. DICA: Utilize "for" e uma das duas estratégias: A) os operadores de teste de arquivo da estrutura de controle "if" e "else" (-f, -e, -s, etc..). B) && e || para o comando ls 25. Escreva um script para detectar quais são os 3 primeiros octetos do endereço IP da interface eth0. Executar o comando ping, dentro de um "for", para as máquinas com os endereços da mesma rede que possuem como quarto octeto os valores 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 49, 50, 51, 52, 53, 54. O comando ping deve ser invocado com os parâmetros "-c 1" e "-w 1". 26. Faça um script que configure 10 interfaces de rede. Cada interface deve ser configurada com as seguintes informações: - Endereço IP - Máscara Utilize ARRAYS para armazenar as configurações das interfaces. 27. Modificar o script /etc/rc.d/rc.yp da seguinte maneira: - Quebrar em 2 scripts (rc.ypserver e rc.ypclient) - Parte comum deve estar presente em ambos os scripts - Utilizar "case" com 'start', 'stop', 'restart' e 'status' - Armazenar os PIDs nos arquivos: /tmp/yppasswd.pid /tmp/ypserv.pid /tmp/ypclient.pid - Antes de 'start' verificar se daemons já estão em execução 28. Faça um script que calcule a expressão matemática: A * B / C Links Interessantes |
Faculdade de Tecnologia de Americana :: Curso de Análise de Sistemas e Tecnologia da Informação Rua Emílio de Menezes, s/n, Vila Amorim - Tel. +55 (19) 3406-5776 CEP: 13.469-111 / Americana / SP / Brasil Copyleft 2007-2010 Rossano Pablo Pinto Atualizada em Thu Feb 3 12:49:19 BRST 2011 |