Como agendar o trabalho de Crontab para executar como um usuário específico

Como agendar o trabalho de Crontab para executar como um usuário específico

Por padrão, Crontab agenda trabalhos para o usuário atual. No entanto, há momentos em que, como administrador, pode ser necessário agendar empregos para outros usuários. A boa notícia é que Crontab permite, quando você adiciona o -você opção seguida pelo usuário que você deseja agendar os empregos para. Além disso, você pode precisar de permissão do administrador antes de agendar trabalhos para outros usuários.

A postagem de hoje cobre como agendar vários trabalhos para diferentes usuários como administrador.

Como agendar empregos no Linux

O Linux oferece o utilitário Cron, que permite aos usuários agendar trabalhos abrindo o arquivo Crontab usando um editor. O comando abaixo abre um arquivo crontab para o usuário atual. Se você precisar agendar um trabalho, adicionar o trabalho Cron na parte inferior do arquivo.

Crontab -e

A sintaxe para agendar um trabalho é:

Min Hour Day-of Month Mês do dia da semana [Command/Script]
0-59 0-23 1-31 1-12 0-6

Por exemplo, o comando seria como mostrado abaixo se você precisar agendar um trabalho de cron que imprime a data e a hora atuais para o usuário registrado e o armazenar em um arquivo em uma determinada data e hora.

25 19 * 7 * Data>/Home/Kyle/Data.TXT

O trabalho programado trabalhou para o usuário atualmente registrado.

Você deve usar o -você formato para agendar um trabalho para um usuário específico. A sintaxe para isso seria:

Sudo Crontab -e -u Nome de usuário

Para o nosso caso, usaremos um usuário nomeado Linuxhint1.

O comando será mostrado abaixo para abrir um arquivo crontab para o usuário. Observe que você deve selecionar qual editor usar para o arquivo Crontab. Vamos usar um Editor de Nano para o nosso exemplo.

Depois que nosso arquivo crontab para o usuário específico abrir, podemos agendar um trabalho criando -o na parte inferior do arquivo. Nesse caso, estamos criando um trabalho de cron que executa um script nomeado usuário1.sh Todo primeiro dia de cada mês às 18:30, como mostrado abaixo.

Salve o arquivo e saia. Você deve receber uma mensagem como a abaixo, confirmando que o novo Crontab foi instalado para o novo usuário.

Para listar o trabalho programado de um usuário específico, use o comando abaixo. Substitua o nome de usuário para corresponder ao de seu alvo.

sudo crontab -l -u linuxhint1

Na saída acima, podemos observar o trabalho Cron que criamos para o nosso usuário específico. Se você não especificar o usuário, obterá os trabalhos programados para o usuário atual.

Da mesma forma, você pode remover os trabalhos programados de outro usuário.

O comando para remover trabalhos agendados é:

Crontab -r

No entanto, isso remove para o usuário atual. Você deve adicionar o nome de usuário do usuário -alvo, como mostrado abaixo.

sudo crontab -r -u linuxhint1

Se listarmos os trabalhos programados para o nosso usuário, Linuxhint1, Vemos que não temos nenhum. Assim, conseguimos remover o trabalho programado.

sudo crontab -l -u linuxhint1

Como administrador, você tem o poder de agendar trabalhos para qualquer usuário do sistema. Especifique o nome de usuário e o arquivo crontab deles abrirão para você criar um trabalho. Em seguida, especifique a data e a hora que deve executar.

Conclusão

Linux, Unix e MacOS facilitam a agenda de trabalhos usando o utilitário Cron. Este guia abordou como criar empregos para um usuário específico. Discutimos como você poderia criar um trabalho para outro usuário, visualizar os trabalhos programados e excluir os empregos, desde que você seja um administrador.