18
UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE CURSO DE: TECNOLOGIAS E SISTEMAS DE INFORMAÇÃO SISTEMAS OPERATIVOS AVANÇADOS Administração de Sistemas DOCENTE: dr. Jonnathan Guambe dr. Jonnathan Guambe Administração de Sistemas

Soa cap2 admin-sistemas - manual

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Soa cap2 admin-sistemas - manual

UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE

CURSO DE: TECNOLOGIAS E SISTEMAS DE INFORMAÇÃO

SISTEMAS OPERATIVOS AVANÇADOS

Administração de Sistemas

DOCENTE: dr. Jonnathan Guambe

dr. Jonnathan Guambe Administração de Sistemas

Page 2: Soa cap2 admin-sistemas - manual

Índice1. Ficheiros e directórios .......................................................................................4

1.1. Árvore de directórios ..................................................................................4

1.2. Identificação de um ficheiro .......................................................................4

1.3. Atributos de um ficheiro .............................................................................4

1.3.1. Nome ...................................................................................................4

1.3.2. Tipo .....................................................................................................4

1.3.3. Dono, grupo e permissões de acesso ..................................................5

1.3.4. Timestamps de criação, acesso e modificação ....................................5

1.4. Acesso a um ficheiro ..............................................................................5

1.5. Exercicios....................................................................................................7

2. Administração de usuários ................................................................................8

2.1. Verificando informações do usuário ...........................................................8

2.1.1. Exemplos..............................................................................................9

2.2. Tornando-se outro usuário – Comando su e sudo........................................9

2.3. Adicionando usuários – Comando useradd .................................................9

2.3.1. Exemplos..................................................................................................9

2.4. Alterando a senha do usuário – comando passwd ....................................10

2.4.1. Exemplos............................................................................................10

2.5. Eliminando usuários – Comando userdel ..................................................11

2.5.1. Exemplos............................................................................................11

2.6. Modificando o perfil de um usuário – comando usermod .........................11

2.6.1. Exemplo.............................................................................................11

2.7. Adicionando grupos – comando groupadd ................................................12

dr. Jonnathan Guambe Administração de Sistemas

Page 3: Soa cap2 admin-sistemas - manual

2.7.1. Exemplos............................................................................................12

2.8. Eliminando grupos – Comando groupdel ..................................................12

2.9. Exercicios..................................................................................................12

3. Shell Script.......................................................................................................13

3.1. O que é Shell.............................................................................................13

3.2. Shell script.................................................................................................13

3.2.1. Passos para criacao de um shell script ..............................................14

3.2.1.1. Problemas na execução do script................................................15

3.3. Exercícios .................................................................................................16

4. Tarefas automatizadas.....................................................................................16

4.1. Exemplos:..................................................................................................17

4.2. Exercicios..................................................................................................18

5. Bibliografia.......................................................................................................18

dr. Jonnathan Guambe Administração de Sistemas

Page 4: Soa cap2 admin-sistemas - manual

1. Ficheiros e directórios

Os ficheiros são objectos fundamentais nos sistemas operativos UNIX, mais que noutros sistemas

operativos. A forma como se opera sobre um ficheiro é extensível a quase tudo o que interage com o

sistema operativo.

1.1. Árvore de directórios

Do ponto de vista do utilizador, todos os ficheiros estão localizados na árvore de directórios do sistema. E

todos são acessíveis a partir da directório raiz, cujo nome é “/”. A estrutura em árvore assenta no conceito

de directório. Uma directório é um ficheiro que contém uma lista de ficheiros (que podem ser de qualquer

tipo, incluindo o tipo directório).

1.2. Identificação de um ficheiro

Um caminho (path) é uma string que identifica um ficheiro (de qualquer tipo, ou seja, pode identificar um

ficheiro regular, uma directório, um dispositivo...) na árvore de directórios do sistema. Um caminho é

absoluto se começa com o carácter '/ ' (/home/linux/teste.txt); caso contrário é relativo (teste.txt).

1.3. Atributos de um ficheiro

Os ficheiros têm vários atributos, a frente veremos a lista completa desses atributos, de momento segue

