Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
107.2 Lição 1
Tópico 105: Shells e scripts do Shell
105.1 Personalizar e trabalhar no ambiente shell
  • 105.1 Lição 1
  • 105.1 Lição 2
  • 105.1 Lição 3
105.2 Editar e escrever scripts simples
  • 105.2 Lição 1
  • 105.2 Lição 2
Tópico 106: Interfaces de usuário e Desktops
106.1 Instalar e configurar o X11
  • 106.1 Lição 1
106.2 Desktops gráficos
  • 106.2 Lição 1
106.3 Acessibilidade
  • 106.3 Lição 1
Tópico 107: Tarefas administrativas
107.1 Administrar contas de usuário, grupos e arquivos de sistema relacionados
  • 107.1 Lição 1
  • 107.1 Lição 2
107.2 Automatizar e agendar tarefas administrativas de sistema
  • 107.2 Lição 1
  • 107.2 Lição 2
107.3 Localização e internacionalização
  • 107.3 Lição 1
Tópico 108: Serviços essenciais do sistema
108.1 Manutenção da data e hora do sistema
  • 108.1 Lição 1
  • 108.1 Lição 2
108.2 Log do sistema
  • 108.2 Lição 1
  • 108.2 Lição 2
108.3 Fundamentos de MTA (Mail Transfer Agent)
  • 108.3 Lição 1
108.4 Configurar impressoras e impressão
  • 108.4 Lição 1
Tópico 109: Fundamentos de Rede
109.1 Fundamentos de protocolos de internet
  • 109.1 Lição 1
  • 109.1 Lição 2
109.2 Configuração persistente de rede
  • 109.2 Lição 1
  • 109.2 Lição 2
109.3 Soluções para problemas simples de rede
  • 109.3 Lição 1
  • 109.3 Lição 2
109.4 Configurar DNS cliente
  • 109.4 Lição 1
Tópico 110: Segurança
110.1 Tarefas administrativas de segurança
  • 110.1 Lição 1
110.2 Configurar a segurança do host
  • 110.2 Lição 1
110.3 Proteção de dados com criptografia
  • 110.3 Lição 1
  • 110.3 Lição 2
How to get certified
  1. Tópico 107: Tarefas administrativas
  2. 107.2 Automatizar e agendar tarefas administrativas de sistema
  3. 107.2 Lição 1

107.2 Lição 1

Certificação:

LPIC-1

Versão:

5.0

Tópico:

107 Tarefas administrativas

Objetivo:

107.2 Automatizar tarefas de administração do sistema agendando trabalhos

Lição:

1 de 2

Introdução

Uma das funções mais importantes de um bom administrador de sistema é agendar os jobs (trabalhos) que precisam ser executados regularmente. Por exemplo, um administrador pode criar e automatizar jobs para fazer backups, atualizações do sistema e muitas outras atividades repetitivas. Para isso, usamos o recurso cron, que serve para para automatizar o agendamento de tarefas periódicas.

Como agendar jobs com o cron

No Linux, cron é um daemon que roda continuamente e desperta a cada minuto para verificar uma série de tabelas em busca de tarefas a executar. Essas tabelas são chamadas de crontabs e contêm os chamados cron jobs (trabalhos cron). O Cron é adequado para servidores e sistemas que estão constantemente ligados, pois cada cron job é executado somente se o sistema estiver rodando no horário programado. Ele pode ser usado por usuários comuns, cada um com seu próprio crontab, bem como pelo usuário root, que gerencia os crontabs do sistema.

Note

No Linux, também existe o recurso anacron, adequado para sistemas que podem ser desligados (como computadores de mesa ou laptops). Ele só pode ser usado pelo root. Se a máquina estiver desligada quando os trabalhos de anacron tiverem de ser executados, isso ocorrerá na próxima vez em que se ligar a máquina. O anacron está fora do escopo da certificação LPIC-1.

Crontabs de usuário

