如何在用户模式下运行anacron?


30

我想通过设置计划的任务,anacron但我想在用户模式下进行。我该如何实现?


如果您希望任务在用户模式下运行,则可以执行我所做的操作,并且只是sudo -u <user>在任务之前执行anacrontab
Karthik T 2014年

Answers:


33

您可以设置一个单独的anacron实例以在用户模式下运行:

  1. .anacron在您的主目录中创建一个文件夹,并在其中创建两个子文件夹,etc以及spool

    mkdir -p ~/.anacron/{etc,spool}
  2. 创建一个新文件~/.anacron/etc/anacrontab,其内容类似于以下内容:

    # /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. 使用以下命令将以下行添加到您的crontab中crontab -e

    @hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool

只是为了确认,这将以用户身份运行指定的脚本,因此脚本中的a whoami将给出用户名?
Christoph

嗯,在进一步检查中,我不知道为什么不...
Christoph

3
我觉得你需要跑步 anacron定期;它似乎运行一次然后退出。系统的anacron每小时被调用一次。我想类似的策略也可以在这里工作,即anacron从user 呼叫用户crontab
Sparhawk

1
@Sparhawk同意,特别是Ubuntu 15.10 anacron同时使用 /etc/apm/event.d/anacron/etc/init/anacron.conf负责重新启动。
Ciro Santilli新疆改造中心法轮功六四事件

1
您需要使用cron作业每小时运行anacron,例如 01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside

0

这对我有用(谢谢),但是我没有使用答案中给出的最后一步:

然后将以下行添加到您的~/.profile

我使用的是Ubuntu Studio 12.10 Quantal,在我的情况下,我没有放置最后一个衬垫:“应用程序菜单”→“设置”→“设置管理器”,然后在“设置管理器”中的“会话和启动”下,然后“应用程序自动启动”选项卡。

这是针对我们这些GUI用户的,因为~/.profile它仅由bash在启动登录交互式shell时提供(即使~/bashrc不是那么有用,因为它仅在bash启动交互式shell时提供)。


嗯,我本人是GUI用户,该行.profile对我来说一直很好(在这里是Ubuntu 12.04)。
谷氨酸(Glutanimate)2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.