uma descrição dos mais relevantes no âmbito da parte prática da disciplina.

1.3.1. Nome

Qualquer ficheiro tem um nome. O nome de um ficheiro é uma string que não pode conter nem caracter

'\0' nem o caracter '/'. O caracter '/' é o separador de nomes de ficheiros e directórios no nome dum

caminho; o caracter '\0' é o caracter terminador duma string. O nome de um ficheiro obtém-se a partir de

um caminho que identifica o ficheiro, sendo a substring do caminho composta por todos os seus últimos

caracteres a partir da última ocorrência do caracter ‘/’.

1.3.2. Tipo

• Ficheiro regular [-] - é o tipo mais comum de ficheiro; pode conter dados de qualquer tipo (texto

legível por humanos, instruções executáveis pelo processador, comandos interpretáveis por uma

shell, etc.).

• Directório [d] – uma directório é um tipo de ficheiro que contém uma listagem de outros ficheiros

ou directórios.

dr. Jonnathan Guambe Administração de Sistemas

Page 5: Soa cap2 admin-sistemas - manual

• Ficheiro especial [c] – este tipo de ficheiro é usado por dispositivos para input e output, tal como

os ficheiros no directório /dev.

• Fifo (ou named Pipe) [p]– é um tipo de ficheiro utilizado para comunicação entre processos.

• Symbolic Link (atalho ou shortcut) [l] - é um ficheiro que representa um caminho para outro

ficheiro.

• Socket [s] – é um ficheiro especial utilizado para comunicação entre processos tipicamente em

execução em máquinas diferentes interligadas por uma rede de dados.

1.3.3. Dono, grupo e permissões de acesso

Todos os ficheiros têm um dono, um grupo e permissões de acesso. Estes três atributos em conjunto,

permitem decidir que tipo de acesso ao ficheiro pode ser feito por um determinado utilizador do sistema.

1.3.4. Timestamps de criação, acesso e modificação

Os ficheiros têm associados timestamps de acesso, modificação de estado e modificação de atributos e

modificação de conteúdo.

1.4. Acesso a um ficheiro

Para cada ficheiro são definidas permissões para três tipos de acesso: leitura, escrita e execução. Estes três

tipos de acesso são, por sua vez, permitidos ou negados a três conjuntos de utilizadores: o dono do

ficheiro, os utilizadores que pertencem ao grupo do ficheiro e os restantes.

Experimente executar o comando ls com a opção –l. O output é de uma linha por cada ficheiro na

directório actual. Cada linha tem a forma:

Os nove caracteres de cada linha (entre o segundo e o décimo, inclusive), mostram

o estado dos três tipos de acesso, permitido ou negado (um hifen ‘-‘ significa acesso negado, a letra r, w

ou x significa acesso permitido) para cada um dos três grupos de utilizadores (dono, grupo e outros).

dr. Jonnathan Guambe Administração de Sistemas

Page 6: Soa cap2 admin-sistemas - manual

Cada tipo de acesso tem um significado óbvio para os ficheiros de qualquer tipo que não seja directório.

Neste caso, por ser eventualmente menos intuitivo o significado de cada tipo de permissão, e por ser um

tipo de ficheiro muito comum e importante segue o seu significado na tabela abaixo.

Outra questão importante é como é que o sistema decide para um determinado utilizador, para

um dado ficheiro, qual o grupo de utilizadores (owner, group ou others) cujas permissões de

acesso se aplicam. A regra é simples mas tem alguns efeitos inesperados. Se um utilizador é

dono do ficheiro então aplicam-se as permissões do owner. Se um utilizador não é dono mas

pertence ao grupo do ficheiro, aplicam-se as permissões do group. Só nos restantes casos é que

se aplicam as permissões de others.

Veja as páginas de manual dos comandos chmod e chown. Experimente tirar todos os tipos de

permissão ao dono de um ficheiro e mantê-las para o grupo e outros utilizadores. Tente ver o

conteúdo do ficheiro e verifique o que acontece.

1.5. Exercicios1. Considere a estrutura de directórios representado na figura abaixo:

a) Crie um ficheiro carta.doc no directorio farrusco.

dr. Jonnathan Guambe Administração de Sistemas

Page 7: Soa cap2 admin-sistemas - manual

b) Liste todos os ficheiros cujos nomes começam pela letra "c", localizados no directorio farrusco.

c) Crie um subdirectorio aves na seu directorio pessoal.

d) Mova para o directorio aves o ficheiro comida.txt, localizado no directorio farrusco.

e) Posicione-se no directorio criado na operação c) deste grupo de exercícios, e confirme a sua localização.

f) Liste todos os utilizadores que tenham sessões abertas no mesmo sistema que você.

g) Guarde a informação dos utilizadores com sessões abertas no sistema num ficheiro chamado alunos.txt, que deverá ser criado no directorio gatos (Obs: Deve utilizar apenas um comando para realizar esta tarefa).

h) Copie o ficheiro alunos.txt para o directorio boby.

i) Crie, dentro da directoria miau, um ficheiro com o nome de fic1.txt, cujo conteúdo deverá ser: "Ola, bom dia!". Deverá usar apenas a linha de comando (não deverá usar nenhum processador de texto).

j) Altere o nome do ficheiro fic1.txt para fic3.txt

k) Acrescente ao ficheiro fic3.txt a palavra "Mais".

l) Visualize o numero total de palavras, linhas e caracteres do ficheiro fic3.txt.

m) Copie o ficheiro fic3.txt para o directorio mickey com o nome mmouse.txt.

n) Remova as permissões de escrita sobre todos ficheiros e directorios localizados em ratos.

o) Tente remover o ficheiro mmouse.txt.

p) Volte a atribuir as permissões de escrita ao directorio ratos.

q) Apague o ficheiro mmouse.txt.

r) Altere o nome do ficheiro .bash_history, localizado na seu directorio pessoal, para historicocomandos.txt.

dr. Jonnathan Guambe Administração de Sistemas

Page 8: Soa cap2 admin-sistemas - manual

2. Administração de usuários

O Unix e Linux são sistemas operacionais multi-usuários, portanto é necessário que todos os usuários

sejam cadastrados e tenham permissões de acesso diferenciadas. É possível também cadastra-los em

grupos para facilitar a gestão.

A criação e administração de contas de usuários no sistema são exclusive do super-usuário (root). É uma

tarefa que demanda responsabilidade e deve ser acompanhada com muita atenção.

2.1. Verificando informações do usuário

Todo usuário possui um número chamado user ID com o qual o sistema Unix/Linux identifica-o no

sistema. Além do user ID, os usuários possuem o group ID. Toda vez que um processo for ativado será

atribuído ao processo um User ID e um Group ID. Estes ID's são chamados de identificação efetiva do

processo.

id [ opções ] [ nome ]

2.1.1. Exemplos

• id - Sem parâmetros, lista as informações do usuário actual.

uid=1094(laureano) gid=500(prof) grupos=500(prof)

• id bin - Sem parâmetros, lista as informações do usuário bin.

uid=1(bin) gid=1(bin) grupos=1(bin),2(daemon),3(sys)

• id -u - Lista somente o user id do usuário actual.

1094

2.2. Tornando-se outro usuário – Comando su e sudo

Permite o usuário mudar sua identidade para outro usuário sem fazer o logout. Útil para executar um

programa ou comando como super-usuário sem ter que abandonar a sessão actual.

su [usuário] – onde [usuário] é o nome do usuário que deseja usar para aceder o sistema. Se não

digitado, é assumido o usuário root.

sudo su – comando usado para mudar de sessão para super-usuário ou usuário root. Este comando

somente funciona caso o usuário que esteja a digita-lo pertencer tenha permissões para tal.

Digite exit quando desejar retornar a identificação de usuário anterior.

sudo – executa determinado comando com o ID de root sem mudar a sessão para root.

dr. Jonnathan Guambe Administração de Sistemas

Page 9: Soa cap2 admin-sistemas - manual

Utilize o manual on-line (man) para ver outras opções de utilização dos comandos su e sudo.

2.3. Adicionando usuários – Comando useradd