Os crontabs de usuário são arquivos de texto que gerenciam o agendamento de trabalhos cron definidos pelo usuário. Eles sempre têm o nome da conta de usuário que os criou, mas a localização desses arquivos depende da distribuição usada (geralmente é um subdiretório de /var/spool/cron).

Cada linha em um crontab de usuário contém seis campos separados por um espaço:

  • O minuto da hora (0-59).

  • A hora do dia (0-23).

  • O dia do mês (1-31).

  • O mês do ano (1-12).

  • O dia da semana (0-7 com Domingo=0 ou Domingo=7).

  • O comando a executar.

Para o mês do ano e o dia da semana, podemos usar as três primeiras letras do nome em vez do número correspondente.

Os primeiros cinco campos indicam quando executar o comando especificado no sexto campo e podem conter um ou mais valores. Em particular, é possível especificar vários valores usando:

* (asterisco)

Refere-se a qualquer valor.

, (vírgula)

Especifica uma lista de valores possíveis.

- (hífen)

Especifica um intervalo de valores possíveis.

/ (barra)

Especifica valores escalonados.

Muitas distribuições incluem o arquivo /etc/crontab, que pode ser usado como referência para a disposição dos elementos de um arquivo cron. Eis um exemplo de arquivo /etc/crontab de uma instalação de Debian:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

Crontabs de sistema

Os crontabs de sistema são arquivos de texto que gerenciam a programação de cron jobs do sistema e só podem ser editados pelo usuário root. /etc/crontab e todos os arquivos no diretório /etc/cron.d são crontabs de sistema.

A maioria das distribuições inclui também os diretórios /etc/cron.hourly (de hora em hora), /etc/cron.daily (diariamente), /etc/cron.weekly (semanalmente) e /etc/cron.monthly (mensalmente), que contêm scripts que devem ser executados com a frequência adequada. Por exemplo, se você quiser executar um script diariamente, pode colocá-lo em /etc/cron.daily.

Warning

Algumas distribuições usam /etc/cron.d/hourly, /etc/cron.d/daily, /etc/cron.d/weekly e /etc/cron.d/monthly. Lembre-se de sempre conferir os diretórios corretos nos quais colocar os scripts que o cron deve executar.

A sintaxe dos crontabs de sistema é semelhante à dos crontabs de usuário, porém ela requer um campo adicional obrigatório que especifica qual usuário executará o cron job. Portanto, cada linha em um crontab de sistema contém sete campos separados por um espaço:

  • O minuto da hora (0-59).

  • A hora do dia (0-23).

  • O dia do mês (1-31).

  • O mês do ano (1-12).

  • O dia da semana (0-7 com Domingo=0 ou Domingo=7).

  • O nome da conta de usuário a ser usada ao executar o comando.

  • O comando a executar.

Quanto aos crontabs do usuário, podemos especificar mais de um valor nos campos de tempo usando os operadores *, , , - e /. Também é possível indicar o mês do ano e o dia da semana com as três primeiras letras do nome em vez do número correspondente.

Especificações de tempo particulares

Ao editar os arquivos crontab, podemos usar atalhos especiais nas primeiras cinco colunas em vez das especificações de tempo:

@reboot

Roda a tarefa especificada uma vez após a reinicialização.

@hourly

Roda a tarefa especificada uma vez por hora no início da hora.

@daily (or @midnight)

Roda a tarefa especificada uma vez por dia à meia-noite.

@weekly

Roda a tarefa especificada uma vez por semana, à meia-noite de domingo.

@monthly

Roda a tarefa especificada uma vez por mês, à meia-noite do primeiro dia do mês.

@yearly (or @annually)

Roda a tarefa especificada uma vez por ano, à meia-noite de 1º de janeiro.

Variáveis no crontab

Dentro de um arquivo crontab, pode haver atribuições de variáveis definidas antes que as tarefas agendadas sejam declaradas. As variáveis de ambiente comumente definidas são:

HOME

O diretório no qual o cron invoca os comandos (por padrão, o diretório inicial do usuário).

MAILTO

