Como executar o anacron no modo de usuário?

30

Gostaria de configurar uma tarefa agendada via, anacronmas gostaria de fazê-lo no modo de usuário. Como posso conseguir isso?

Glutanimado
fonte
Se você deseja que a tarefa para executar no modo de usuário, você pode fazer o que eu fiz e preceder apenas sudo -u <user>antes da tarefa naanacrontab
Karthik T
2
Também respondida aqui: serverfault.com/questions/172989/user-specific-anacrontab/... e aqui está uma boa totalmente escrito solução: akeil.net/posts/user-controlled-anacron.html
Simon Woodside

Respostas:

33

Você pode configurar uma instância anacron separada para executar no modo de usuário:

  1. Crie uma .anacronpasta no seu diretório pessoal e nele duas subpastas etce spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Crie um novo arquivo ~/.anacron/etc/anacrontabcom conteúdo semelhante ao seguinte:

    # /etc/anacrontab: configuration file for anacron
    
    # See anacron(8) and anacrontab(5) for details.
    
    SHELL=/bin/bash
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # period  delay  job-identifier  command
    1         10     testjob         test.sh
  3. Adicione a seguinte linha ao seu crontab usando crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
Glutanimado
fonte
Apenas para confirmar, isso executa o script especificado como usuário, então um whoamino script fornecerá o nome de usuário?
Christoph
hm, sim, em uma inspecção mais aprofundada, não vejo porque não ...
Christoph
3
Eu acho que você precisa executar anacronperiodicamente; parece correr uma vez e sair. O anacron do sistema é chamado uma vez a cada hora. Suponho que uma estratégia semelhante funcionaria aqui, ou seja, chame o usuário anacrondo usuário crontab.
Sparhawk
1
O @Sparhawk concordou, em particular o Ubuntu 15.10 anacron usa os dois /etc/apm/event.d/anacrone /etc/init/anacron.confcuida das reinicializações.
Ciro Santilli resolveu
1
Você precisa executar o anacron a cada hora com um trabalho cron, por exemplo01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0

Isso funcionou para mim (obrigado), mas não usei o último passo dado na resposta:

Em seguida, adicione a seguinte linha ao seu ~/.profile:

Estou usando o Ubuntu Studio 12.10 Quantal e, no meu caso, em vez da última etapa, coloquei o liner aqui: "Menu Aplicativos" → "Configurações" → "Gerenciador de configurações" e depois no Gerenciador de configurações em "Sessão e inicialização" e depois em Guia "Inicialização automática do aplicativo".

Isso é para aqueles que são usuários da GUI, porque ~/.profileé originada apenas pelo bash quando inicia um shell interativo de logon (mesmo que ~/bashrcnão seja tão útil, pois só é originada quando o bash inicia um shell interativo).

sam
fonte
Mmh, eu sou um usuário de GUI e a linha .profilesempre funcionou bem para mim (Ubuntu 12.04 aqui).
Glutanimate