O comando useradd permite que se criem usuários conforme especificado em opções. Somente o super-

usuário poderá utilizar este comando.

useradd [ opções ] usuário

Este comando irá alterar os arquivos:

• /etc/passwd – informações de contas de usuários;

• /etc/shadow – senhas criptografadas;

• /etc/group – informações de grupos.

2.3.1. Exemplos

• useradd malcolmx - Cria o usuário malcolmx.

• usermod –d /home/malcolmx malcolmx- Cria o usuário malcolmx e designa o directório

/home/malcolmx como o directório pessoal deste.

• usermod –s /bin/sh malcolmx - Cria o usuário malcolmx com o shell sh.

• usermod –g root malcolmx - Cria o usuário malcolmx com o grupo root.

• useradd –d /home/luiscossa –g users –c “Luis Octávio Cossa” luis - Cria o usuário luis com

com várias informações.

O comando useradd tem alguns inconvenientes tais como, não criar o directório home do usuário, não

copiar os ficheiros para inicialização do shell do directório /etc/skel para o directório home do usuário

automaticamente, entre outros. Outra alternativa para adição de usuários e o comando adduser, que é mais

iterativo e efectua certas operações como criação do directório home, criação do grupo, relacionamento

do usuário ao grupo, copia de ficheiros do /etc/skel entre outros, automaticamente.

Utilize o manual on-line (man) para ver outras opções de utilização dos comandos adduser e useradd.

2.4. Alterando a senha do usuário – comando passwd

O comando passwd permite que se troque a senha de determinado usuário. O super-usuário pode trocar a

senha de qualquer outro. O usuário comum, porém, pode trocar somente a sua senha. As senhas são

armazenadas no arquivo /etc/passwd ou /etc/shadow. No arquivo /etc/passwd também é armazenado as

informações relativas aos usuários.

dr. Jonnathan Guambe Administração de Sistemas

Page 10: Soa cap2 admin-sistemas - manual

Em algumas distribuições após a criação do usuário será necessário criar uma senha para este, caso

contrário, não será permitido que este usuário faça login no sistema.

passwd [ usuário ]

2.4.1. Exemplos

• passwd jparc - Alterando a senha de outro usuário (é preciso ser o super-usuário)

• passwd - Alterando a própria senha (usuário comum pode utilizar este comando)

Para sua segurança, deve-se configurar o sistema para que:

• A senha deva ter no mínimo 6 caracteres;

• A senha deva ter no mínimo duas letras maiúsculas e/ou duas letras minúsculas e pelo menos um

dígito ou caractere especial;

• São aceites somente os caracteres ASCII padrão de códigos 0 a 127;

• A senha deve diferenciar do nome da conta (obrigatório);

• A nova senha deve diferenciar da senha velha em pelo menos três caracteres.

As regras acima não se aplicam ao super-usuário.

2.5. Eliminando usuários – Comando userdel

O comando userdel permite que se eliminem usuários do sistema. Somente o super-usuário poderá utilizar

este comando.

userdel [opções] usuário

2.5.1. Exemplos

• userdel jparc - Eliminando a conta do usuário jparc

• userdel –r jparc - Eliminando a conta do usuário jparc e apagando o seu directório home.

2.6. Modificando o perfil de um usuário – comando usermod

Este comando tem a mesma sintaxe e os mesmos parâmetros (existem algumas opções a mais) do

comando useradd, a diferença é que ele modifica ou adiciona informações relativas a um usuário já

cadastrado.

usermod [ opções ] usuário

dr. Jonnathan Guambe Administração de Sistemas

Page 11: Soa cap2 admin-sistemas - manual

2.6.1. Exemplo

• useradd -d /home/luizotavio –g users –c “Luiz Otávio Laureano” luiz

• tail /etc/passwd

kaminenko:x:1226:1100:Rafael Kaminenko:/home/cc2002-1s/kaminenko:/bin/bash

crazyeye:x:1227:1100::/home/cc2002-1s/crazyeye:/bin/bash

luiz:x:1228:100:Luiz Otávio Laureano:/home/luizotavio:/bin/bash