O nome do usuário ou o endereço para o qual a saída e o erro padrão são enviados (por padrão, o proprietário do crontab). Diversos valores separados por vírgulas também são permitidos, e um valor vazio indica que nenhum email deve ser enviado.

PATH

O caminho no qual os comandos podem ser encontrados.

SHELL

O shell a ser usado (por padrão /bin/sh).

Criando cron jobs de usuário

O comando crontab é usado para manter arquivos crontab para usuários individuais. Em particular, o comando crontab -e serve para editar seu próprio arquivo crontab ou para criar um, caso ele ainda não exista.

$ crontab -e
no crontab for frank - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        < ‑‑‑‑ easiest
  3. /usr/bin/emacs24
  4. /usr/bin/vim.tiny

Choose 1-4 [2]:

Por padrão, o comando crontab abre o editor especificado pelas variáveis de ambiente VISUAL ou EDITOR para que você possa começar a editar seu arquivo crontab com o editor de sua preferência. Algumas distribuições, como mostrado no exemplo acima, permitem escolher o editor em uma lista quando crontab é executado pela primeira vez.

Se você deseja executar o script foo.sh, localizado em seu diretório inicial, todos os dias às 10:00, adicione a seguinte linha ao seu arquivo crontab:

0 10 * * * /home/frank/foo.sh

Considere os seguintes exemplos de entradas de crontab:

0,15,30,45 08 * * 2 /home/frank/bar.sh
30 20 1-15 1,6 1-5 /home/frank/foobar.sh

Na primeira linha, o script bar.sh é executado todas as terças-feiras às 08:00, às 08:15, às 08:30 e às 08:45. Na segunda linha, o script foobar.sh é executado às 20h30 de segunda a sexta-feira durante os primeiros quinze dias de janeiro e junho.

Warning

Embora os arquivos crontab possam ser editados manualmente, é sempre recomendável usar o comando crontab. As permissões nos arquivos crontab geralmente possibilitam editá-los por meio do comando crontab.

Além da opção -e mencionada acima, o comando crontab inclui outras opções úteis:

-l

Exibe o crontab atual na saída padrão.

-r

Remove o crontab atual.

-u

Especifica o nome do usuário cujo crontab precisa ser modificado. Esta opção requer privilégios de root e permite que o usuário root edite os arquivos crontab do usuário.

Criando cron jobs do sistema

Ao contrário dos crontabs de usuário, os crontabs de sistema são atualizados com um editor; portanto, não é preciso executar o comando crontab para editar /etc/crontab e os arquivos em /etc/cron.d. Lembre-se de que, ao editar crontabs do sistema, é necessário especificar a conta que será usada para executar o cron job (geralmente o usuário root).

Por exemplo, para executar o script barfoo.sh localizado no diretório /root todos os dias à 01:30, abra /etc/crontab com seu editor preferido e adicione a seguinte linha:

30 01 * * * root /root/barfoo.sh >>/root/output.log 2>>/root/error.log

No exemplo acima, a saída do job é anexada a /root/output.log, enquanto os erros são anexados a /root/error.log.

Warning

Exceto nos casos em que a saída é redirecionada para um arquivo, como no exemplo acima (ou se a variável MAILTO estiver definida como um valor em branco), toda a saída de um trabalho cron será enviada ao usuário via email. Uma prática comum é redirecionar a saída padrão para /dev/null (ou para um arquivo, para revisão posterior, se necessário) e não redirecionar o erro padrão. Desta forma, o usuário é notificado imediatamente por email sobre eventuais erros.

Configurando o acesso ao agendamento de trabalhos

No Linux, os arquivos /etc/cron.allow e /etc/cron.deny são usados para definir as restrições do crontab. Em particular, eles servem para permitir ou proibir o agendamento de trabalhos cron para diferentes usuários. Se /etc/cron.allow existir, apenas usuários não root listados nele podem agendar trabalhos cron usando o comando crontab. Se /etc/cron.allow não existir, mas /etc/cron.deny sim, apenas usuários não root listados neste arquivo não podem agendar trabalhos cron usando o comando crontab (neste caso, um /etc/cron.deny vazio significa que todos os usuários têm permissão para agendar trabalhos cron com o crontab). Se nenhum desses arquivos existir, o acesso do usuário ao agendamento de trabalhos cron dependerá da distribuição usada.

