Apostila Automatizando Tarefas Com Shell Script II

10
4451 Linux System Administration www.4linux.com.br

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