SISTEMAS OPERACIONAIS LIVRES (LINUX)
Agendador de Tarefas Ocron é um ótimo agendador de tarefas, com ele você pode agendar para um determinado momento um programa qualquer a ser executado. Sua aplicação é diversa, pois pode ser utilizado, por exemplo, em manutenção, criação de arquivos de backup, logs e muitas outras coisas. O cron é incluído por padrão na maioria das distribuições e é de muito fácil uso, por isso não será difícil para que você possa aplicá-lo em seu dia-a-dia. 2
Agendador de Tarefas Sintaxe: crontab-parâmetro Parâmetro Função -e Edita lista de tarefas agendadas -l Exibe a lista de tarefas agendadas -d Remove as tarefas agendadas 3
Entendendo o agendamento Ao executar o comando "crontab -e", seu editor de texto abrirá (provavelmente o vi) e aí você já poderá começar a agendar suas tarefas. Vejamos a estrutura abaixo: Sintaxe: Minuto Hora Dia do mês Mês Dia da Semana Comando Essa é a ordem em que as informações devem ser inseridas. 4
Entendendo o agendamento Exemplo: 30 14 5 * * tar zcvf /bkp.tar.gz /etc No exemplo acima ficará agendado para todo dia 5 de todo mês às 14:30 o comando "tar zcvf /bkp.tar.gz /etc". 5
Entendendo o agendamento Os campos e seus valores: Campo Valores Minuto 0 59 Hora 0 23 Dia do Mês 1 31 Mês 1 12 Dia da Semana 0 = domingo, 1 = segunda Sendo o "*" correspondente a todas as possibilidades. 6
Entendendo o agendamento Tendo como base os conceitos anteriores, agendaremos um comando para listar o conteúdo de um certo diretório de 2 em 2 minutos, somente de Segunda à Sexta.. $ crontab e.. */2 * * * 1-5 ls -lah OBS: Não esqueça de salvar o arquivo (no caso do "vi" use o ESC e depois :x para salvar e sair). 7
Entendendo o agendamento Para passar mais de um valor a qualquer campo utilize a "," (vírgula). Confira: $ crontab -e 10,30,45 19 1,15 * * tar zcvf /bkp.tar.gz /etc O comando acima executará o comando "tar zcvf /bkp.tar.gz /etc" todos os dias 1 e 15 do mês às 19:10, 19:30 e 19:45h. 8
Entendendo o agendamento Para listar as tarefas agendadas execute: $ crontab -l Para apagar todo o conteúdo agendado execute: $ crontab -d 9
Habilitar quotas de disco Atualmente temos 3 tipos de quotas de disco: vfsold (versão 1), vfsv0 (versão 2) e xfs (quota de disco para o sistema de arquivos XFS). Vamos cobrir a versão mais utilizada: vfsv0 (versão 2). Para habilitar quota de disco vfsv0 é necessário que seu kernel tenha suporte. Os kernels 2.4 e 2.6 tem total suporte necessário. Já versões anteriores do kernel tem suporte incompleto a quota de disco e será necessário recompilar para ter suporte a quota de disco. 10
Habilitar quotas de disco Neste artigo estou utilizando o kernel 2.6.15-23-386. Agora será necessário instalar as ferramentas para manipular as quotas de disco. Utilizando a ferramenta APT-GET: # apt-get install quota Vamos habilitar quota de disco para a partição de disco que queremos utilizar quotas. Para isso é necessário editar o arquivo de configuração das tabelas de sistemas de arquivos, o /etc/fstab, e incluir as opções "usrquota" (para quota por usuários), e/ou "grpquota" (para quota por grupos). 11
Habilitar quotas de disco No exemplo abaixo estamos habilitando quota de disco para usuários e grupos na partição /dev/hda4 montada em /share: OBS: Somente sistemas de arquivos ext2, ext3 e xfs possuem suporte a quota de disco no Linux. 12
Habilitar quotas de disco Execute o comando "mount" para verificar se as opções de quotas estão habilitadas. Exemplo: # mount grep share /dev/hda4 on /share type ext3 (rw,usrquota,grpquota) Utilizando os comandos quotachek, quotaon e quotaoff: O comando quotacheck é utilizado para checar quotas de disco em todos os sistemas de arquivos em /etc/fstab. E também é utilizado para criar os arquivos com informações sobre as quotas: aquota.user e aquota.group. O comando quotaon é utilizado para habilitar a checagem de quota de disco. Já o comando quotaoff desabilita quotas de disco no sistema. Ambos os comandos quotacheck e quotaon são normalmente incluídos nos scripts de inicialização do sistema, para checar e habilitar a quota de disco após você reiniciar seu computador. 13
Habilitar quotas de disco No exemplo abaixo as seguintes opções serão passadas para os comandos quotacheck e quotaon: -a - Checa todos os sistemas de arquivos em /etc/fstab que estão habilitados como "automount"; -u - Checa quotas de usuários (opção padrão); -g - Checa quotas de grupos; -v - Mostra mais detalhes na saída do comando (modo verbose). 14
Habilitar quotas de disco Então vamos aos comandos: # quotacheck -augv quotacheck: Quota for users is enabled on mountpoint /share so quotacheck might damage the file. Please turn quotas off or use -f to force checking. # quotaon -augv quotaon: using /share/aquota.group on /dev/hda4 [/share]: Device or resource busy quotaon: using /share/aquota.user on /dev/hda4 [/share]: Device or resource busy 15
Habilitar quotas de disco Agora vamos verificar se os arquivos aquota.user e aquota.group foram criados em /share: # cd /share # ls -lah total 37K drwxr-xr-x 3 root root 4,0K 2006-09-16 17:10. drwxr-xr-x 23 root root 616 2006-09-16 14:16.. -rw------- 1 root root 6,0K 2006-09-16 17:10 aquota.group -rw------- 1 root root 6,0K 2006-09-16 17:10 aquota.user drwx------ 2 root root 16K 2006-09-16 14:13 lost+found OBS: Perceba que os arquivos aquota.user e aquota.group tem permissão de leitura e escrita somente para o usuário root, já que somente o usuário root pode gerenciar quotas no sistema. 16
Os principais arquivos de log apt/ - diretório com logs de uso do gerenciador de pacotes apt-get; boot.log - registro dos serviços carregados durante a inicialização do sistema; dmesg - log do último boot; lastlog - arquivo binário com dados de logins e desligamentos, usados pelo comandolast; auth.log - registro do uso de autorizações do sistema, como mecanismos que exigem senhas. Exemplo: o comandosudo ou logins SSH remotos; daemon.log - arquivo com registro sobre as atividades dos daemons, serviços executados em segundo plano; 17
Os principais arquivos de log debug - mensagens do sistema e de aplicações em geral em modo dedebug; kern.log - mensagens detalhadas do kernel do Ubuntu Linux; syslog - mensagens do Ubuntu Linux que não foram armazenadas em logs mais específicos. Consulte-o quando você não achar a mensagem desejada em outros arquivos; Xorg.0.log - informações sobre drivers da placa de vídeo e o ambiente gráfico. Além desses, o /var/log ainda contém subdiretórios usados por programas que separam as mensagens de log em vários arquivos, como apache, samba etc. 18
Operações básicas com logs Para visualizar o conteúdo de um arquivo de log, basta usar o comando less, passando como parâmetro o caminho e nome do arquivo a ser visualizado. Lembre-se que você não precisa percorrer as inúmeras linhas de texto do arquivo para encontrar a entrada correta: basta pesquisar por uma palavrachave. Para isso, durante a execução do less, pressione a tecla da barra (/) e, em seguida, digite o termo desejado e pressione Enter. Para procurar por outras ocorrências da palavra pesquisada, pressione a tecla "n".. 19
Operações básicas com logs Caso deseje visualizar apenas as primeiras linhas de um arquivo de log, use o comando head arquivo.log. Você pode estipular o número de linhas a serem exibidas da seguinte forma: less -n 20 arquivo.log. Nesse caso, por exemplo, serão exibidas as 20 primeiras linhas do arquivo. Já o fim do arquivo pode ser visto com o comandotail, que possui sintaxe bem semelhante à do head: tail arquivo.log ou, se preferir, tail -n 2 arquivo.log. 20
Operações básicas com logs Porém, é provável que o parâmetro mais usado do tail seja o "-f", que permite visualizar em tempo real as alterações sofridas por um arquivo de log: tail -f arquivo.log. Com ele você poderá realizar testes e conferir, em tempo real, que tipo de mensagens os arquivos de log receberão. Para interromper o tail-f, basta usar a combinação de teclas Ctrl + C. 21
Operações básicas com logs E já que logs, na maior parte das vezes, não passam de grandes arquivos de texto puro, nada como usar o grep para ajudar a localizar rapidamente as linhas mais importantes. Você pode pesquisar por um termo em um arquivo com a seguinte linha: grep palavra arquivo.log E também pode usar expressões regulares. Para procurar todas as linhas que começam com system, por exemplo, use: grep "^system" arquivo.log Caso o resultado seja longo demais para caber em uma tela, você pode redirecioná-lo para o comando less: grep "system" arquivo.log less 22
Backup dpkg get-selections > installed-software.log Restore dpkg set-selections < installed-software.log apt-get dselect-upgrade 23