Apostila Avançada em Programação Shell Script - Reinaldo Marques
Apostila Automatizando Tarefas Com Shell Script II
-
Upload
edilsonlucena1993 -
Category
Documents
-
view
214 -
download
0
Transcript of Apostila Automatizando Tarefas Com Shell Script II
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 1/10
4451
Linux System Administration
www.4linux.com.br
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 2/10
Conteúdo
Automatizando Tarefas com Shell Script II 2
5.1 Introdução Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.2 Utilizando a estrutura “case” . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.3 Utilizando a estrutura “while” . . . . . . . . . . . . . . . . . . . . . . . . 5
5.4 Utilizando a estrutura “for” . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.5 Transformar Shell Script em binário . . . . . . . . . . . . . . . . . . . . . 8
2
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 3/10
Automatizando Tarefas com Shell
Script II
5.1 Introdução Teórica
Tarefas administrativas são, muitas vezes, longas e repetitivas. Podemos automa-
tizar esses procedimentos através de “scripts”. Como exemplo podemos utilizar o
"case"para comandos de fluxo, tal como é o if, mas enquanto if testa expressões não
exatas, o "case"vai agir de acordo com resultados exatos.
Temos o "while"para testa continuamente uma expressão, até que ela se torne falsa,
e ainda contamos com o laço "for"que vai substituindo uma variável por um valor,e
vai executando os comandos que são pedidos.
5.2 Utilizando a estrutura “case”
Outra estrutura bastante útil quando vários “if” precisam ser declarados é a estrutura“case”.
case <valor> in <padrão1>) comandos ;; <padrão2>) comandos ;; <padrão3>)
comandos ;; *) comandos ;; esac
3
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 4/10
5.2 Utilizando a estrutura “case” 4Linux – www.4linux.com.br
Exemplo 1: Executar comandos dependendo do usuário digitado.
1 # ! / b i n / b a s h
23 clear
4 e ch o " D ig it e u m n om e d e u su á r io "
5 r e a d U s u a ri o
6 c as e $ U su a ri o i n
7 a l u no )
8 cl ear ; ls / etc ; cal ; date
9 ;;
10 r oo t )
11 c l ea r ; w h oa m i
12 ;;
13 *)
14 clear
15 e ch o $ U su a ri o n ã o e x is t e
16 ;;
17 esac
Exemplo 2: Script que exibe informações do sistema.
1 # ! / b i n / b a s h
2 clear
3 e ch o " E sc ol ha u ma o pç ã o p ar a i nf or ma ç õ es d a m aq ui na ( D ig it e o n um er o
) "
4 e ch o " 1 - H or a ri o d o s i st e ma "
5 e ch o " 2 - Te mp o q ue o s er vi do r e st a l ig ad o "
6 e ch o " 3 - Q u an t id a de d e u su á r i o l o ga d os "
7 e c h o " 4 - S a i r "
8 r ea d E SC
9 c as e $ ES C in
10 1)
11 H =$ ( up ti me | aw k -F " " ’{ p ri nt $ 1 } ’)
12 e ch o " A go ra s ã o $ H"
Página 4 Linux System Administration
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 5/10
4Linux – www.4linux.com.br 5.3 Utilizando a estrutura “while”
13 ;;
14 2)
15 T =$ ( up ti me | aw k -F " " ’{ p ri nt $ 3 } ’)
16 e ch o " O s is te ma e st a $ T l ig ad o "
17 ;;18 3)
19 U =$ ( up ti me | aw k -F " " ’{ p ri nt $ 4 } ’)
20 e ch o " E x is t em $ U a t ua l me t e l o ga d os "
21 ;;
22 4)
23 e ch o " B ye . .. "
24 ;;
25 *)
26 e ch o " O p çã o i n va l id a "
27 ;;
28 esac
5.3 Utilizando a estrutura “while”
Quando repetições são necessárias podemos utilizar estruturas de “looping” como
“while” e “for”.
1 w h il e [ < e x pr e ss ã o > ] ; d o
2 c o m a n d o s
3 done
Exemplo 1: Verificar se um site esta no ar.
1 # ! / b i n / b a s h
2 clear
3 e ch o " D ig it e o e nd er e ço d e u m s it e "
Linux System Administration Página 5
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 6/10
5.4 Utilizando a estrutura “for” 4Linux – www.4linux.com.br
4 r e a d S I TE
5 w hi le p in g - c1 $ SI TE > / d ev / n ul l 2 > &1
6 do
7 e ch o " O s it e $ SI TE e st á n o a r . "
8 done
Exemplo 2: Cria quantos arquivos você indicar com uma determinada extensão.
1 # ! / b i n / s h
2 clear
3 e ch o " D ig it e o n om e do a rq ui vo "
4 r ea d A RQ5 clear
6 e ch o " D ig it e a e xt en s ão d o a rq ui vo "
7 r ea d E XT
8 clear
9 e ch o " D i gi t e o n u me r o d e a r qu i vo s c r ia d os "
10 r ea d N UM
11 i =1
12 wh ile [ $i - le $NUM ]
13 do
14 t ou ch $ AR Q$ i . $E XT
15 i =‘ ex pr $i + 1 ‘
16 done
5.4 Utilizando a estrutura “for”
O “for” pode ser utilizado efetuar um “looping” no estilo do “while” ou para processar
uma lista.
1 f or V AR IA VE L i n < l is ta > ; d o
Página 6 Linux System Administration
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 7/10
4Linux – www.4linux.com.br 5.4 Utilizando a estrutura “for”
2 c o ma n do s c o m a V A R I AV E L
3 done
Exemplo 1: Compactar todos os arquivos do diretório atual.
1 # ! / b i n / b a s h
2 for i in ‘ ls -1 ‘
3 do
4 t ar - c v zf $ i . t ar . g z $ i
5 done
Exemplo 2: Apaga todos os arquivos de uma determinada extensão.
1 # ! / b i n / b a s h
2 clear
3 e ch o " D ig it e a e xt en s ão d os a rq ui vo s q ue v oc ê q ue r a pa ga r "
4 r ea d A RQ
5 for i in *. $ARQ ; do
6 r m $i
7 done
Exemplo de Loop
Vamos criar um script que fará uma verificação de quais máquinas estão ativas na
rede, para isso usaremos o comando ping.
1 # p in g 1 92 .1 68 .2 . 25 4
Usaremos algumas opções do comando ping para que ele não entre num loop, como
acontece por padrão, e espere nossa interação para interrompe-lo:
Linux System Administration Página 7
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 8/10
5.5 Transformar Shell Script em binário 4Linux – www.4linux.com.br
1 # p in g - c 2 - w 2 1 92 .1 68 .2 .1
Iremos agora elaborar o shell script hostup.sh
1 # ! / b i n / b a s h
2 f or IP in $ ( s eq 1 15 ); d o
3 p in g - c 2 -w 2 1 9 2. 16 8. 2 . $ IP > / d ev / n ul l & &
4 e ch o " 1 9 2 .1 6 8. 2 . $ I P - U P " | |
5 e ch o " 1 9 2 .1 6 8. 2 . $ I P - D OW N "
6 done
Dê permissão de execução ao “script” e execute-o para testá-lo:
1 # cd / sb in
2 # c hm od u + x h os tu p . sh
3 # h os t up . s h
Programar em “shell script” é uma arte, e como na arte, em “shell” o limite é a sua
imaginação. Para se aprofundar nesse assunto:
http://jneves.wordpress.com/ http://aurelio.net
5.5 Transformar Shell Script em binário
Obtenha o arquivo compactado no site usando o comando wget:
Página 8 Linux System Administration
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 9/10
4Linux – www.4linux.com.br 5.5 Transformar Shell Script em binário
1 # w g et - c h t tp : / / w w w . d a t si . f i . u p m . e s / ~ f r o sa l / s o u r c e s / s hc - 3 . 8. 6 . t g z
Descompacte o arquivo:
1 # t a r - x v z f s hc - 3 . 8 .6 . t g z
Copie o binário o shc para /usr/local/bin
1 # c p s hc - 3 . 8. 6 / s h c / u s r / l o c al / b i n /
Compile seu shell script usando o comando:
1 # sh c - v - r - f s cr ip t
Opções de linha de comando:
• -v: Modo verbose (mostra o que esta fazendo);
• -r: Gera um binário compatível com mais de um sistema;
• -f: Opção para o compilador buscar o arquivo;
Copie o arquivo binário para /bin (assim todos os usuários terão acesso)
1 # c p s c ri pt . x / b in / s c r ip t
Acerte as permissões do arquivo para que todos os usuários tenham acesso.
Linux System Administration Página 9
8/10/2019 Apostila Automatizando Tarefas Com Shell Script II
http://slidepdf.com/reader/full/apostila-automatizando-tarefas-com-shell-script-ii 10/10
5.5 Transformar Shell Script em binário 4Linux – www.4linux.com.br
1 # c h mo d 7 55 / b in / s c r ip t
Acesse o sistema com um usuario comum e digite o nome do script
Página 10 Linux System Administration