¿Cómo puedo ejecutar anacron en modo usuario?

30

Me gustaría configurar una tarea programada a través de, anacronpero me gustaría hacerlo en modo de usuario. ¿Cómo puedo conseguir esto?

Glutanimato
fuente
Si desea que la tarea se ejecute en modo de usuario, puede hacer lo que hice y simplemente anteponerla sudo -u <user>antes de la tareaanacrontab
Karthik T
2
También respondió aquí: serverfault.com/questions/172989/user-specific-anacrontab/… y aquí hay una buena solución completamente escrita: akeil.net/posts/user-controlled-anacron.html
Simon Woodside

Respuestas:

33

Puede configurar una instancia de anacron separada para que se ejecute en modo de usuario:

  1. Cree una .anacroncarpeta en su directorio de inicio y en ella dos subcarpetas etcy spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Cree un nuevo archivo ~/.anacron/etc/anacrontabcon contenido similar al siguiente:

    # /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. Agregue la siguiente línea a su crontab usando crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
Glutanimato
fuente
Solo para confirmar, esto ejecuta la secuencia de comandos especificada como el usuario, por lo que una whoamien la secuencia de comandos le dará el nombre de usuario.
Christoph
hm sí, en una inspección más profunda no veo por qué no ...
Christoph
3
Creo que necesitas correr anacronperiódicamente; parece ejecutarse una vez y luego salir. El anacron del sistema se llama una vez cada hora. Supongo que una estrategia similar funcionaría aquí, es decir, llamar al usuario anacrondesde el usuario crontab.
Sparhawk el
1
@Sparhawk estuvo de acuerdo, en particular Ubuntu 15.10 anacron usa ambos /etc/apm/event.d/anacrony /etc/init/anacron.confse encarga de reiniciar.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Debe ejecutar anacron cada hora con un trabajo cron, por ejemplo01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0

Esto funcionó para mí (gracias), pero no utilicé el último paso dado en la respuesta:

Luego agregue la siguiente línea a su ~/.profile:

Estoy usando Ubuntu Studio 12.10 Quantal y, en mi caso, en lugar de ese último paso, puse ese delineador aquí: “Menú de aplicaciones” → “Configuración” → “Administrador de configuración” y luego en el Administrador de configuración en “Sesión e inicio” y luego el Pestaña "Inicio automático de la aplicación".

Esto es para aquellos de nosotros que somos usuarios de la GUI, porque ~/.profilesolo se obtiene de bash cuando inicia un shell interactivo de inicio de sesión (incluso ~/bashrcno es tan útil ya que solo se obtiene cuando bash está iniciando un shell interactivo).

sam
fuente
Mmh, yo mismo soy un usuario de la GUI y la línea .profilesiempre me ha funcionado bien (Ubuntu 12.04 aquí).
Glutanimate