Note

Os arquivos /etc/cron.allow e /etc/cron.deny contêm uma lista de nomes de usuários separados por linhas.

Uma alternativa ao cron

Usando o systemd como gerenciador de sistema e serviços, podemos definir temporizadores como alternativa ao cron para agendar tarefas. Temporizadores são arquivos da unidade systemd identificados pelo sufixo .timer. Para cada um deles, deve haver um arquivo de unidade correspondente descrevendo a unidade a ser ativada quando o temporizador terminar. Por padrão, um timer ativa um serviço com o mesmo nome, exceto pelo sufixo.

Um temporizador inclui uma seção [Timer] que especifica quando os jobs agendados devem ser executados. Especificamente, podemos usar a opção OnCalendar= para definir temporizadores em tempo real, que funcionam da mesma maneira que os cron jobs (baseiam-se na expressão de eventos de calendário). A opção OnCalendar= requer a seguinte sintaxe:

DayOfWeek Year-Month-Day Hour:Minute:Second

sendo DayOfWeek opcional. Os operadores *, / e , têm o mesmo significado dos que são usados para cron jobs. Usamos .. entre dois valores para indicar um intervalo contíguo. Na especificação DayOfWeek (dia da semana), podemos usar as primeiras três letras do nome ou o nome completo.

Note

Você também pode definir temporizadores monotônicos, que são ativados após algum tempo decorrido de um ponto de início específico (por exemplo, quando a máquina foi inicializada ou quando o próprio temporizador foi ativado).

Por exemplo, para rodar o serviço /etc/systemd/system/foobar.service às 05:30 da primeira segunda-feira do mês, adicionamos as seguintes linhas no arquivo de unidade /etc/systemd/system/foobar.timer correspondente:

[Unit]
Description=Run the foobar service

[Timer]
OnCalendar=Mon *-*-1..7 05:30:00
Persistent=true

[Install]
WantedBy=timers.target

Depois de criar o novo temporizador, você pode ativá-lo e iniciá-lo executando os seguintes comandos como root:

# systemctl enable foobar.timer
# systemctl start foobar.timer

Podemos alterar a frequência do trabalho agendado modificando o valor OnCalendar e, em seguida, digitando o comando systemctl daemon-reload.

Finalmente, se você quiser ver a lista de temporizadores ativos ordenados pelo momento em que terminam, use o comando systemctl list-timers. A opção --all exibe também as unidades de temporizador inativas.

Note

Lembre-se de que os temporizadores são registrados no diário do systemd e você pode rever os registros das diferentes unidades usando o comando journalctl. Além disso, se estiver trabalhando como um usuário comum, será preciso usar a opção --user dos comandos systemctl e journalctl.

Em vez da forma normalizada mais longa mencionada acima, é possível usar algumas expressões especiais que descrevem frequências específicas para a execução de um job:

hourly

Roda a tarefa especificada uma vez por hora, no início da hora.

daily

Roda a tarefa especificada uma vez por dia à meia-noite.

weekly

Roda a tarefa especificada uma vez por semana, na meia-noite de segunda-feira.

monthly

Roda a tarefa especificada uma vez por mês, na meia-noite do primeiro dia do mês.

yearly

Roda a tarefa especificada uma vez por ano, na meia-noite de 1º de janeiro.

Consulte as páginas de manual para ver a lista completa de especificações de hora e data em systemd.timer(5).

