Wie kann ich anacron im Benutzermodus ausführen?

30

Ich möchte eine geplante Aufgabe über einrichten anacron, möchte dies jedoch im Benutzermodus tun. Wie kann ich das erreichen?

Glutanimate
quelle
Wenn Sie möchten, dass die Aufgabe im Benutzermodus ausgeführt wird, können Sie das tun, was ich getan habe, und sudo -u <user>vor der Aufgabe inanacrontab
Karthik T
2
Auch hier beantwortet: serverfault.com/questions/172989/user-specific-anacrontab/… und hier ist eine schöne, vollständig beschriebene Lösung: akeil.net/posts/user-controlled-anacron.html
Simon Woodside

Antworten:

33

Sie können eine separate Anacron-Instanz für die Ausführung im Benutzermodus einrichten:

  1. Erstellen Sie einen .anacronOrdner in Ihrem Home-Verzeichnis und darin zwei Unterordner etcund spool:

    mkdir -p ~/.anacron/{etc,spool}
  2. Erstellen Sie eine neue Datei ~/.anacron/etc/anacrontabmit ähnlichem Inhalt:

    # /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. Fügen Sie Ihrer Crontab die folgende Zeile hinzu crontab -e:

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
Glutanimate
quelle
Nur zur Bestätigung wird das angegebene Skript als Benutzer ausgeführt, sodass ein whoamiim Skript den Benutzernamen angibt .
Christoph
hm ja, bei genauerem Hinsehen verstehe ich nicht, warum nicht ...
Christoph
3
Ich denke, Sie müssen anacronregelmäßig laufen ; es scheint einmal zu laufen und dann zu beenden. Das Anacron des Systems wird einmal pro Stunde aufgerufen. Ich nehme an, eine ähnliche Strategie würde hier funktionieren, dh den Benutzer anacronvom Benutzer aus anrufen crontab.
Sparhawk
1
@Sparhawk stimmte zu, insbesondere Ubuntu 15.10 verwendet anacron sowohl /etc/apm/event.d/anacronals auch /etc/init/anacron.conf, um Neustarts durchzuführen.
Ciro Santilli
1
Sie müssen anacron stündlich mit einem Cron-Job ausführen, z. B.01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0

Das hat bei mir funktioniert (danke), aber ich habe den letzten Schritt in der Antwort nicht ausgeführt:

Fügen Sie dann die folgende Zeile hinzu ~/.profile:

Ich verwende Ubuntu Studio 12.10 Quantal und in meinem Fall anstelle des letzten Schritts habe ich diesen einen Zeilenumbruch hier eingefügt: "Anwendungsmenü" → "Einstellungen" → "Einstellungsmanager", dann im Einstellungsmanager unter "Sitzung und Start" Registerkarte „Application Autostart“.

Dies ist für diejenigen unter uns, die GUI-Benutzer sind, da ~/.profileBash ~/bashrcnur verwendet, wenn eine interaktive Anmeldeshell gestartet wird.

Sam
quelle
Mmh, ich bin selbst ein GUI-Benutzer und der Line-In .profilehat für mich immer gut funktioniert (Ubuntu 12.04 hier).
Glutanimate