• Nenhum resultado encontrado

at - executa tarefas com horário agendado As permissões para executar o comando at são feitas pelos arquivos /etc/at.allow e /etc/at.deny.

N/A
N/A
Protected

Academic year: 2021

Share "at - executa tarefas com horário agendado As permissões para executar o comando at são feitas pelos arquivos /etc/at.allow e /etc/at.deny."

Copied!
10
0
0

Texto

(1)

Tarefas automatizadas

O serviço atd

O daemon(serviço) atd é um serviço do Linux / Unix localizado no diretório /etc/init.d/, e tem a função de executar um lista de tarefas em um determinado horário, e possue os seguintes diretórios:

/var/spool/cron/atjobs - armazena a lista de tarefas

/var/spool/cron/atspool - armazena a saída de execução da lista de tarefas.

/var/spool/at

/var/spool/at/spool/

/var/spool/at

/var/spool/at/spool/

/var/spool/at/spool/

at

- executa tarefas com horário agendado

As permissões para executar o comando at são feitas pelos arquivos /etc/at.allow e /etc/at.deny.

Caso exista o arquivo /etc/at.allow, o superusuário root deverá ser especificado e então o comando at só poderá ser executado pelos usuários especificados no arquivo e se /etc/at.allow estiver vazio todos os usuários poderão executar o comando at.

Caso o arquivo /etc/at.allow não exista, então será verificado a existência do arquivo /etc/at.deny, que contém os usuários que não poderão executar o comando at. Mas se caso nenhum deles existir, somente o usuário root poderá executar o comando at.

(2)

-V

Exibe a versão do comando

-l

Exibe a fila de trabalhos do at (mesmo que atq)

-m

Avisa por email sobre o comando executado

-f script

Executa comandos de um script

-d

Remove a fila de trabalhos do at (mesmo que atrm)

hora

Especifica o horário no formato: h(horas):m(minutos), hh:mm ou hhmm, pode ser usadonoon, midnight e now

mês