Exercícios Guiados

  1. Para cada um dos seguintes atalhos de crontab, indique a especificação de tempo correspondente (ou seja, as cinco primeiras colunas de um arquivo crontab de usuário):

    @hourly

    @daily

    @weekly

    @monthly

    @annually

  2. Para cada um dos seguintes atalhos de OnCalendar, indique a especificação de tempo correspondente (a forma normalizada mais longa):

    hourly

    daily

    weekly

    monthly

    yearly

  3. Explique o significado das seguintes especificações de tempo encontradas em um arquivo crontab:

    30 13 * * 1-5

    00 09-18 * * *

    30 08 1 1 *

    0,20,40 11 * * Sun

    00 09 10-20 1-3 *

    */20 * * * *

  4. Explique o significado das seguintes especificações de tempo usadas na opção OnCalendar de um arquivo de temporizador:

    *-*-* 08:30:00

    Sat,Sun *-*-* 05:00:00

    *-*-01 13:15,30,45:00

    Fri *-09..12-* 16:20:00

    Mon,Tue *-*-1,15 08:30:00

    *-*-* *:00/05:00

Exercícios Exploratórios

  1. Pressupondo que você esteja autorizado a agendar tarefas com o cron como um usuário comum, qual comando você usaria para criar seu próprio arquivo crontab?

  2. Crie um job agendado simples que execute o comando date todas as sextas-feiras às 13h. Onde você poderia ver o resultado deste trabalho?

  3. Crie outro job agendado que execute o script foobar.sh a cada minuto, redirecionando a saída para o arquivo output.log em seu diretório inicial de forma que apenas o erro padrão seja enviado a você por email.

  4. Observe a entrada crontab do job agendado que acaba de criar. Por que não é necessário especificar o caminho absoluto do arquivo no qual a saída padrão é salva? E por que podemos usar o comando ./foobar.sh para executar o script?

  5. Edite a entrada crontab anterior removendo o redirecionamento de saída e desabilite o primeiro cron job que criou.

  6. Como é possível enviar a saída e os erros do seu trabalho agendado para a conta de usuário emma via email? E como evitar o envio da saída padrão e erros por email?

  7. Execute o comando ls -l /usr/bin/crontab. Qual bit especial está definido e qual é o seu significado?

Resumo

Nesta lição, você aprendeu:

  • Usar cron para executar jobs em intervalos regulares.

  • Gerenciar os cron jobs.

  • Configurar o acesso de usuário ao agendamento de cron jobs.

  • Entender o papel das unidades de temporizador do systemd como alternativa ao cron.

Os seguintes comandos e arquivos foram discutidos nesta lição:

crontab

Mantém os arquivos crontab de usuários individuais.

/etc/cron.allow e /etc/cron.deny

Arquivos particulares usados para definir as restrições do crontab.

/etc/crontab

Arquivo crontab do sistema.

/etc/cron.d

O diretório que contém os arquivos crontab do sistema.

systemctl

Controla o sistema e o gerenciador de serviços systemd. Em relação aos temporizadores, pode ser utilizado para habilitá-los e iniciá-los.

Respostas aos Exercícios Guiados

  1. Para cada um dos seguintes atalhos de crontab, indique a especificação de tempo correspondente (ou seja, as cinco primeiras colunas de um arquivo crontab de usuário):

    @hourly

    0 * * * *

    @daily

    0 0 * * *

    @weekly

    0 0 * * 0

    @monthly

    0 0 1 * *

    @annually

    0 0 1 1 *

  2. Para cada um dos seguintes atalhos de OnCalendar, indique a especificação de tempo correspondente (a forma normalizada mais longa):

    hourly

    *-*-* *:00:00

    daily

    *-*-* 00:00:00

    weekly

    Mon *-*-* 00:00:00

    monthly

    *-*-01 00:00:00

    yearly

    *-01-01 00:00:00

  3. Explique o significado das seguintes especificações de tempo encontradas em um arquivo crontab:

    30 13 * * 1-5

    Às 13h30 todos os dias da semana, de segunda a sexta-feira

    00 09-18 * * *

    Todos os dias e todas as horas das 09h00 às 18h00

    30 08 1 1 *

    Às 08h30 do primeiro dia de janeiro

    0,20,40 11 * * Sun

    Todos os domingos às 11h, 11h20 e 11h40

    00 09 10-20 1-3 *

    Às 09h00 de 10 a 20 de janeiro, fevereiro e março

    */20 * * * *

    A cada vinte minutos

  4. Explique o significado das seguintes especificações de tempo usadas na opção OnCalendar de um arquivo de temporizador:

    *-*-* 08:30:00

    Todos os dias às 08:30

    Sat,Sun *-*-* 05:00:00

    Sábado e domingo às 05h00

    *-*-01 13:15,30,45:00

    Às 13h15, 13h30 e 13h45 do primeiro dia do mês

    Fri *-09..12-* 16:20:00

    Às 16h20 todas as sextas-feiras de setembro, outubro, novembro e dezembro

    Mon,Tue *-*-1,15 08:30:00

    Às 08h30 do primeiro ou décimo quinto dia de cada mês, apenas se o dia for segunda ou terça-feira

    *-*-* *:00/05:00

    A cada cinco minutos

