¿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?


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

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).


Mmh, yo mismo soy un usuario de la GUI y la línea .profilesiempre me ha funcionado bien (Ubuntu 12.04 aquí).
— Glutanimate
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.