Execute o script Linux na inicialização sem privilégios de root ou cron


1

Eu tenho um script de shell que gostaria de executar automaticamente quando o sistema iniciar. No entanto, não tenho acesso root e não tenho permissão para executar o crontab. Eu gostaria que isso fosse executado quando o sistema iniciar, não apenas quando eu fizer o login, portanto, colocá-lo no .bashrc não funcionará. Existe uma maneira de fazer isso?

Edit: O script é um trabalho de processamento de dados que é executado continuamente e que eu tenho permissões totais para executar. O problema é que o servidor é reiniciado todas as noites, portanto, atualmente, tenho que fazer login todas as manhãs e reiniciar manualmente o script. Gostaria de saber se existe uma maneira de automatizar isso. Uma solução aceitável seria definir o script para ser executado diariamente em um horário especificado (de uma maneira que persistisse após a reinicialização do sistema). Conforme apontado, eu poderia pedir ao administrador para configurá-lo como um trabalho cron, mas primeiro desejo verificar se há uma maneira (legítima) de fazê-lo sem exigir a escalação de privilégios.


11
As alterações de configuração no nível do sistema requerem privilégios de root. Existem maneiras de contornar essa restrição, mas isso depende de você descobrir. O fato de você não ter autoridade para executar essas alterações sugere que o que você quer fazer pode ser considerado uma violação e, portanto, ilegal.
Larssend

Você tentou @rebootno seu crontab? Isso é aceito pelo Vixie cron; não tenho certeza de quais outras implementações o possuem.
precisa

Cron é o caminho para fazê-lo, IMHO. Se o servidor for reiniciado todas as noites, provavelmente será reiniciado todas as noites em um agendamento conhecido, e você poderá ter um trabalho agendado para iniciar algum tempo depois disso. Como alternativa, você executa um script a cada poucos minutos, que verifica se o trabalho está em execução e sai, a menos que não esteja, e então inicia o trabalho. Se o trabalho for bom como você, ele não precisará ser elevado - você simplesmente precisa de permissão no nível do usuário para executar um trabalho cron como você - o que não é elevação, mas sim "acesso a ferramentas existentes, execute normalmente. nível de privilégio ".
18717 Ecnerwal

Respostas:


3

Se for legítimo, aceitável e apropriado, você solicita que o administrador do sistema o instale, e eles concordam e o fazem ou discordam e recusam.

Caso contrário, não. Particularmente, se isso estiver no trabalho e você gostar de salários, ou na escola e tiver intenções de se formar.


1

Peça aos SysAdmins para habilitar o cron para você ou peça para eles configurarem um trabalho cron para executar o script.

Como alternativa, escreva um script que será ssh na máquina, inicie o script de processamento de dados e agende o script para ser executado em uma máquina que você controla. Use o comando nohup para manter o script em execução em segundo plano quando o shell sair.

ssh you@server.domain.tld "data_processing_script.sh < /dev/null > std.out 2> std.err &"

Ou se o sistema tiver um servidor da web com a configuração userdir, escreva um script cgi que execute o script de processamento de dados e programe um comando curl em um sistema que você controla para tocar no servidor da web.

Mais informações sobre a execução de comandos em segundo plano usando ssh estão aqui: https://unix.stackexchange.com/questions/30400/execute-remote-commands-completely-detaching-from-the-ssh-connection

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.