• usermod –m –d /home/luiz luiz

• tail /etc/passwd

kaminenko:x:1226:1100:Rafael Kaminenko:/home/cc2002-1s/kaminenko:/bin/bash

crazyeye:x:1227:1100::/home/cc2002-1s/crazyeye:/bin/bash

luiz:x:1228:100:Luiz Otávio Laureano:/home/luiz:/bin/bash

Atenção: Ao modificar o directório home de um usuário do sistema, utilize sempre a opção –m para

mover o directório anterior para o novo directório especificado.

2.7. Adicionando grupos – comando groupadd

Para facilitar a administração do sistema, pode-se usar o conceito de grupos de usuários com perfis

semelhantes. Por exemplo, definir grupos conforme os departamentos de uma empresa.

groupadd [ opções ] grupo

Este comando irá alterar os arquivos:

• /etc/group – informações de grupos.

• /etc/gshadow – informações de grupos armazenadas de forma segura (senhas de grupo).

2.7.1. Exemplos

• groupadd vendas - Criando o grupo vendas

• groupadd –g 750 vendas - Criando o grupo vendas com GID 750

2.8. Eliminando grupos – Comando groupdel

O comando groupdel permite que se eliminem grupos do sistema. Somente o superusuário poderá utilizar

este comando.

dr. Jonnathan Guambe Administração de Sistemas

Page 12: Soa cap2 admin-sistemas - manual

groupdel grupo

Atenção: Ao eliminar um grupo do sistema, se existir algum usuário ligado a este grupo, ele ficará

“órfão”.

2.9. Exercicios

1. Informe os comandos e anote o conteúdo dos arquivos /etc/group e do /etc/passwd após cada passo

(utilize o comando tail para visualizar o final do arquivo) e o resultado do comando id.

* Adicionar o usuário aluno01 com ID 600;

* Modificar o shell para o /bin/bash;

* Acrescentar o comentário “Conta de teste do aluno”;

* Criar o grupo alunos;

* Ligar o usuário aluno01 ao grupo alunos.

dr. Jonnathan Guambe Administração de Sistemas

Page 13: Soa cap2 admin-sistemas - manual

3. Shell Script

3.1. O que é Shell

Antes de saber o que é um script em shell, é importante saber o que é um Shell. O Shell nada

mais é, que o responsável entre a comunicação do usuário com o Kernel do sistema. Para isso,

basta que o usuário conheça os comando e sintaxes apropriadas há este Shell.

O kernel é quem acessa os equipamentos (hardware) da máquina, como disco rígido, placa de

vídeo e modem. Por exemplo, para o usuário ler um arquivo qualquer, toda esta hierarquia é

seguida:

USUÁRIO --> SHELL --> KERNEL --> DISCO RÍGIDO

Para os usuários do Windows, é fácil pensar no shell como um MSDOS melhorado. Ao invés do

C:\> aparece um [root@localhost root]#, mas o funcionamento é similar. Basta digitar um

comando, suas opções e apertar a ENTER que ele será executado.

O shell é muito mais poderoso que MSDOS. Além dos comandos básicos para navegar entre

directórios e manipular arquivos, ele também possui todas as estruturas de uma linguagem de

programação, como IF, FOR, WHILE, variáveis e funções. Com isso, também é possível usar o

shell para fazer scripts e automatizar tarefas.

3.2. Shell script

Um script é um arquivo que guarda vários comandos e pode ser executado sempre que preciso.

Os comandos de um script são exactamente os mesmos que se digita no prompt, é tudo shell.

Por exemplo, se de tempos em tempos você quer saber informações do sistema como horário,

ocupação do disco e os usuários que estão logados, é preciso digitar três comandos:

[root@localhost root]# date

[root@localhost root]# df

[root@localhost root]# w

É melhor fazer um script chamado "aloscript" e colocar estes comandos nele. O conteúdo do

arquivo "aloscript" seria o seguinte:

dr. Jonnathan Guambe Administração de Sistemas

Page 14: Soa cap2 admin-sistemas - manual

#!/bin/bash

date

df

w

E para chamar este script, basta agora executar apenas um comando:

[root@localhost root]# aloscript

Isso é um shell script. Um arquivo de texto que contém comandos do sistema e pode ser

executado pelo usuário.

3.2.1. Passos para criacao de um shell script

O primeiro shell script a fazer será o "aloscript" do exemplo anterior, de simplesmente juntar

três comandos em um mesmo script. A seguir estão os passos:

1. Escolher um nome para o script

Já temos um nome: aloscript.

Use apenas letras minúsculas e evite acentos, símbolos e espaço em branco

2. Escolher o directório onde colocar o script

Para que o script possa ser executado de qualquer parte do sistema, mova-o para um

directório que esteja no seu PATH. Para ver quais são estes directórios, use o comando:

echo $PATH

Se não tiver permissão de mover para um directório do PATH, deixe-o dentro de seu

directório pessoal ($HOME).

3. Criar o arquivo e colocar nele os comandos

Use o nano, VI ou outro editor de textos de sua preferência para colocar todos os

comandos dentro do arquivo.

4. Colocar a chamada do shell na primeira linha

#!/bin/bash

dr. Jonnathan Guambe Administração de Sistemas

Page 15: Soa cap2 admin-sistemas - manual

Isto possibilita que a script ao ser executada, o sistema saiba que o bash é quem irá

interpretar estes comandos.

5. Tornar o script um arquivo executável

Use o seguinte comando para que seu script seja reconhecido pelo sistema como um

comando executável:

chmod +x aloscript

3.2.1.1. Problemas na execução do script

• "command not found"

Significa que o shell não encontrou o seu script, verifique se o comando que você está

chamando tem exactamente o mesmo nome do seu script. Lembre-se que o Unix/Linux é

case sensitive, então o comando "ALOSCRIPT" é diferente do comando "aloscript".

Caso o nome esteja correto, verifique se ele está no PATH do sistema. O comando "echo

$PATH" mostra quais são os directórios conhecidos, mova seu script para dentro de um

deles, ou chame-o passando o caminho completo.

Se o script estiver no directório corrente, chame-o com um "./" na frente, assim:

./aloscript Caso contrário, especifique o caminho completo desde o directório raiz:, por

exemplo: /home/aulas/aloscript

• "Permission Denied"

Significa que o shell encontrou seu script, mas ele não é executável.

Use o comando "chmod +x seu-script" para torná-lo um arquivo executável.

• "Sintax Error"

Significa que o shell encontrou e executou seu script, porém ele tem erros.

Um script só é executado quando sua sintaxe está 100% correta. Verifique os seus

comandos, geralmente o erro é algum IF ou aspas que foram abertos e não foram

fechados. A própria mensagem informa o número da linha onde o erro foi encontrado.

dr. Jonnathan Guambe Administração de Sistemas

Page 16: Soa cap2 admin-sistemas - manual

3.3. Exercícios

1. Escreva um script chamado clean para limpar seu directório $HOME, removendo todos

os arquivos com extensão "bak" ou "~" que não tenham sido acessados há pelo menos 3

dias. Dica: use os comandos find e rm e a avaliação por aspas inversas.

2. Escreva um script para criar directórios com nome DirX, onde X varia de 1 a 99, usando

a instrucao “for”.

4. Tarefas automatizadas

Suponha que você seja dono de um serviço de hospedagem de sites e diariamente precisa disponibilizar,

numa pasta acessível por FTP, o arquivo de log de acessos de um cliente. Seria trabalhoso fazer isso

manualmente e na pior das hipóteses, você poderia esquecer. O Linux contem um o serviço cron, que

permite a realização de tarefas periodicamente e em determinadas datas ou dias especificadas por você,

ou seja, cron é uma ferramenta que permite programar a execução de comandos e processos de maneira

repetitiva ou apenas uma única vez.

Para executar as tarefas, o cron usa uma espécie de tabela conhecida como crontab. O arquivo crontab

geralmente fica localizado em /etc/crontab, mas também pode estar em um directório que cria um crontab

para cada usuário do sistema, geralmente em /var/spool/cron/.