Especifica a data no formato em inglês: (jan(janeiro), feb(fevereiro),

mar(março), apr(abril), may(maio), jun(junho),jul(julho), ago(agosto), sep(setembro), oct(outubro), nov(novembro) edec(dezembro), pode-se usar também today e tomorrow. Exemplos:

$ at 21:25 apr

warning: commands will be executed using /bin/sh at> touch /tmp/arquivo APERTE ENTER

at> <EOT>APERTE CTRL + D

job 1 at Tue apr 8 21:25:00 2008

$ at -l (exibe a tarefa)

1 Thu Apr 10 21:25:00 2008 a aluno1

$ at -d 1 (apaga a tarefa com o número 1)

atq - exibe a fila de tarefas agendadas do comando at

Exemplos:

$ atq

1 Thu Apr 10 21:25:00 2008 a aluno1

(3)

atrm (fila de trabalho) Exemplos:

$ atrm 1 (remove a fila com o número 1)

batch - executa comandos quando o nível de carga do sistema permitir

Em outras palavras, quando a carga média do sistema estiver abaixo de 1.5 (verificando a saída de top no campo load average), ou um valor especificado pela invocação do atd.

Exemplos: $ cd /home/aluno1 $ cat > comandos touch /tmp/teste1 echo 1 > /tmp/teste1 APERTE ENTER APERTE CTRL + D $ chmod +x comandos $ batch

warning: commands will be executed using /bin/sh at> /home/aluno1/comandosAPERTE ENTER

at> <EOT>APERTE CTRL + D

job 15 at Tue Jan 8 22:57:00 2008

Após algum tempo execute o comando top, e quando o sistema permitir será criado o arquivo teste1 em /tmp.

$ top $ ls /tmp teste1

(4)

Debian e Ubuntu # /etc/init.d/atd start

Red Hat , Fedora, Mandriva e OpenSuse # /sbin/service atd start

Slackware # /usr/sbin/atrun

O serviço crond

O daemon(serviço) cron é um serviço do sistema localizado no diretório /etc/init.d/, e tem a função de executar tarefas automáticas com comandos e programas em datas e horários programados e possue o seguinte arquivo e diretório de configuração.

/etc/crontab - é onde são armazenados os comandos ou programas a serem executados

/var/spool/cron/ - armazena os arquivos de crontab dos usuários.

A sintaxe do arquivo /etc/crontab possui o seguinte formato:

(minutos) (horas) (dias do mês) (mês) (dias da semana) (usuário) (comando)

O preenchimento de cada campo é feito da seguinte maneira:

Campo Valores permitidos

Minutos: Números de 0 a 59 Horas: Números de 0 a 23 Dias do mês: Números de 1 a 31

Mês: Números de 1 a 12

Dias da semana: Números de 0 a 7 - de domingo (0) a sábado (7) Usuário: Pode ser root ou um usuário do sistema

Comando: Comando ou script a ser executado

Obs: Um asterisco (*) indica que pode ser usado qualquer valor indicado em qualquer campo. Por exemplo, se for usado no campo "dias da semana", o script será executado em todos os dias da semana de domingo (0) a sábado (7) 0 a 7.

(5)

Abaixo segue um exemplo do arquivo /etc/crontab, adicionando uma nova linha no arquivo /etc/crontab, não é necessário executar o comando crontab para criar uma nova crontab.

#/etc/crontab SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command

17 * * * * root cd / && run-parts --report /etc/cron.hourly

25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Essas entradas em /etc/crontab, diz ao daemon /etc/init.d/cron executar o programa run-parts e /usr/sbin/anacron em datas e horários programados. Esses programas executa scripts, comandos e programas especificados nos diretórios a abaixo:

Diretório Descrição

/etc/cron.hourly Será executado toda hora /etc/cron.dail Será executado todo dia

/etc/cron.weekly Será executado uma vez por semana /etc/cron.monthly Será executado uma vez por mês

55 23 * 1-12 1-5 root /root/script

Essa linha de contab executa o script /root/script como superusuário root, de segunda a sexta (1-5), entre o mês de janeiro a dezembro (1-12), todos os dias do mês, às 23:55.

crontab

O comando crontab é utilizado para gerenciar criando, editando e removendo arquivos de contab para usuários individualmente localizados em /var/spool/cron automaticamente em data e horários programados.

As permissões para executar o comando crontab são feitas pelos arquivos /etc/cron.allow e /etc/cron.deny.

(6)

comando crontab só poderá ser executado pelos usuários especificados no arquivo e se /etc/cron.allow estiver vazio todos os usuários poderão executar o comando crontab.

Caso o arquivo /etc/cron.allow não exista, então será verificado a existência do arquivo /etc/cron.deny, que contém os usuários que não poderão executar o comando crontab. Mas se caso nenhum deles existir, somente o usuário root poderá executar o comando crontab.

crontab (opções) arquivo

Opção Significado

-u (usuário) Especifica o nome de usuário que será usado pelo arquivo contab -l Mostra o arquivo de crontab do usuário corrente

-r Remove o arquivo de crontab do usuário corrente -e Edita o arquivo de crontab do usuário corrente

arquivo Especifica o arquivo de crontab a ser usado no mesmo formato do arquivo /etc/crontab Exemplos: Criando um script $ cd /home/aluno1 $ cat > script #!/bin/bash

echo "criando um script" touch /tmp/arquivo $ chmod +x script

Criando uma crontab

Ao usar a opção -e do comando crontab, será aberto o editor padrão do sistema, podendo ser os editores vi ou nano para editar e salvar o arquivo.

$ crontab -e

# m h dom mon dow command

15 8 1-31 1-12 0-7 aluno1 /home/aluno1/script

(7)

$ cd /home/aluno1 $ cat > arquivo_crontab 15 8 1-31 1-12 0-7 aluno1 /home/aluno1/script APERTE ENTER APERTE CTRL + D $ crontab arquivo_crontab $ crontab -l 15 8 1-31 1-12 0-7 aluno1 /home/aluno1/script $ crontab -r

logrotate

Logrotate é programa utilizado para gerenciar o crescimento do tamanho dos arquivos de log do sistema, rotacionando(onde são criados novos arquivos de logs), compactando diminuindo o tamanho do arquivo de log, removendo e enviando por email os arquivos de log.

O p r o g r a m a l o g r o t a t e é e x e c u t a d o t o d o s o s d i a s p e l o d a e m o n c r o n d a t r a v é s d o arquivo /etc/cron.daily/logrotate , e possue os seguintes arquivos e diretórios:

/etc/logrotate.conf - arquivo de configuração global.

/etc/logrotate.d- diretório onde são armazenados os scripts de logrotate de arquivos de log individuais de cada programa.

/etc/cron.daily/logrotate - arquivo de configuração para o daemon crond executar diariamente o scripts de logrotate

Exemplo do arquivo /etc/logrotate.conf # /etc/logrotate.conf

# rotaciona os arquivos de log uma vez por semana weekly

# rotaciona os arquivos de log 3 vezes rotate 3

(8)

# cria novos arquivos de log vazios após rotacionar os logs antigos create

# descomente essa linha se você quer comprimir seus arquivos de log #compress

# diretório dos scripts de logrotate include /etc/logrotate.d

# os arquivos /var/log/wtmp e /var/log/btmp não serão rotacionados aqui /var/log/wtmp {

missingok monthly

create 0664 root utmp rotate 1

}

/var/log/btmp { missingok monthly

create 0664 root utmp rotate 1

}

# aqui você pode especificar outras configurações de log globais

