Life Of SysAdmin
quinta-feira, 6 de março de 2014
sexta-feira, 8 de março de 2013
Como utilizar o cron e os arquivos crontab
Como utilizar o cron e os arquivos crontab para automatizar
as tarefas do Linux, agendando qualquer tipo de coisa. Ótimo para quem quer
poupar tempo e trabalho!
O “cron” é um programa de “agendamento de tarefas”. Com ele
você pode programar para ser executado qualquer coisa numa certa periodicidade
ou até mesmo em um exato dia, numa exata hora. Um uso bem comum do cron é o
agendamento de tarefas administrativas de manutenção do seu sistema, como por
exemplo, procura por links simbólicos quebrados, análise de segurança do
sistema, backup, entre outros. Estas tarefas são programadas para todo dia,
toda semana ou todo mês, serem automaticamente executadas através do crontab e
um script shell comum. A configuração do cron geralmente é chamada de crontab.
Os sistemas Linux possuem o cron sempre presente. Pelo menos
eu nunca vi nenhuma distribuição que não incluísse o tão útil cron. A
configuração tem duas partes: Uma global, e uma por usuário. Na global, que é o
root quem controla, o crontab pode ser configurado para executar qualquer
tarefa de qualquer lugar, como qualquer usuário. Já na parte por usuário, cada
usuário tem seu próprio crontab, sendo restringido àpenas ao que o usuário pode
fazer (e não tudo, como é o caso do root).
Para configurar um crontab por usuário, utiliza-se o comando
“crontab“, junto com um parâmetro, dependendo do que você quiser fazer. Abaixo
uma relação:
Comando Função
crontab -e Edita
o crontab atual do usuário
crontab -l Exibe
o atual conteúdo do crontab do usuário
crontab -r Remove
o crontab do usuário
Se você quiser verificar os arquivos crontab dos usuários,
você precisará ser root. O comando crontab coloca os arquivos dos usuários no
diretório:
/var/spool/cron/usuario
Onde “usuario” corresponde ao usuário dono do arquivo crontab.
Agora se você quiser editar o crontab global, este fica no
arquivo “/etc/crontab“, e só pode ser manipulado pelo root. E agora que já
sabemos onde ficam os arquivos de configuração, vamos estudar o formato da
linha do crontab, que é quem vai dizer o que executar e quando. Vamos ver um
exemplo:
0 4 * * * who
Então como se pode ver, a linha é dividida em 6 campos
separados por tabs ou espaço:
Campo Função
1o. Minuto
2o. Hora
3o. Dia do mês
4o. Mês
5o. Dia da semana
6o. Programa para
execução
Todos estes campos, sem contar com o 6o., são especificados
por números. Veja a tabela abaixo para os valores destes campos:
Campo Valores
Minuto 0-59
Hora 0-23
Dia do mês 1-31
Mês 1-12
Dia da semana 0-6
(o “0″ é domingo), 1 é segunda, etc.
Então o que nosso primeiro exemplo estava dizendo? A linha
está dizendo: “Execute o comando ‘who’ todo dia de todo mês sendo o dia
qualquer dia da semana, às 4 horas e 0 minutos.“. Vamos pegar mais exemplos
para analisar:
1,21,41 * * * * echo
"Meu crontab rodou mesmo!"
Aqui está dizendo: “Executar o comando do sexto campo toda
hora, todo dia, nos minutos 1, 21 e 41“.
30 4 * * 1 rm
-rf /tmp/*
Aqui está dizendo: “Apagar todo conteúdo do diretório /tmp
toda segunda-feira, as 4:30 da manhã.“.
45 19 1,15 * * /usr/local/bin/backup
Aqui está dizendo: “Executar o comando ‘backup’ todo dia 1 e
15 às 19:45.“.
E assim você pode ir montando inúmeros jeitos de agendamento
possível. No arquivo do crontab global, o sexto campo pode ser substituído pelo
nome do usuário, e um sétimo campo adicionado com o programa para a execução,
como mostro no exemplo a seguir:
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Aqui está dizendo: “Executar o mrtg como usuário root,
durante 5 e 5 minutos dos minutos 0-59. Ou seja, executar de 5 em 5 minutos o
mrtg sempre.“.
Em alguma distribuições, os agendamentos mais comuns estão
programados para serem executados. Veja as linhas abaixo:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
O programa “run-parts” executa todos os scripts executáveis
dentro de um certo diretório. Então com essas linhas, temos diretórios
programados para executar programas de hora em hora, diariamente, semanalmente
ou mensalmente. Abaixo a tabela:
Diretório Período
/etc/cron.hourly De
hora em hora
/etc/cron.daily Diariamente
/etc/cron.weekly Semanalmente
/etc/cron.monthly Mensalmente
Comandos basicos do editor vi
O editor de texto preferido de 9
entre cada 10 usuários UNIX .
A sintaxe para executar o vi eh a seguinte:
A sintaxe para executar o vi eh a seguinte:
$ vi nome_do_arquivo
Uma vez carregado o vi, veja
abaixo uma lista dos principais comandos:
Observação:
Para passar para o modo comando pressione ESC.
Observação:
Para passar para o modo comando pressione ESC.
Comandos básicos de inserção de texto:
|
i
|
Insere
texto antes do cursor
|
|
a
|
Insere
texto depois do cursor
|
|
r
|
Insere
texto no inicio da linha onde se encontra o cursor
|
|
A
|
Insere
texto no final da linha onde se encontra o cursor
|
|
o
|
Adiciona
linha abaixo da linha atual
|
|
O
|
Adiciona
linha acima da linha atual
|
|
Ctrl +
h
|
Apaga o
ultimo caracter
|
Comandos básicos de movimentação:
|
Ctrl+f
|
Move o
cursor para a próxima tela
|
|
Ctrl+b
|
Move o
cursor para a tela anterior
|
|
H
|
Move o
cursor para a primeira linha da tela
|
|
M
|
Move o
cursor para o meio da tela
|
|
L
|
Move o
cursor para a ultima linha da tela
|
|
h
|
Move o
cursor um caracter a esquerda
|
|
j
|
Move o
cursor para a próxima linha
|
|
k
|
Move o
cursor para linha anterior
|
|
l
|
Move o
cursor um caracter a direita
|
|
w
|
Move o
cursor para o inicio da próxima palavra (Ignora a pontuação)
|
|
W
|
Move o
cursor para o inicio da próxima palavra (Não ignora a pontuação)
|
|
b
|
Move o
cursor para o inicio da palavra anterior (Ignora a pontuação)
|
|
B
|
Move o
cursor para o inicio da palavra anterior (Não ignora a pontuação
|
|
0
|
Move o
cursor para o inicio da linha atual
|
|
^
|
Move o
cursor para o primeiro caracter não branco da linha atual
|
|
$
|
Move o
cursor para o final da linha atual
|
|
nG
|
Move o
cursor para a linha n
|
|
G
|
Move o
cursor para a ultima linha do arquivo
|
Comandos básicos para localizar texto:
|
/palavra
|
Busca
pela palavra ou caracter em todo o texto
|
|
?palavra
|
Move o
cursor para a ocorrência anterior da palavra
|
|
n
|
Repete
o ultimo comando / ou ?
|
|
N
|
Repete
o ultimo comando / ou ? , na direção reversa
|
|
Ctrl+g
|
Mostra
o nome do arquivo, o numero da linha corrente e o total de linhas
|
Comandos básicos para alteração de texto:
|
x
|
Deleta
o caracter que esta sob o cursor
|
|
dw
|
Deleta
a palavra, da posição atual do cursor ate o final
|
|
dd
|
Deleta
a linha atual
|
|
D
|
Deleta
a linha a partir da posição atual do cursor ate o final
|
|
rx
|
Substitui
o caracter sob o cursor pelo especificado em x( opcional indicar o caracter)
|
|
Rx
|
Substitui
a palavra sob o cursor pela palavra indicada em x
|
|
u
|
Desfaz
a ultima modificação
|
|
U
|
Desfaz
todas as modificações feitas na linha atual
|
|
J
|
Une a
linha corrente a próxima
|
|
s:/palavra1/palavra2
|
Substitui
a primeira ocorrência de "palavra1" por "palavra2"
|
Comandos para salvar o texto:
|
:wq
|
Salva o
arquivo e sai do editor
|
|
:w
nome_do_arquivo
|
Salva o
arquivo corrente com o nome especificado
|
|
:w!
nome_do_arquivo
|
Salva o
arquivo corrente no arquivo especificado
|
|
:q
|
Sai do
editor
|
|
:q!
|
Sai do
editor sem salvar as alterações realizadas
|
Acertando data/hora no Linux
Para alterar data e hora no GNU/Linux, basta digitar o
comando abaixo com seus respectivos valores:
# date mmddhhmmyyyy
O significado de cada conjunto de caracteres é:
* mm: mês
* dd: dia
* hh: hora
* mm: minuto
* yyyy: ano
Assinar:
Postagens (Atom)