Nos ficheiros de configuração existem algumas linhas que são usadas como variáveis para configurar o

ambiente no qual as actividades do cron são executadas. O valor da variável SHELL diz ao sistema qual

ambiente shell deve usar (neste exemplo, a shell bash), e a variável PATH define a localidade usada para

executar comandos. O output das tarefas do cron é enviado por e-mail ao nome do usuário definido na

variável MAILTO. Se a variável MAILTO for definida com um campo vazio (MAILTO="") ou omitida,

o e-mail não será enviado. Pode-se usar a variável HOME para definir o directório raiz a ser usado ao

executar comandos ou scripts.

O primeiro passo é abrir o crontab. Para isso, você pode usar editores de textos como vi e o emacs.

Também é possível digitar o comando "crontab -e" para editar o arquivo exclusivo de seu usuário. Em

alguns, a edição é feita como se você estivesse usando o nano.

O crontab tem o seguinte formato:

[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]

dr. Jonnathan Guambe Administração de Sistemas

Page 17: Soa cap2 admin-sistemas - manual

O preenchimento de cada campo é feito da seguinte maneira:

• Minutos: informe números de 0 a 59;

• Horas: informe números de 0 a 23;

• Dias do mês: informe números de 1 a 31;

• Mês: informe números de 1 a 12;

• Dias da semana: informe números de 0 a 6;

• Usuário: é o usuário que vai executar o comando (não é necessário especifica-lo se o arquivo do

próprio usuário for usado);

• Comando: a tarefa que deve ser executada.

Repare que a ordem desses valores indica o nome correspondente do campo. Por exemplo, no campo mês,

1 a 12 quer dizer de "Janeiro a Dezembro". No caso de dias da semana, 0 a 6 quer dizer de "Domingo a

Sábado". Note que o número 7 também pode ser usado. Neste caso, assim como o número 0, o 7 equivale

ao dia de "Domingo".

No lugar desses valores, você pode informar * (asterisco) para especificar uma execução constante. Por

exemplo, se o campo dias do mês conter *, o comando relacionado será executado todos os dias.

Você também pode informar intervalos no preenchimento, separando os números de início e fim através

de - (hífen). Por exemplo, se no campo horas for informado 2-5, o comando relacionado será executado às

2, 3, 4 e 5 horas. E se o comando tiver que ser executado às 2 horas, entre 15 e 18 horas e às 22 horas?

Basta informar 2,15-18,22. Nestes casos, você separa os parâmetros por vírgula.

Na configuração de tarefas automatizadas por vezes e útil usar comentários para inserir descrições quando

se tem várias tarefas a serem executadas, para tal devera inserir # e tudo o que for digitado na linha não

será considerado pelo cron.

4.1. Exemplos:

#Executa a script a cada 7 minutos

*/7 * * * * /home/user/test.pl

# Regista o consumo de memoria todas as segundas feiras as 3:30AM no ficheiro /tmp/meminfo

30 3 * * mon cat /proc/meminfo >> /tmp/meminfo

# Executa determinada script no dia 1 de todos os meses as 4:10AM

dr. Jonnathan Guambe Administração de Sistemas

Page 18: Soa cap2 admin-sistemas - manual

10 4 1 * * /root/scripts/backup.sh

4.2. Exercicios

1. Crie um cron que a 1:0AM de todas as terças-feiras grava o historico de comandos no ficheiro

/tmp/cmdhistory.

2. Crie um cron remove todos os ficheiros e directórios do directório home do usuario aluno01

(use /home/aluno01 com directório home) as 18 horas do dia 1 de Junho.

3. Crie um cron que a cada 5 minutos grava historico dos usuarios logados no ficheiro

/tmp/loggedinusers (Dica: use o comando who).

5. Bibliografia

• http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html

• http://www.gnu.org/manual/bash-2.02/bashref.html

• http://sh.underlinux.com.br

• Hudson, A. & Hudson, P.,”Ubuntu Unleashed”, Sams.

• Hagen W. V.(2007), “Ubuntu® Linux® Bible”, Wiley Publishing, Inc.

dr. Jonnathan Guambe Administração de Sistemas