A rotação é feita de acordo com o tamanho dos logs, sendo usado um contador no final do nome de arquivo de log e caso o contador tenha um 0 ou a palavra old(versão antiga), o arquivo será removido antes de rotacionar. Esse processo de rotacionamento é útil quando um arquivo de log atingir tamanhos acima de 20 MB.

Abaixo segue um exemplo de rotacionamento e compactação de logs no diretório do daemon syslog em /var/log. O funcionamento do rotacionamento funciona da seguinte forma:

Na primeira vez o arquivo syslog é rotacionado e renomeado parasyslog.1.gz e será criado um novo arquivo syslog vazio.

1.

Na segunda vez o arquivo syslog é rotacionado o arquivo syslog.1.gz é renomeado para syslog.2.gz e o arquivo syslog é renomeado para syslog.1.gz e será criado um novo arquivo syslog vazio.

2.

Na terceira vez o arquivo syslog é rotacionado o arquivo syslog.2.gz é renomeado parasyslog.3.gz, o arquivo syslog.1.gz é renomeado para syslog.2.gz, o arquivo syslog é renomeado para syslog.1.gz e será criado um novo arquivo syslog vazio.

3.

Na última vez o arquivo syslog.3.gz é apagado, e o arquivo syslog.2.gz é renomeado parasyslog.3.gz, o arquivo syslog.1.gz é renomeado para syslog.2.gz, o arquivo syslog é renomeado para syslog.1.gz e será criado um novo arquivo syslog vazio.

(9)

# ls -lh /var/log/

-rw-r--- 1 root adm 29K 2008-01-09 11:17 syslog -rw-r--- 1 root adm 181K 2008-01-09 06:39 syslog.0 -rw-r--- 1 root adm 29K 2008-01-08 07:19syslog.1.gz

-rw-r--- 1 root adm 18K 2008-01-07 06:56syslog.2.gz

-rw-r--- 1 root adm 16K 2008-01-06 06:55syslog.3.gz

Você poderá usar o comando logrotate com a opção -f para "forçar" a rotação de logs e a opção -d informa mais detalhes os processos do logrotate.

# logrotate -d -f /etc/logrotate.conf

# logrotate -d -f /etc/logrotate.d/apache2

# ls /var/log

# ls /var/log/apache2

-rw-r--- 1 root adm 0 2008-01-09 12:24 access.log -rw-r--- 1 root adm 159K 2008-01-08 21:12 access.log.1 -rw-r--- 1 root adm 3,6K 2008-01-04 13:55access.log.2.gz

-rw-r--- 1 root adm 117 2008-01-09 12:24 error.log -rw-r--- 1 root adm 761 2008-01-09 12:24error.log.1.gz

-rw-r--- 1 root adm 831 2008-01-06 06:56error.log.2.gz

Logrotate pode ser configurado globalmente no arquivo /etc/logrotate.conf, ou especificando individualmente em um arquivo em /etc/logrotate.d/ como mostra o exemplo abaixo retirado do comando man logrotate, onde rotaciona os arquivos logs /var/log/syslog 3 vezes, semanalmente e envia um sinal através do comando /usr/bin/killall -HUP syslogd, suspendendo o processo do daemon syslogd:

Exemplo de configuração de arquivo logrotate individual: # /etc/logrotate.d/syslog

/var/log/syslog { rotate 3 weekly postrotate

/usr/bin/killall -HUP syslogd endscript

}

(10)

Inicialização do daemon crond

Debian e Ubuntu # /etc/init.d/cron start

Red Hat , Fedora, Mandriva e OpenSuse # /sbin/service crond start

Slackware # /usr/sbin/crond

Referências

Documentos relacionados

vinculado ao Núcleo de Estudos e Pesquisas Interdisciplinares sobre Direitos Reprodutivos, Comunicação em Saúde e Direitos Humanos da Universidade Estadual de

Se o arquivo /etc/at.allow , não existir esse arquivo será consultado , e serão bloqueados para usar o AT usuários que conter nele ,. Se nenhum dos dois arquivos existirem somente

Ainda em meio à tramitação da reforma política na Câmara dos Deputados, não se sabe qual será seu conteúdo definitivo. O que se sabe é que até aqui os deputados

O Grupo Parlamentar do Bloco de Esquerda apresenta esta proposta para o artigo 15.º justamente porque entende que se trata não de uma questão de afecto ou de

Peso vivo inicial (PVI), ganho médio diário (GMD), ganho de peso vivo por hectare (GPVHA), peso vivo final (PVF) e consumo de suplemento (CSUPL) em novilhos manti- dos em campo

 O gerenciamento eficiente de um projeto de software depende de um planejamento. minucioso do progresso

 O processo de teste é definido em três estágios, onde os componentes são testados, a integração dos componentes é testada e, por fim, o sistema é testado com os dados

A partir da incorporação dos novos requisitos e da nova arquitetura, baseado no modelo 2, será implementada a nova versão do Gerenciador de Conteúdos da Agência de