Respostas aos Exercícios Exploratórios

  1. Pressupondo que você esteja autorizado a agendar tarefas com o cron como um usuário comum, qual comando você usaria para criar seu próprio arquivo crontab?

    dave@hostname ~ $ crontab -e
    no crontab for dave - using an empty one
    
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/ed
      2. /bin/nano        < ---- easiest
      3. /usr/bin/emacs24
      4. /usr/bin/vim.tiny
    
    Choose 1-4 [2]:
  2. Crie um job agendado simples que execute o comando date todas as sextas-feiras às 13h. Onde você poderia ver o resultado deste trabalho?

    00 13 * * 5 date

    A saída é enviada ao usuário; para visualizá-la, use o comando mail.

  3. Crie outro job agendado que execute o script foobar.sh a cada minuto, redirecionando a saída para o arquivo output.log em seu diretório inicial de forma que apenas o erro padrão seja enviado a você por email.

    */1 * * * * ./foobar.sh >> output.log
  4. Observe a entrada crontab do job agendado que acaba de criar. Por que não é necessário especificar o caminho absoluto do arquivo no qual a saída padrão é salva? E por que podemos usar o comando ./foobar.sh para executar o script?

    cron invoca os comandos do diretório inicial do usuário, a menos que outro local seja especificado pela variável de ambiente HOME dentro do arquivo crontab. Por esta razão, podemos usar o caminho relativo do arquivo de saída e executar o script com ./foobar.sh.

  5. Edite a entrada crontab anterior removendo o redirecionamento de saída e desabilite o primeiro cron job que criou.

    #00 13 * * 5 date
    */1 * * * * ./foobar.sh

    Para desabilitar um trabalho cron, podemos simplesmente comentar a linha correspondente dentro do arquivo crontab .

  6. Como é possível enviar a saída e os erros do seu trabalho agendado para a conta de usuário emma via email? E como evitar o envio da saída padrão e erros por email?

    Para enviar a saída padrão e o erro para emma, definimos a variável de ambiente MAILTO em nosso arquivo crontab desta forma:

    MAILTO="emma"

    Para dizer ao cron que nenhum email deve ser enviado, atribuímos um valor vazio à variável de ambiente MAILTO.

    MAILTO=""
  7. Execute o comando ls -l /usr/bin/crontab. Qual bit especial está definido e qual é o seu significado?

    $ ls -l /usr/bin/crontab
    -rwxr-sr-x 1 root crontab 25104 feb 10  2015 /usr/bin/crontab

    O comando crontab tem o bit SGID definido (o caractere s ao invés do sinalizador executável para o grupo), o que significa que é executado com os privilégios do grupo (portanto, crontab). É por isso que usuários comuns podem editar seu arquivo crontab usando o comando crontab. Note que muitas distribuições definem as permissões de arquivo de tal forma que os arquivos crontab só podem ser editados por meio do comando crontab.

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

107.2 Automatizar e agendar tarefas administrativas de sistema (107.2 Lição 2)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.